Ignore:
Timestamp:
Dec 27, 2008, 7:19:26 AM (11 years ago)
Author:
rme
Message:

Change the x86 consing sequence to use ja (instead of jg) after comparing
tcr.save_allocptr and tcr.save_allocbase. (If we can manage to reserve
a bigger chunk of heap space, it might happen that these two values differ
in sign, i.e., tcr.save_allocptr might be above #x80000000 and
tcr.save_allocbase below. Of course, it may be a few years yet
before we have to start worrying about crossing #x8000000000000000 on
the x86-64 port...)

Update %ALLOCATE-UVECTOR and CONS vinsns, the Cons and Misc_Alloc_Internal
macros used in subprims, and the %WALK-DYNAMIC-AREA LAP function.

Also change pc_luser_xp() to recognize the ja instruction. (It still
recognizes the jg too, but treats it as ja when emulating it.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-macros.s

    r10499 r11556  
    274274        __(movl rcontext(tcr.save_allocptr),%allocptr)
    275275        __(rcmpl(%allocptr,rcontext(tcr.save_allocbase)))
    276         __(jg macro_label(no_trap))
     276        __(ja macro_label(no_trap))
    277277        uuo_alloc()
    278278macro_label(no_trap):
     
    294294        __(movq rcontext(tcr.save_allocptr),%allocptr)
    295295        __(rcmpq(%allocptr,rcontext(tcr.save_allocbase)))
    296         __(jg macro_label(no_trap))
     296        __(ja macro_label(no_trap))
    297297        uuo_alloc()
    298298macro_label(no_trap):   
     
    327327        __(movl rcontext(tcr.save_allocptr),%allocptr)
    328328        __(cmpl rcontext(tcr.save_allocbase),%allocptr)
    329         __(jg macro_label(no_trap))
     329        __(ja macro_label(no_trap))
    330330        uuo_alloc()
    331331macro_label(no_trap):   
     
    342342        __(movq rcontext(tcr.save_allocptr),%allocptr)
    343343        __(rcmpq(%allocptr,rcontext(tcr.save_allocbase)))
    344         __(jg macro_label(no_trap))
     344        __(ja macro_label(no_trap))
    345345        uuo_alloc()
    346346macro_label(no_trap):   
Note: See TracChangeset for help on using the changeset viewer.