Changeset 6475


Ignore:
Timestamp:
May 9, 2007, 7:40:45 AM (15 years ago)
Author:
gb
Message:

New calling sequence. %rcx is %imm2 now, not %temp2, and no need
to be so careful with it.

File:
1 edited

Legend:

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

    r5588 r6475  
    4141;;; Add the 32-bit "prev" digit and the 32-bit carry-in digit to that 64-bit
    4242;;; result; return the halves as (VALUES high low).
    43 (defx86lapfunction %multiply-and-add4 ((x 0) (y arg_x) (prev arg_y) (carry-in arg_z))
     43(defx86lapfunction %multiply-and-add4 ((x 8) #|(ra 0)|# (y arg_x) (prev arg_y) (carry-in arg_z))
    4444  (let ((unboxed-x imm0)
    4545        (unboxed-y imm1)
     
    4949        (high arg_y)
    5050        (low arg_z))
     51    (pop (% ra0))
    5152    (popq (% temp0))
    5253    (discard-reserved-frame)
     54    (push (% ra0))
    5355    (unbox-fixnum temp0 unboxed-x)
    5456    (unbox-fixnum y unboxed-y)
     
    6466    (shr ($ 32) (% unboxed-y))
    6567    (box-fixnum unboxed-y high)
     68    (movq (% rsp) (% temp0))
    6669    (pushq (% high))
    6770    (pushq (% low))
    6871    (set-nargs 2)
    69     (leaq (@ '2 (% rsp)) (% temp0))
    7072    (jmp-subprim .SPvalues)))
    7173
     
    8890    (shr ($ 32) (% unboxed-y))
    8991    (box-fixnum unboxed-y high)
     92    (movq (% rsp) (% temp0))
    9093    (pushq (% high))
    9194    (pushq (% low))
    9295    (set-nargs 2)
    93     (leaq (@ '2 (% rsp)) (% temp0))
    9496    (jmp-subprim .SPvalues)))
    9597
     
    205207(defx86lapfunction %digit-logical-shift-right ((digit arg_y) (count arg_z))
    206208  (unbox-fixnum digit imm0)
    207   (unbox-fixnum count imm1)
    208   (xorq (% temp2) (% temp2))
    209   (movb (% imm1.b) (% temp2.b))
    210   (shrq (% temp2.b) (% imm0))
    211   (movb ($ 0) (% temp2.b))
     209  (unbox-fixnum count imm2)
     210  (shrq (% imm2.b) (% imm0))
    212211  (box-fixnum imm0 arg_z)
    213212  (single-value-return))
     
    217216(defx86lapfunction %ashr ((digit arg_y) (count arg_z))
    218217  (unbox-fixnum digit imm0)
    219   (unbox-fixnum count imm1)
     218  (unbox-fixnum count imm2)
    220219  (movslq (%l imm0) (% imm0))
    221   (xorq (% temp2) (% temp2))
    222   (movb (% imm1.b) (% temp2.b))
    223   (sarq (% temp2.b) (% imm0))
    224   (movb ($ 0) (% temp2.b))
     220  (sarq (% imm2.b) (% imm0))
    225221  (box-fixnum imm0 arg_z)
    226222  (single-value-return))
     
    228224(defx86lapfunction %ashl ((digit arg_y) (count arg_z))
    229225  (unbox-fixnum digit imm0)
    230   (unbox-fixnum count imm1)
    231   (xorq (% temp2) (% temp2))
    232   (movb (% imm1.b) (% temp2.b))
    233   (shlq (% temp2.b) (% imm0))
    234   (movb ($ 0) (% temp2.b)) 
     226  (unbox-fixnum count imm2)
     227  (shlq (% imm2.b) (% imm0))
    235228  (movl (%l imm0) (%l imm0))            ;zero-extend
    236229  (box-fixnum imm0 arg_z)
Note: See TracChangeset for help on using the changeset viewer.