diff options
author | Andy Polyakov <appro@openssl.org> | 2012-10-25 12:07:32 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2012-10-25 12:07:32 +0000 |
commit | 1efd583085ffefb4d5d11e1e599e4123351df386 (patch) | |
tree | e6986fc9ceaf5e337c152eaae73a415e658bf64a /crypto/sparc_arch.h | |
parent | 8ed11a815ee62472fc197d1a1a3dcdb6c0681342 (diff) |
SPARCv9 assembly pack: harmonize ABI handling (so that it's handled in one
place at a time, by pre-processor in .S case and perl - in .s).
Diffstat (limited to 'crypto/sparc_arch.h')
-rw-r--r-- | crypto/sparc_arch.h | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/crypto/sparc_arch.h b/crypto/sparc_arch.h index 1a8fca95b8..1afef4b8a4 100644 --- a/crypto/sparc_arch.h +++ b/crypto/sparc_arch.h @@ -32,6 +32,10 @@ # define __PIC__ #endif +#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__) +# define __arch64__ +#endif + #define SPARC_PIC_THUNK(reg) \ .align 32; \ .Lpic_thunk: \ @@ -53,18 +57,23 @@ add %o7, reg, reg #endif -#if (defined(__GNUC__) && defined(__arch64__)) || \ - (defined(__SUNPRO_C) && defined(__sparcv9)) +#if defined(__arch64__) # define SPARC_LOAD_ADDRESS(SYM, reg) \ setx SYM, %o7, reg; -# define LDPTR ldx +# define LDPTR ldx +# define SIZE_T_CC %xcc +# define STACK_FRAME 192 +# define STACK_BIAS 2047 #else # define SPARC_LOAD_ADDRESS(SYM, reg) \ set SYM, reg; -# define LDPTR ld +# define LDPTR ld +# define SIZE_T_CC %icc +# define STACK_FRAME 112 +# define STACK_BIAS 0 # define SPARC_LOAD_ADDRESS_LEAF(SYM,reg,tmp) SPARC_LOAD_ADDRESS(SYM,reg) #endif |