#define SPARCV9_BLK (1<<5) /* VIS1 block copy */
#define SPARCV9_VIS3 (1<<6)
#define SPARCV9_RANDOM (1<<7)
+#define SPARCV9_64BIT_STACK (1<<8)
/*
* OPENSSL_sparcv9cap_P[1] is copy of Compatibility Feature Register,
# define __PIC__
#endif
+#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__)
+# define __arch64__
+#endif
+
#define SPARC_PIC_THUNK(reg) \
.align 32; \
.Lpic_thunk: \
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
+# define STACK_7thARG (STACK_BIAS+176)
#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 STACK_7thARG 92
# define SPARC_LOAD_ADDRESS_LEAF(SYM,reg,tmp) SPARC_LOAD_ADDRESS(SYM,reg)
#endif