Switch x86 syscall stubs over to the ENTER/END style of the ARM stubs.
Also update the x86 asm.h to support this; we need it for libm assembler anyway. Also clean up the _FBSDID hack in <sys/cdefs.h>. Change-Id: Iababd977b8110ec022bf7c93f4d62ece47630e7c
This commit is contained in:
@@ -51,14 +51,10 @@ def create_file( relpath ):
|
||||
#
|
||||
|
||||
x86_header = """/* autogenerated by gensyscalls.py */
|
||||
#include <machine/asm.h>
|
||||
#include <sys/linux-syscalls.h>
|
||||
|
||||
.text
|
||||
.type %(fname)s, @function
|
||||
.globl %(fname)s
|
||||
.align 4
|
||||
|
||||
%(fname)s:
|
||||
ENTRY(%(fname)s)
|
||||
"""
|
||||
|
||||
x86_registers = [ "%ebx", "%ecx", "%edx", "%esi", "%edi", "%ebp" ]
|
||||
@@ -76,6 +72,7 @@ x86_call = """ movl $%(idname)s, %%eax
|
||||
"""
|
||||
|
||||
x86_return = """ ret
|
||||
END(%(fname)s)
|
||||
"""
|
||||
|
||||
# ARM assembler templates for each syscall stub
|
||||
@@ -288,7 +285,7 @@ class State:
|
||||
for r in range(numparams):
|
||||
result += " popl " + x86_registers[numparams-r-1] + "\n"
|
||||
|
||||
result += x86_return
|
||||
result += x86_return % t
|
||||
return result
|
||||
|
||||
def x86_genstub_cid(self, fname, numparams, idname, cid):
|
||||
@@ -326,7 +323,7 @@ class State:
|
||||
result += " popl %ebx" + "\n"
|
||||
|
||||
# epilog
|
||||
result += x86_return
|
||||
result += x86_return % t
|
||||
return result
|
||||
|
||||
def arm_genstub(self,fname, flags, idname):
|
||||
|
Reference in New Issue
Block a user