aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/sparc_arch.h
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2012-10-25 12:07:32 +0000
committerAndy Polyakov <appro@openssl.org>2012-10-25 12:07:32 +0000
commit1efd583085ffefb4d5d11e1e599e4123351df386 (patch)
treee6986fc9ceaf5e337c152eaae73a415e658bf64a /crypto/sparc_arch.h
parent8ed11a815ee62472fc197d1a1a3dcdb6c0681342 (diff)
downloadopenssl-1efd583085ffefb4d5d11e1e599e4123351df386.tar.gz
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.h17
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