Ticket #894: ccl-arm-get64.diff
| File ccl-arm-get64.diff, 1.5 KB (added by ivan4th, 18 months ago) |
|---|
-
arm-spentry.s
2175 2175 __(extract_typecode(imm0,arg_z)) 2176 2176 __(cmp imm0,#subtag_bignum) 2177 2177 __(bne 0b) 2178 __(movc16(imm1, two_digit_bignum_header))2178 __(movc16(imm1,one_digit_bignum_header)) 2179 2179 __(getvheader(imm0,arg_z)) 2180 2180 __(cmp imm0,imm1) 2181 __(bne 2f) 2181 __(ldreq imm0,[arg_z,#misc_data_offset]) 2182 __(moveq imm1,#0) 2183 __(bxeq lr) 2184 2: __(movc16(imm1,two_digit_bignum_header)) 2185 __(cmp imm0,imm1) 2186 __(bne 3f) 2182 2187 __(vrefr(imm0,arg_z,0)) 2183 2188 __(vrefr(imm1,arg_z,1)) 2184 2189 __(cmp imm1,#0) 2185 2190 __(bxge lr) 2186 2191 __(uuo_error_reg_not_xtype(al,arg_z,xtype_u64)) 2187 2: __(movc16(imm1,three_digit_bignum_header))2192 3: __(movc16(imm1,three_digit_bignum_header)) 2188 2193 __(cmp imm0,imm1) 2189 2194 __(uuo_error_reg_not_xtype(ne,arg_z,xtype_u64)) 2190 2195 __(vrefr(imm2,arg_z,2)) … … 2207 2212 __(extract_lisptag(imm0,arg_z)) 2208 2213 __(cmp imm0,#tag_misc) 2209 2214 __(ldreq imm2,[arg_z,#misc_header_offset]) 2215 __(movc16(imm1,one_digit_bignum_header)) 2216 __(cmp imm1,imm2) 2217 __(ldreq imm0,[arg_z,#misc_data_offset]) 2218 __(moveq imm1,imm0,asr #31) 2219 __(bxeq lr) 2210 2220 __(movc16(imm1,two_digit_bignum_header)) 2211 2221 __(cmp imm1,imm2) 2212 2222 __(beq 1f)
