Changeset 8734


Ignore:
Timestamp:
Mar 11, 2008, 7:08:26 PM (12 years ago)
Author:
gb
Message:

Conditionalize the syscall subprim for windows: pop windows C
args, and use syscall index to jump to an entry in windows_syscall_table.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/win64/lisp-kernel/x86-spentry64.s

    r8615 r8734  
    43904390        __(movq (%rsp),%rbp)
    43914391        __(addq $2*node_size,%rsp)
    4392         __(unbox_fixnum(%arg_z,%rax))
    4393         __(pop %rdi)
    4394         __(pop %rsi)
    4395         __(pop %rdx)
    4396         __(pop %r10)            /*  syscalls take 4th param in %r10, not %rcx   */
    4397         __(pop %r8)
    4398         __(pop %r9)
    4399         __(syscall)
    4400         __ifdef([SYSCALL_SETS_CARRY_ON_ERROR])
    4401          __(jnc 0f)
    4402          __(negq %rax)
     4392        __ifdef([WINDOWS])
     4393         __(addq C(windows_syscall_table)(%rip),%arg_z)
     4394         __(pop %carg0)
     4395         __(pop %carg1)
     4396         __(pop %carg2)
     4397         __(pop %carg3)
     4398         __(call *%arg_z)
     4399        __else
     4400         __(unbox_fixnum(%arg_z,%rax))
     4401         __(pop %rdi)
     4402         __(pop %rsi)
     4403         __(pop %rdx)
     4404         __(pop %r10)           /*  syscalls take 4th param in %r10, not %rcx   */
     4405         __(pop %r8)
     4406         __(pop %r9)
     4407         __(syscall)
     4408         __ifdef([SYSCALL_SETS_CARRY_ON_ERROR])
     4409          __(jnc 0f)
     4410          __(negq %rax)
    440344110:     
    4404         __endif       
     4412         __endif
     4413        __endif
    44054414        __(movq %rbp,%rsp)
    44064415        __(movq %rsp,rcontext(tcr.foreign_sp))       
Note: See TracChangeset for help on using the changeset viewer.