diff options
| author | Elliott Hughes <enh@google.com> | 2014-02-19 16:53:20 -0800 |
|---|---|---|
| committer | Elliott Hughes <enh@google.com> | 2014-02-20 13:51:26 -0800 |
| commit | 851e68a2402fa414544e66650e09dfdaac813e51 (patch) | |
| tree | baec353c8e9b6f24e885459b20a8748fc5c39468 /libc/arch-mips/include | |
| parent | 22c6b7ffd36fe8b34b677eea94d00aef2624e4e8 (diff) | |
| download | bionic-851e68a2402fa414544e66650e09dfdaac813e51.zip bionic-851e68a2402fa414544e66650e09dfdaac813e51.tar.gz bionic-851e68a2402fa414544e66650e09dfdaac813e51.tar.bz2 | |
Unify our assembler macros.
Our <machine/asm.h> files were modified from upstream, to the extent
that no architecture was actually using the upstream ENTRY or END macros,
assuming that architecture even had such a macro upstream. This patch moves
everyone to the same macros, with just a few tweaks remaining in the
<machine/asm.h> files, which no one should now use directly.
I've removed most of the unused cruft from the <machine/asm.h> files, though
there's still rather a lot in the mips/mips64 ones.
Bug: 12229603
Change-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d
Diffstat (limited to 'libc/arch-mips/include')
| -rw-r--r-- | libc/arch-mips/include/machine/asm.h | 121 | ||||
| -rw-r--r-- | libc/arch-mips/include/machine/signal.h | 2 |
2 files changed, 12 insertions, 111 deletions
diff --git a/libc/arch-mips/include/machine/asm.h b/libc/arch-mips/include/machine/asm.h index 43dbc09..5eacde3 100644 --- a/libc/arch-mips/include/machine/asm.h +++ b/libc/arch-mips/include/machine/asm.h @@ -28,25 +28,24 @@ #ifndef _MIPS64_ASM_H #define _MIPS64_ASM_H -#include <machine/regdef.h> - -#ifdef NEED_OLD_RM7KFIX -#define ITLBNOPFIX nop;nop;nop;nop;nop;nop;nop;nop;nop;nop; -#else -#define ITLBNOPFIX nop;nop;nop;nop +#ifndef _ALIGN_TEXT +# define _ALIGN_TEXT .align 4 #endif +#undef __bionic_asm_custom_entry +#undef __bionic_asm_custom_end +#define __bionic_asm_custom_entry(f) .ent f +#define __bionic_asm_custom_end(f) .end f + +#include <machine/regdef.h> + #define _MIPS_ISA_MIPS1 1 /* R2000/R3000 */ #define _MIPS_ISA_MIPS2 2 /* R4000/R6000 */ #define _MIPS_ISA_MIPS3 3 /* R4000 */ #define _MIPS_ISA_MIPS4 4 /* TFP (R1x000) */ -#ifdef __linux__ #define _MIPS_ISA_MIPS5 5 #define _MIPS_ISA_MIPS32 6 #define _MIPS_ISA_MIPS64 7 -#else -#define _MIPS_ISA_MIPS32 32 /* MIPS32 */ -#endif #if !defined(ABICALLS) && !defined(_NO_ABICALLS) #define ABICALLS .abicalls @@ -56,8 +55,6 @@ ABICALLS #endif -#define _C_LABEL(x) x /* XXX Obsolete but keep for a while */ - #if !defined(__MIPSEL__) && !defined(__MIPSEB__) #error "__MIPSEL__ or __MIPSEB__ must be defined" #endif @@ -90,15 +87,6 @@ */ #if defined(ABICALLS) && !defined(_KERNEL) && !defined(_STANDALONE) -#ifndef _MIPS_SIM -#define _MIPS_SIM 1 -#define _ABIO32 1 -#endif -#ifndef _MIPS_ISA -#define _MIPS_ISA 2 -#define _MIPS_ISA_MIPS2 2 -#endif - #if (_MIPS_SIM == _ABIO32) || (_MIPS_SIM == _ABI32) #define NARGSAVE 4 @@ -151,7 +139,7 @@ #define CF_RA_OFFS 20 /* Call ra save offset */ #endif -#if (_MIPS_ISA == _MIPS_ISA_MIPS3 || _MIPS_ISA == _MIPS_ISA_MIPS4) +#if (_MIPS_ISA == _MIPS_ISA_MIPS3 || _MIPS_ISA == _MIPS_ISA_MIPS4 || _MIPS_ISA == _MIPS_ISA_MIPS64) #define REGSZ 8 /* 64 bit mode register size */ #define LOGREGSZ 3 /* log rsize */ #define REG_S sd @@ -190,28 +178,6 @@ #endif /* - * Define -pg profile entry code. - */ -#if defined(XGPROF) || defined(XPROF) -#define MCOUNT \ - PTR_SUBU sp, sp, 32; \ - SAVE_GP(16); \ - sw ra, 28(sp); \ - sw gp, 24(sp); \ - .set noat; \ - .set noreorder; \ - move AT, ra; \ - jal _mcount; \ - PTR_SUBU sp, sp, 8; \ - lw ra, 28(sp); \ - PTR_ADDU sp, sp, 32; \ - .set reorder; \ - .set at; -#else -#define MCOUNT -#endif - -/* * LEAF(x, fsize) * * Declare a leaf routine. @@ -221,26 +187,9 @@ .globl x; \ .ent x, 0; \ x: ; \ + .cfi_startproc; \ .frame sp, fsize, ra; \ SETUP_GP \ - MCOUNT - -#define ALEAF(x) \ - .globl x; \ -x: - -/* - * NLEAF(x) - * - * Declare a non-profiled leaf routine. - */ -#define NLEAF(x, fsize) \ - .align 3; \ - .globl x; \ - .ent x, 0; \ -x: ; \ - .frame sp, fsize, ra; \ - SETUP_GP /* * NON_LEAF(x) @@ -252,54 +201,8 @@ x: ; \ .globl x; \ .ent x, 0; \ x: ; \ + .cfi_startproc; \ .frame sp, fsize, retpc; \ SETUP_GP \ - MCOUNT - -/* - * NNON_LEAF(x) - * - * Declare a non-profiled non-leaf routine - * (a routine that makes other C calls). - */ -#define NNON_LEAF(x, fsize, retpc) \ - .align 3; \ - .globl x; \ - .ent x, 0; \ -x: ; \ - .frame sp, fsize, retpc \ - SETUP_GP - -/* - * END(x) - * - * Mark end of a procedure. - */ -#define END(x) \ - .end x - -/* - * Macros to panic and printf from assembly language. - */ -#define PANIC(msg) \ - LA a0, 9f; \ - jal panic; \ - nop ; \ - MSG(msg) - -#define PRINTF(msg) \ - la a0, 9f; \ - jal printf; \ - nop ; \ - MSG(msg) - -#define MSG(msg) \ - .rdata; \ -9: .asciiz msg; \ - .text - -#define ASMSTR(str) \ - .asciiz str; \ - .align 3 #endif /* !_MIPS_ASM_H */ diff --git a/libc/arch-mips/include/machine/signal.h b/libc/arch-mips/include/machine/signal.h index f02ec0d..b31715c 100644 --- a/libc/arch-mips/include/machine/signal.h +++ b/libc/arch-mips/include/machine/signal.h @@ -37,8 +37,6 @@ #ifndef _MIPS_SIGNAL_H_ #define _MIPS_SIGNAL_H_ -#include <machine/asm.h> - #define SC_REGMASK (0*REGSZ) #define SC_STATUS (1*REGSZ) #define SC_PC (2*REGSZ) |
