pike.git
/
src
/
code
/
sparc.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/sparc.c:470:
SET_REG(SPARC_REG_I1, x); reg = SPARC_REG_I1; } if (sizeof(INT_TYPE) == 4) { SPARC_STW(reg, SPARC_REG_PIKE_SP, sparc_pike_sp_bias + OFFSETOF(svalue, u.integer), 1); } else { SPARC_STX(reg, SPARC_REG_PIKE_SP, sparc_pike_sp_bias + OFFSETOF(svalue, u.integer), 1); }
-
if (x != type_word) {
+
if (
!type_word) {
+
reg = SPARC_REG_G0;
+
} else if (
x != type_word) {
SET_REG(SPARC_REG_I1, type_word);
-
+
reg = SPARC_REG_I1;
}
-
/*
This is safe since type_word is never zero. */
-
/*
stw %
i1
, [ %pike_sp ] */
-
SPARC_STW(
SPARC_REG_I1
, SPARC_REG_PIKE_SP, sparc_pike_sp_bias, 1);
+
/* stw %
reg
, [ %pike_sp ] */
+
SPARC_STW(
reg
, SPARC_REG_PIKE_SP, sparc_pike_sp_bias, 1);
sparc_pike_sp_bias += sizeof(struct svalue); sparc_codegen_state |= SPARC_CODEGEN_SP_NEEDS_STORE; } static void sparc_clear_string_subtype(void) { LOAD_PIKE_SP(); /* lduh [ %pike_sp, %g0 ], %i0 */ SPARC_LDUH(SPARC_REG_I0, SPARC_REG_PIKE_SP, sparc_pike_sp_bias + OFFSETOF(svalue, type), 1);