annotate VPThread.s @ 5:f36e9ab2e030

separated asm singleton routines
author Merten Sach <msach@mailbox.tu-berlin.de>
date Mon, 06 Jun 2011 18:30:00 +0200
parents
children ce4ad44fcc23
rev   line source
msach@5 1
msach@5 2 //Assembly code takes the return addr off the stack and saves
msach@5 3 // into the singleton. The first field in the singleton is the
msach@5 4 // "endInstrAddr" field, and the return addr is at 0x4(%ebp)
msach@5 5 .globl asm_save_ret_to_singleton
msach@5 6 asm_save_ret_to_singleton:
msach@5 7 movl 0x4(%ebp), %eax #get ret address, ebp is the same as in the calling function
msach@5 8 movl 0x4(%esp), %edx #get argument(singletonPtrAddr) from stack
msach@5 9 movl %eax, (%edx) #write ret addr to endInstrAddr field
msach@5 10 ret
msach@5 11
msach@5 12
msach@5 13 //Assembly code changes the return addr on the stack to the one
msach@5 14 // saved into the singleton by the end-singleton-fn
msach@5 15 //The stack's return addr is at 0x4(%%ebp)
msach@5 16 .globl asm_write_ret_from_singleton
msach@5 17 asm_write_ret_from_singleton:
msach@5 18 movl 0x4(%esp), %edx #get singleton addr from stack
msach@5 19 movl (%edx), %eax #get endInstrAddr field
msach@5 20 movl %eax, 0x4(%ebp) #write return addr to the stack of the caller
msach@5 21 ret
msach@5 22
msach@5 23