summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2009-10-21 18:09:48 +0000
committermarcel <marcel@FreeBSD.org>2009-10-21 18:09:48 +0000
commit54dc4c4edce93d8b7a392d6c4ec150986f328d41 (patch)
treed1e8f826aa33c5f856af1231fe8ae81cf6287582 /sys/ia64
parent7e253ca5eb1409db0d9ebdaa479aab3eee3bd088 (diff)
downloadFreeBSD-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.h10
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 ; \
OpenPOWER on IntegriCloud