Changeset 12601


Ignore:
Timestamp:
Aug 17, 2009, 6:41:58 AM (10 years ago)
Author:
gb
Message:

darwinx8664/Makefile: Don't set DARWIN_GS_HACK in m4flags/cdefines.

Do set the new conditional TCR_IN_GPR.

m4macros.m4: equate_if_defined TCR_IN_GPR.

x86-asmutils64.s: move some empty functions around, to keep Apple's

Piece Of Crap linker from getting confused.

x86-constant64.s: use %r11/%save3 for TCR if TCR_IN_GPR is defined

(not just on Win64).

x86-exceptions.c: allocation sequence instructions conditionalized on

TCR_IN_GPR, not on WINDOWS. (Todo: check to ensure that opcodes are
correct.)

x86-spentry64.s,x86-subprims64.s: conditionalize on TCR_IN_GPR.

Location:
trunk/source/lisp-kernel
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/darwinx8664/Makefile

    r11912 r12601  
    4646### Mach kernel side.)
    4747###
    48 M4FLAGS = -DDARWIN -DX86 -DX8664 -DDARWIN_GS_HACK
     48### Apple never
     49M4FLAGS = -DDARWIN -DX86 -DX8664 -DTCR_IN_GPR
    4950ASFLAGS = -arch x86_64 -g
    50 CDEFINES = -DDARWIN -DX86 -DX8664 -DDARWIN_GS_HACK
     51CDEFINES = -DDARWIN -DX86 -DX8664 -DTCR_IN_GPR
    5152CDEBUG = -g
    5253COPT = -O2
  • trunk/source/lisp-kernel/m4macros.m4

    r11294 r12601  
    331331equate_if_defined([DARWIN_GS_HACK])
    332332
     333equate_if_defined([TCR_IN_GPR])
     334
    333335/* Well, so much for that. Maybe this will go away soon ? */
    334336equate_if_defined([WIN32_ES_HACK])
  • trunk/source/lisp-kernel/x86-asmutils64.s

    r11909 r12601  
    171171_endfn
    172172
     173_exportfn(C(put_vector_registers))
     174_endfn                         
     175       
    173176        __ifdef([DARWIN])
    174177_exportfn(C(darwin_sigreturn))
     
    185188        __endif
    186189
    187 _exportfn(C(put_vector_registers))
    188 _endfn                         
    189190       
    190191       
  • trunk/source/lisp-kernel/x86-constants64.s

    r11094 r12601  
    222222
    223223
    224 ifdef([WINDOWS],[
     224ifdef([TCR_IN_GPR],[
    225225/* We keep the TCR pointer in r11 */
    226226        define([rcontext_reg], r11)
  • trunk/source/lisp-kernel/x86-exceptions.c

    r11893 r12601  
    23202320#ifdef X8664
    23212321opcode load_allocptr_reg_from_tcr_save_allocptr_instruction[] =
    2322 #ifdef WINDOWS
     2322#ifdef TCR_IN_GPR
    23232323  {0x49,0x8b,0x9b,0xd8,0x00,0x00,0x00}
    23242324#else
     
    23272327;
    23282328opcode compare_allocptr_reg_to_tcr_save_allocbase_instruction[] =
    2329 #ifdef WINDOWS
     2329#ifdef TCR_IN_GPR
    23302330  {0x49,0x3b,0x9b,0xe0,0x00,0x00,0x00}
    23312331#else
     
    23392339  {0xcd,0xc5};
    23402340opcode clear_tcr_save_allocptr_tag_instruction[] =
    2341 #ifdef WINDOWS
     2341#ifdef TCR_IN_GPR
    23422342  {0x41,0x80,0xa3,0xd8,0x00,0x00,0x00,0xf0}
    23432343#else
  • trunk/source/lisp-kernel/x86-spentry64.s

    r11918 r12601  
    12341234        __(movq catch_frame._save1(%temp0),%save1)
    12351235        __(movq catch_frame._save2(%temp0),%save2)
    1236         __ifndef([WINDOWS])
     1236        __ifndef([TCR_IN_GPR])
    12371237        __(movq catch_frame._save3(%temp0),%save3)
    12381238        __endif
     
    12801280        __(movq catch_frame._save1(%temp0),%save1)
    12811281        __(movq catch_frame._save2(%temp0),%save2)
    1282         __ifndef([WINDOWS])
     1282        __ifndef([TCR_IN_GPR])
    12831283        __(movq catch_frame._save3(%temp0),%save3)
    12841284        __endif
     
    13371337        __(movq %save2,%rsp)
    13381338        __(movq catch_frame.rbp(%temp0),%rbp)
    1339         __ifndef([WINDOWS])
     1339        __ifndef([TCR_IN_GPR])
    13401340        __(movq catch_frame._save3(%temp0),%save3)
    13411341        __endif
     
    13591359        __(push catch_frame._save1(%temp0))
    13601360        __(push catch_frame._save2(%temp0))
    1361         __ifndef([WINDOWS])
     1361        __ifndef([TCR_IN_GPR])
    13621362        __(push catch_frame._save3(%temp0))
    13631363        __endif
     
    13911391        __(jns local_label(_nthrowv_tpushloop))
    13921392        __(pop %xfn)
    1393         __ifndef([WINDOWS])
     1393        __ifndef([TCR_IN_GPR])
    13941394        __(pop %save3)
    13951395        __endif
     
    14691469        __(movq catch_frame.rsp(%temp0),%rsp)
    14701470        __(movq catch_frame.rbp(%temp0),%rbp)
    1471         __ifndef([WINDOWS])
     1471        __ifndef([TCR_IN_GPR])
    14721472        __(movq catch_frame._save3(%temp0),%save3)
    14731473        __endif
     
    14931493        __(movq catch_frame._save1(%temp0),%save1)
    14941494        __(movq catch_frame._save2(%temp0),%save2)
    1495         __ifndef([WINDOWS])
     1495        __ifndef([TCR_IN_GPR])
    14961496        __(movq catch_frame._save3(%temp0),%save3)
    14971497        __endif
     
    40164016         __(movq %csave2,%imm0)
    40174017        __endif
    4018         __ifdef([WINDOWS])
     4018        __ifdef([TCR_IN_GPR])
    40194019        /* Preserve TCR pointer */
    40204020        __(movq %rcontext_reg, %csave0)
     
    40544054         __(movq %csave2,%rdx)
    40554055        __endif
    4056         __ifdef([WINDOWS])
     4056        __ifdef([TCR_IN_GPR])
    40574057        __(movq %csave0, %rcontext_reg)
    40584058        __endif
    40594059        __(movq %rsp,rcontext(tcr.foreign_sp))
    4060         __ifndef([WINDOWS])
     4060        __ifndef([TCR_IN_GPR])
    40614061        __(clr %save3)
    40624062        __endif
     
    42364236         __(movq %csave3,%imm1)
    42374237        __endif
    4238         __ifdef([WINDOWS])
     4238        __ifdef([TCR_IN_GPR])
    42394239        /* Preserve TCR pointer */
    42404240        __(movq %rcontext_reg, %csave1)
     
    42744274         __(movsd 24(%csave0),%xmm1)
    42754275        __endif
    4276         __ifdef([WINDOWS])
     4276        __ifdef([TCR_IN_GPR])
    42774277        __(movq %csave1, %rcontext_reg)
    42784278        __endif
    42794279        __(movq %rsp,rcontext(tcr.foreign_sp))       
    4280         __ifndef([WINDOWS])
     4280        __ifndef([TCR_IN_GPR])
    42814281        __(clr %save3)
    42824282        __endif
     
    44274427        __(movq (%rsp),%rbp)
    44284428        __(addq $2*node_size,%rsp)
     4429        __ifdef([TCR_IN_GPR])
     4430         __(movq %rcontext_reg,%csave0)
     4431        __endif
    44294432        __ifdef([WINDOWS])
    4430          __(movq %rcontext_reg,%csave0)
    44314433         __(pop %carg0)
    44324434         __(pop %carg1)
     
    44514453         __endif
    44524454        __endif
    4453         __ifdef([WINDOWS])
     4455        __ifdef([TCR_IN_GPR])
    44544456         __(movq %csave0,%rcontext_reg)
    44554457        __endif
    44564458        __(movq %rbp,%rsp)
    44574459        __(movq %rsp,rcontext(tcr.foreign_sp))
    4458         __ifndef([WINDOWS])
     4460        __ifndef([TCR_IN_GPR])
    44594461         __(clr %save3)
    44604462        __endif
     
    46104612        __ifdef([HAVE_TLS])
    46114613         /* TCR initialized for lisp ?   */
    4612          __ifndef([WINDOWS]) /* FIXME */
     4614         __ifndef([TCR_IN_GPR]) /* FIXME */
    46134615         __(movq %fs:current_tcr@TPOFF+tcr.linear,%rax)
    46144616         __(testq %rax,%rax)
     
    46244626        __ifdef([WINDOWS])
    46254627        __(add $0x20, %rsp)
     4628        __endif
     4629        __ifdef([TCR_IN_GPR])
    46264630        __(movq %rax, %rcontext_reg)
    46274631        __endif
     
    46374641        __(movq %csave0,%rax)
    46384642        __(movq %rsp,rcontext(tcr.foreign_sp))
    4639         __ifndef([WINDOWS])
     4643        __ifndef([TCR_IN_GPR])
    46404644        __(clr %save3)
    46414645        __endif
     
    46594663        __(movq 8(%rsp),%save1)
    46604664        __(movq 16(%rsp),%save2)
    4661         __ifndef([WINDOWS])
     4665        __ifndef([TCR_IN_GPR])
    46624666         __(movq 24(%rsp),%save3)
    46634667        __endif
  • trunk/source/lisp-kernel/x86-subprims64.s

    r10565 r12601  
    9797        __(push %csave5)
    9898        __(push %csave6)
     99        __endif
     100        __ifdef([TCR_IN_GPR])
    99101        __(movq %carg0,%rcontext_reg)
    100102        __endif
     
    115117        __(clr %save1)
    116118        __(clr %save2)
    117         __ifndef([WINDOWS]) /* no %save3, r11 is %rcontext_reg */
     119        __ifndef([TCR_IN_GPR]) /* no %save3, r11 is %rcontext_reg */
    118120        __(clr %save3)
    119121        __endif
Note: See TracChangeset for help on using the changeset viewer.