summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2015-11-29 07:16:08 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2015-11-29 07:16:08 +0000
commit25ef2e53c976d01ffd90c9d2091d5cc562993e6b (patch)
tree077c419550d7a3ffb86e03720bd4f886e967013d /sys/powerpc/include
parent30151e3525326f123feec03d52cb20e7fd25e4c3 (diff)
downloadFreeBSD-src-25ef2e53c976d01ffd90c9d2091d5cc562993e6b.zip
FreeBSD-src-25ef2e53c976d01ffd90c9d2091d5cc562993e6b.tar.gz
Make ELFv2 powerpc64 kernels build and run. Loader support will come in a
separate commit.
Diffstat (limited to 'sys/powerpc/include')
-rw-r--r--sys/powerpc/include/asm.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/powerpc/include/asm.h b/sys/powerpc/include/asm.h
index e5ec398..b3c979c 100644
--- a/sys/powerpc/include/asm.h
+++ b/sys/powerpc/include/asm.h
@@ -87,7 +87,9 @@
.tc name[TC],name
#endif
-#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1)
+#ifdef __powerpc64__
+
+#if !defined(_CALL_ELF) || _CALL_ELF == 1
#define _ENTRY(name) \
.section ".text"; \
.p2align 2; \
@@ -100,6 +102,17 @@
.p2align 4; \
TYPE_ENTRY(name) \
DOT_LABEL(name):
+#else
+#define _ENTRY(name) \
+ .text; \
+ .p2align 4; \
+ .globl name; \
+ .type name,@function; \
+name: \
+ addis %r2, %r12, (.TOC.-name)@ha; \
+ addi %r2, %r2, (.TOC.-name)@l; \
+ .localentry name, .-name;
+#endif
#define _END(name) \
.long 0; \
OpenPOWER on IntegriCloud