diff options
author | andrew <andrew@FreeBSD.org> | 2012-04-16 09:38:20 +0000 |
---|---|---|
committer | andrew <andrew@FreeBSD.org> | 2012-04-16 09:38:20 +0000 |
commit | f784792ea971fea03f2cc953b0a8c0c521648696 (patch) | |
tree | 75b2b5c6b4bfff9017ff33d83926a3dab51dca1c /sys/arm | |
parent | 1e792bf1e77de0b17153d089d5af10adc2ebf82e (diff) | |
download | FreeBSD-src-f784792ea971fea03f2cc953b0a8c0c521648696.zip FreeBSD-src-f784792ea971fea03f2cc953b0a8c0c521648696.tar.gz |
Replace the C implementation of __aeabi_read_tp with an assembly version.
This ensures we follow the ABI by preserving registers r1-r3.
Reviewed by: jmallett, imp
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/include/armreg.h | 5 | ||||
-rw-r--r-- | sys/arm/include/sysarch.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/sys/arm/include/armreg.h b/sys/arm/include/armreg.h index 0d42ae4..4867692 100644 --- a/sys/arm/include/armreg.h +++ b/sys/arm/include/armreg.h @@ -316,8 +316,13 @@ /* * Address of the vector page, low and high versions. */ +#ifndef __ASSEMBLER__ #define ARM_VECTORS_LOW 0x00000000U #define ARM_VECTORS_HIGH 0xffff0000U +#else +#define ARM_VECTORS_LOW 0 +#define ARM_VECTORS_HIGH 0xffff0000 +#endif /* * ARM Instructions diff --git a/sys/arm/include/sysarch.h b/sys/arm/include/sysarch.h index ba337bd..138e91f 100644 --- a/sys/arm/include/sysarch.h +++ b/sys/arm/include/sysarch.h @@ -55,6 +55,7 @@ #define ARM_RAS_END (ARM_TP_ADDRESS + 8) #ifndef LOCORE +#ifndef __ASSEMBLER__ #include <sys/cdefs.h> @@ -85,6 +86,7 @@ int sysarch(int, void *); __END_DECLS #endif +#endif /* __ASSEMBLER__ */ #endif /* LOCORE */ #endif /* !_ARM_SYSARCH_H_ */ |