Changeset 6378 for branches/x8664-call


Ignore:
Timestamp:
Apr 30, 2007, 12:41:25 PM (13 years ago)
Author:
gb
Message:

Things which do shifts - including %FIXNUM-GCD - should use %imm2,
since its low byte is %cl. Don't need to be careful with it, since
it's never tagged.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/x8664-call/ccl/level-0/X86/X8664/x8664-bignum.lisp

    r6370 r6378  
    207207(defx86lapfunction %digit-logical-shift-right ((digit arg_y) (count arg_z))
    208208  (unbox-fixnum digit imm0)
    209   (unbox-fixnum count imm1)
    210   (xorq (% temp2) (% temp2))
    211   (movb (% imm1.b) (% temp2.b))
    212   (shrq (% temp2.b) (% imm0))
    213   (movb ($ 0) (% temp2.b))
     209  (unbox-fixnum count imm2)
     210  (shrq (% imm2.b) (% imm0))
    214211  (box-fixnum imm0 arg_z)
    215212  (single-value-return))
     
    219216(defx86lapfunction %ashr ((digit arg_y) (count arg_z))
    220217  (unbox-fixnum digit imm0)
    221   (unbox-fixnum count imm1)
     218  (unbox-fixnum count imm2)
    222219  (movslq (%l imm0) (% imm0))
    223   (xorq (% temp2) (% temp2))
    224   (movb (% imm1.b) (% temp2.b))
    225   (sarq (% temp2.b) (% imm0))
    226   (movb ($ 0) (% temp2.b))
     220  (sarq (% imm2.b) (% imm0))
    227221  (box-fixnum imm0 arg_z)
    228222  (single-value-return))
     
    230224(defx86lapfunction %ashl ((digit arg_y) (count arg_z))
    231225  (unbox-fixnum digit imm0)
    232   (unbox-fixnum count imm1)
    233   (xorq (% temp2) (% temp2))
    234   (movb (% imm1.b) (% temp2.b))
    235   (shlq (% temp2.b) (% imm0))
    236   (movb ($ 0) (% temp2.b)) 
     226  (unbox-fixnum count imm2)
     227  (shlq (% imm2.b) (% imm0))
    237228  (movl (%l imm0) (%l imm0))            ;zero-extend
    238229  (box-fixnum imm0 arg_z)
Note: See TracChangeset for help on using the changeset viewer.