diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2015-11-29 07:16:08 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2015-11-29 07:16:08 +0000 |
commit | 25ef2e53c976d01ffd90c9d2091d5cc562993e6b (patch) | |
tree | 077c419550d7a3ffb86e03720bd4f886e967013d /sys/powerpc/include | |
parent | 30151e3525326f123feec03d52cb20e7fd25e4c3 (diff) | |
download | FreeBSD-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.h | 15 |
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; \ |