diff options
author | marcel <marcel@FreeBSD.org> | 2009-10-21 18:09:48 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2009-10-21 18:09:48 +0000 |
commit | 54dc4c4edce93d8b7a392d6c4ec150986f328d41 (patch) | |
tree | d1e8f826aa33c5f856af1231fe8ae81cf6287582 /sys/ia64 | |
parent | 7e253ca5eb1409db0d9ebdaa479aab3eee3bd088 (diff) | |
download | FreeBSD-src-54dc4c4edce93d8b7a392d6c4ec150986f328d41.zip FreeBSD-src-54dc4c4edce93d8b7a392d6c4ec150986f328d41.tar.gz |
o Align function on a 32-byte boundary so that the core's front-end
can deliver 2 bundles per cycle to the back-end.
o Mark syscall stubs with a special unwind ABI tag so that unwind
libraries know how to unwind.
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/include/asm.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/ia64/include/asm.h b/sys/ia64/include/asm.h index 0e50d47..016bc87 100644 --- a/sys/ia64/include/asm.h +++ b/sys/ia64/include/asm.h @@ -61,7 +61,7 @@ */ #define ENTRY(_name_, _n_args_) \ .global _name_; \ - .align 16; \ + .align 32; \ .proc _name_; \ _name_:; \ .regstk _n_args_, 0, 0, 0; \ @@ -69,7 +69,7 @@ _name_:; \ #define ENTRY_NOPROFILE(_name_, _n_args_) \ .global _name_; \ - .align 16; \ + .align 32; \ .proc _name_; \ _name_:; \ .regstk _n_args_, 0, 0, 0 @@ -79,7 +79,7 @@ _name_:; \ * Declare a local leaf function. */ #define STATIC_ENTRY(_name_, _n_args_) \ - .align 16; \ + .align 32; \ .proc _name_; \ _name_:; \ .regstk _n_args_, 0, 0, 0 \ @@ -161,6 +161,10 @@ label: ASCIZ msg; \ #define SYSCALLNUM(name) SYS_ ## name #define CALLSYS_NOERROR(name) \ + .prologue ; \ + .unwabi @svr4, 'S' ; \ + .save rp, r0 ; \ + .body ; \ { .mmi ; \ alloc r9 = ar.pfs, 0, 0, 8, 0 ; \ mov r31 = ar.k5 ; \ |