VMS/VMS_Implementations/VSs_impls/VSs__MC_shared_impl

view VSs_singleton_asm.s @ 5:8188c5b4bfd7

implemented taskwait
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Fri, 13 Jul 2012 17:35:49 +0200
parents
children
line source
2 //Assembly code takes the return addr off the stack and saves
3 // into the singleton. The first field in the singleton is the
4 // "endInstrAddr" field, and the return addr is at 0x4(%ebp)
5 .globl asm_save_ret_to_singleton
6 asm_save_ret_to_singleton:
7 movq 0x8(%rbp), %rax #get ret address, ebp is the same as in the calling function
8 movq %rax, (%rdi) #write ret addr to endInstrAddr field
9 ret
12 //Assembly code changes the return addr on the stack to the one
13 // saved into the singleton by the end-singleton-fn
14 //The stack's return addr is at 0x4(%%ebp)
15 .globl asm_write_ret_from_singleton
16 asm_write_ret_from_singleton:
17 movq (%rdi), %rax #get endInstrAddr field
18 movq %rax, 0x8(%rbp) #write return addr to the stack of the caller
19 ret