Changeset 11057


Ignore:
Timestamp:
Oct 12, 2008, 8:01:10 AM (11 years ago)
Author:
gb
Message:

In %%SET-UNSIGNED-LONGLONG and %%SET-SIGNED-LONGLONG, use
SAVE-STACKARGS-FRAME and exit a simple SINGLE-VALUE-RETURN; access the
incoming ptr arg relative to the frame pointer. Try to minimize the
time in which %temp1/%imm1 is marked as an immediate.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/level-0/X86/X8632/x8632-misc.lisp

    r10959 r11057  
    275275                                              (offset arg_y)
    276276                                              (val arg_z))
    277   (mark-as-imm temp1)
    278277  (let ((rptr temp0)
    279         (imm1 temp1))
    280     (save-simple-frame)
    281     (movl (@ ptr (% esp)) (% rptr))
     278        (imm1 temp1)
     279        (ptr-in-frame -4))
     280    (save-stackargs-frame 1)
     281    (movl (@ ptr-in-frame (% ebp)) (% rptr))
    282282    (trap-unless-typecode= rptr x8632::subtag-macptr)
    283283    (call-subprim .SPgetu64)
    284284    (macptr-ptr rptr imm0)
     285    (mark-as-imm temp1)
    285286    (unbox-fixnum offset imm1)
    286287    (movq (% mm0) (@ (% imm0) (% imm1)))
    287     (restore-simple-frame))
    288   (mark-as-node temp1)
    289   (single-value-return 3))
     288    (mark-as-node temp1)
     289    (restore-simple-frame)
     290    (single-value-return)))
    290291
    291292(defx8632lapfunction %%set-signed-longlong ((ptr 4)
     
    293294                                            (offset arg_y)
    294295                                            (val arg_z))
    295   (mark-as-imm temp1)
    296296  (let ((rptr temp0)
    297         (imm1 temp1))
    298     (save-simple-frame)
    299     (movl (@ ptr (% esp)) (% rptr))
     297        (imm1 temp1)
     298        (ptr-in-frame -4))
     299    (save-stackargs-frame 1)
     300    (movl (@ ptr-in-frame (% ebp)) (% rptr))
    300301    (trap-unless-typecode= rptr x8632::subtag-macptr)
    301302    (call-subprim .SPgets64)
    302303    (macptr-ptr rptr imm0)
     304    (mark-as-imm temp1)
    303305    (unbox-fixnum offset imm1)
    304306    (movq (% mm0) (@ (% imm0) (% imm1)))
    305     (restore-simple-frame))
    306   (mark-as-node temp1)
    307   (single-value-return 3))
     307    (mark-as-node temp1)
     308    (restore-simple-frame)
     309    (single-value-return)))
    308310
    309311(defx8632lapfunction interrupt-level ()
Note: See TracChangeset for help on using the changeset viewer.