Changeset 296
- Timestamp:
- Jan 15, 2004, 12:16:45 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/spentry.s (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/spentry.s
r268 r296 3411 3411 __(unbox_fixnum(imm1,arg_y)) 3412 3412 __(unbox_fixnum(imm0,arg_z)) 3413 __(bgt cr1, 1f)3413 __(bgt cr1,2f) 3414 3414 /* (ash n -count) => fixnum */ 3415 __(li arg_z,-1<<fixnumshift) 3416 __(blelr cr2) 3417 __(neg imm0,imm0) 3418 __(sraw imm1,imm1,imm0) 3419 __(box_fixnum(arg_z,imm1)) 3415 __(neg imm2,imm0) 3416 __(bgt cr2,1f) 3417 __(li imm2,31) 3418 1: 3419 __(sraw imm0,imm1,imm2) 3420 __(box_fixnum(arg_z,imm0)) 3420 3421 __(blr) 3421 3422 /* Integer-length of arg_y/imm1 to imm2 */ 3422 1:3423 2: 3423 3424 __(cntlzw. imm2,imm1) 3424 __(bne 2f) /* cr0[eq] set if negative */3425 __(bne 3f) /* cr0[eq] set if negative */ 3425 3426 __(not imm2,imm1) 3426 3427 __(cntlzw imm2,imm2) 3427 2:3428 3: 3428 3429 __(subfic imm2,imm2,32) 3429 3430 __(add imm2,imm2,imm0) /* imm2 <- integer-length(imm1) + count */ … … 3433 3434 __(bgt cr1,6f) 3434 3435 __(box_fixnum(arg_z,imm2)) 3435 __(blr) 3436 __(blr) 3436 3437 6: 3437 3438 __(bgt cr2,9f)
Note:
See TracChangeset
for help on using the changeset viewer.
