.text
-.globl _Gasketrmdir
-_Gasketrmdir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(Gasketrmdir)
+ASM_PFX(Gasketrmdir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq _gUnixRmDir@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixRmDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
-
- pushq %rdi // restore state
- pushq %rsi
+
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketopendir
-_Gasketopendir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(Gasketopendir)
+ASM_PFX(Gasketopendir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
- movq _gUnixOpenDir@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixOpenDir)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _Gasketstat
-_Gasketstat:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(Gasketstat)
+ASM_PFX(Gasketstat):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- movq _gUnixStat@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixStat)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
+
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _Gasketstatfs
-_Gasketstatfs:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(Gasketstatfs)
+ASM_PFX(Gasketstatfs):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- movq _gUnixStatFs@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixStatFs)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _Gasketrewinddir
-_Gasketrewinddir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketrewinddir)
+ASM_PFX(Gasketrewinddir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
movq %rcx, %rdi // Swizzle args
- movq _gUnixRewinddir@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixRewinddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _Gasketreaddir
-_Gasketreaddir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketreaddir)
+ASM_PFX(Gasketreaddir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
movq %rcx, %rdi // Swizzle args
- movq _gUnixReaddir@GOTPCREL(%rip), %rax // Get function name mangled by C
+ movq ASM_PFX(gUnixReaddir)@GOTPCREL(%rip), %rax // Get function name mangled by C
movq (%rax), %rax
call *%rax
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _GasketmsSleep
-_GasketmsSleep:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(GasketmsSleep)
+ASM_PFX(GasketmsSleep):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _msSleep
+ call ASM_PFX(msSleep)
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _Gasketexit
-_Gasketexit:
+ASM_GLOBAL ASM_PFX(Gasketexit)
+ASM_PFX(Gasketexit):
movq %rcx, %rdi // Swizzle args
- call _exit // Less to do as we will never return to EFI ABI world
+ call ASM_PFX(exit) // Less to do as we will never return to EFI ABI world
LDEAD_LOOP:
jmp LDEAD_LOOP // _exit should never return
-.globl _GasketSetTimer
-_GasketSetTimer:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
+ASM_GLOBAL ASM_PFX(GasketSetTimer)
+ASM_PFX(GasketSetTimer):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _SetTimer
+ call ASM_PFX(SetTimer)
popq %rdi // restore state
popq %rsi
+ popq %rbp
ret
-.globl _GasketGetLocalTime
-_GasketGetLocalTime:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketGetLocalTime)
+ASM_PFX(GasketGetLocalTime):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _GetLocalTime
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(GetLocalTime)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
+
-.globl _Gasketgmtime
-_Gasketgmtime:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketgmtime)
+ASM_PFX(Gasketgmtime):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _localtime
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(localtime)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketGetTimeZone
-_GasketGetTimeZone:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketGetTimeZone)
+ASM_PFX(GasketGetTimeZone):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
- call _GetTimeZone
-
- popq %rdi // restore state
- popq %rsi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(GetTimeZone)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-
-.globl _GasketGetDayLight
-_GasketGetDayLight:
-LFB26:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+
+ASM_GLOBAL ASM_PFX(GasketGetDayLight)
+ASM_PFX(GasketGetDayLight):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
- call _GetDayLight
-
- popq %rdi // restore state
- popq %rsi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(GetDayLight)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketpoll
-_Gasketpoll:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketpoll)
+ASM_PFX(Gasketpoll):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _poll
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(poll)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketread
-_Gasketread:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketread)
+ASM_PFX(Gasketread):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _read
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(read)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketwrite
-_Gasketwrite:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketwrite)
+ASM_PFX(Gasketwrite):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _write
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(write)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketgetenv
-_Gasketgetenv:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketgetenv)
+ASM_PFX(Gasketgetenv):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _getenv
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(getenv)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketopen
-_Gasketopen:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketopen)
+ASM_PFX(Gasketopen):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _open
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(open)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketlseek
-_Gasketlseek:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketlseek)
+ASM_PFX(Gasketlseek):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _lseek
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(lseek)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketftruncate
-_Gasketftruncate:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketftruncate)
+ASM_PFX(Gasketftruncate):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _ftruncate
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(ftruncate)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketclose
-_Gasketclose:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketclose)
+ASM_PFX(Gasketclose):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _close
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(close)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketmkdir
-_Gasketmkdir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketmkdir)
+ASM_PFX(Gasketmkdir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _mkdir
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(mkdir)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketunlink
-_Gasketunlink:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketunlink)
+ASM_PFX(Gasketunlink):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _unlink
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(unlink)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketGetErrno
-_GasketGetErrno:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketGetErrno)
+ASM_PFX(GasketGetErrno):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
- call _GetErrno
-
- popq %rdi // restore state
- popq %rsi
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(GetErrno)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketclosedir
-_Gasketclosedir:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketclosedir)
+ASM_PFX(Gasketclosedir):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _closedir
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(closedir)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketrename
-_Gasketrename:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketrename)
+ASM_PFX(Gasketrename):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _rename
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(rename)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketmktime
-_Gasketmktime:
-LFB42:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketmktime)
+ASM_PFX(Gasketmktime):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _mktime
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(mktime)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketfsync
-_Gasketfsync:
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketfsync)
+ASM_PFX(Gasketfsync):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _fsync
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(fsync)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketchmod
-_Gasketchmod:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketchmod)
+ASM_PFX(Gasketchmod):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _chmod
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(chmod)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketutime
-_Gasketutime:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketutime)
+ASM_PFX(Gasketutime):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _utime
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(utime)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gaskettcflush
-_Gaskettcflush:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gaskettcflush)
+ASM_PFX(Gaskettcflush):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _tcflush
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(tcflush)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaCreate
-_GasketUgaCreate:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUgaCreate)
+ASM_PFX(GasketUgaCreate):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _UgaCreate
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UgaCreate)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketperror
-_Gasketperror:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketperror)
+ASM_PFX(Gasketperror):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _perror
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(perror)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketioctl
-_Gasketioctl:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketioctl)
+ASM_PFX(Gasketioctl):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _UnixIoCtl1
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UnixIoCtl1)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketfcntl
-_Gasketfcntl:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketfcntl)
+ASM_PFX(Gasketfcntl):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _UnixFcntl1
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UnixFcntl1)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketcfsetispeed
-_Gasketcfsetispeed:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketcfsetispeed)
+ASM_PFX(Gasketcfsetispeed):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _cfsetispeed
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(cfsetispeed)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gasketcfsetospeed
-_Gasketcfsetospeed:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gasketcfsetospeed)
+ASM_PFX(Gasketcfsetospeed):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _cfsetospeed
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(cfsetospeed)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gaskettcgetattr
-_Gaskettcgetattr:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gaskettcgetattr)
+ASM_PFX(Gaskettcgetattr):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _tcgetattr
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(tcgetattr)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _Gaskettcsetattr
-_Gaskettcsetattr:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(Gaskettcsetattr)
+ASM_PFX(Gaskettcsetattr):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _tcsetattr
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(tcsetattr)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUnixPeCoffGetEntryPoint
-_GasketUnixPeCoffGetEntryPoint:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUnixPeCoffGetEntryPoint)
+ASM_PFX(GasketUnixPeCoffGetEntryPoint):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _SecPeCoffGetEntryPoint
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecPeCoffGetEntryPoint)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUnixPeCoffRelocateImageExtraAction
-_GasketUnixPeCoffRelocateImageExtraAction:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUnixPeCoffRelocateImageExtraAction)
+ASM_PFX(GasketUnixPeCoffRelocateImageExtraAction):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _SecPeCoffRelocateImageExtraAction
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecPeCoffRelocateImageExtraAction)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUnixPeCoffUnloadImageExtraAction
-_GasketUnixPeCoffUnloadImageExtraAction:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction)
+ASM_PFX(GasketUnixPeCoffUnloadImageExtraAction):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _SecPeCoffLoaderUnloadImageExtraAction
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecPeCoffLoaderUnloadImageExtraAction)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaClose
-_GasketUgaClose:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+
+
+
+ASM_GLOBAL ASM_PFX(Gasketsocket)
+ASM_PFX(Gasketsocket):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
+ movq %rdx, %rsi
+ movq %r8, %rdx
- call _UgaClose
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(socket)
+
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaSize
-_GasketUgaSize:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+
+ASM_GLOBAL ASM_PFX(Gasketgetifaddrs)
+ASM_PFX(Gasketgetifaddrs):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+
+ call ASM_PFX(getifaddrs)
+
+
+ popq %rbp
+ popq %rsi
+ popq %rbp
+ ret
+
+
+
+ASM_GLOBAL _Gasketfreeifaddrs
+_Gasketfreeifaddrs:
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+
+ call _freeifaddrs
+
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+
+
+
+
+ASM_GLOBAL ASM_PFX(GasketUgaClose)
+ASM_PFX(GasketUgaClose):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+
+ call ASM_PFX(UgaClose)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+
+
+
+ASM_GLOBAL ASM_PFX(GasketUgaSize)
+ASM_PFX(GasketUgaSize):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _UgaSize
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UgaSize)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaCheckKey
-_GasketUgaCheckKey:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUgaCheckKey)
+ASM_PFX(GasketUgaCheckKey):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
- call _UgaCheckKey
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UgaCheckKey)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaGetKey
-_GasketUgaGetKey:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketUgaGetKey)
+ASM_PFX(GasketUgaGetKey):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
- call _UgaGetKey
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UgaGetKey)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+ASM_GLOBAL ASM_PFX(GasketUgaKeySetState)
+ASM_PFX(GasketUgaKeySetState):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+ movq %rdx, %rsi
+
+ call ASM_PFX(UgaKeySetState)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+
+ASM_GLOBAL ASM_PFX(GasketUgaRegisterKeyNotify)
+ASM_PFX(GasketUgaRegisterKeyNotify):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+ movq %rdx, %rsi
+ movq %r8, %rdx
+
+ call ASM_PFX(UgaRegisterKeyNotify)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketUgaBlt
-_GasketUgaBlt:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+
+
+
+ASM_GLOBAL ASM_PFX(GasketUgaBlt)
+ASM_PFX(GasketUgaBlt):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
movq %r9, %rcx
- call _UgaBlt
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(UgaBlt)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+
+ASM_GLOBAL ASM_PFX(GasketUgaCheckPointer)
+ASM_PFX(GasketUgaCheckPointer):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+
+ call ASM_PFX(UgaCheckPointer)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
+ASM_GLOBAL ASM_PFX(GasketUgaGetPointerState)
+ASM_PFX(GasketUgaGetPointerState):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ movq %rcx, %rdi // Swizzle args
+ movq %rdx, %rsi
+
+ call ASM_PFX(UgaGetPointerState)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+
+ASM_GLOBAL ASM_PFX(GasketUnixEnableInterrupt)
+ASM_PFX(GasketUnixEnableInterrupt):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(UnixEnableInterrupt)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
+ASM_GLOBAL ASM_PFX(GasketUnixDisableInterrupt)
+ASM_PFX(GasketUnixDisableInterrupt):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(UnixDisableInterrupt)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
+ ret
+
//
// UNIX ABI to EFI ABI call
//
// UINTN
// ReverseGasketUint64 (
// void *Api,
-// UINTN Arg1,
-// UINTN Arg2,
-// UINTN Arg3
+// UINTN Arg1
// );
-.globl _ReverseGasketUint64
-_ReverseGasketUint64:
+ASM_GLOBAL ASM_PFX(ReverseGasketUint64)
+ASM_PFX(ReverseGasketUint64):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
movq %rdi, %rax // Swizzle args
- movq %rsi, %r9
-// movq %rdx, %rdx
- movq %rcx, %r8
- movq %r9, %rcx
+ movq %rsi, %rcx
- subq $40, %rsp // 32-byte shadow space plus alignment pad
- call *%rax
- addq $40, %rsp
+ subq $32, %rsp // 32-byte shadow space
+ call *%rax
+ addq $32, %rsp
- ret
-
+ popq %rbp
+ ret
+
+//
+// UNIX ABI to EFI ABI call
+//
+// UINTN
+// ReverseGasketUint64Uint64 (
+// void *Api,
+// UINTN Arg1
+// UINTN Arg2
+// );
+ASM_GLOBAL ASM_PFX(ReverseGasketUint64Uint64)
+ASM_PFX(ReverseGasketUint64Uint64):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ movq %rdi, %rax // Swizzle args
+ movq %rsi, %rcx
+
+ subq $32, %rsp // 32-byte shadow space
+ call *%rax
+ addq $32, %rsp
+
+ popq %rbp
+ ret
+
// Sec PPI Callbacks
-.globl _GasketSecUnixPeiLoadFile
-_GasketSecUnixPeiLoadFile:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecUnixPeiLoadFile)
+ASM_PFX(GasketSecUnixPeiLoadFile):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
movq %r9, %rcx
- call _SecUnixPeiLoadFile
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecUnixPeiLoadFile)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketSecUnixPeiAutoScan
-_GasketSecUnixPeiAutoScan:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecUnixPeiAutoScan)
+ASM_PFX(GasketSecUnixPeiAutoScan):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
- call _SecUnixPeiAutoScan
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecUnixPeiAutoScan)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketSecUnixUnixThunkAddress
-_GasketSecUnixUnixThunkAddress:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecUnixUnixThunkAddress)
+ASM_PFX(GasketSecUnixUnixThunkAddress):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
- call _SecUnixUnixThunkAddress
-
- popq %rdi // restore state
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
+
+ call ASM_PFX(SecUnixUnixThunkAddress)
+
+
+ popq %rdi
popq %rsi
+ popq %rbp
ret
-.globl _GasketSecPeiReportStatusCode
-_GasketSecPeiReportStatusCode:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecPeiReportStatusCode)
+ASM_PFX(GasketSecPeiReportStatusCode):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq $0, %r8 // BugBug: This should come from the stack
movq $0, %r9 // But we can cheat since they are optional for bringup....
- call _SecPeiReportStatusCode
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecPeiReportStatusCode)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketSecUnixFdAddress
-_GasketSecUnixFdAddress:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecUnixFdAddress)
+ASM_PFX(GasketSecUnixFdAddress):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
movq %r9, %rcx
- call _SecUnixFdAddress
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecUnixFdAddress)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret
-.globl _GasketSecTemporaryRamSupport
-_GasketSecTemporaryRamSupport:
- pushq %rsi // %rsi & %rdi are volatie in Unix and callee-save in EFI ABI
- pushq %rdi
+ASM_GLOBAL ASM_PFX(GasketSecTemporaryRamSupport)
+ASM_PFX(GasketSecTemporaryRamSupport):
+ pushq %rbp // stack frame is for the debugger
+ movq %rsp, %rbp
+
+ pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI
+ pushq %rdi
movq %rcx, %rdi // Swizzle args
movq %rdx, %rsi
movq %r8, %rdx
movq %r9, %rcx
- call _SecTemporaryRamSupport
-
- popq %rdi // restore state
- popq %rsi
+ call ASM_PFX(SecTemporaryRamSupport)
+
+ popq %rdi // restore state
+ popq %rsi
+ popq %rbp
ret