pike.git/
src/
code/
amd64.c
Branch:
Tag:
Non-build tags
All tags
No tags
2014-08-31
2014-08-31 13:15:39 by Per Hedbor <ph@opera.com>
d1faf93996c06279d686a9d3207eecda1e26f187 (
15
lines) (+
8
/-
7
)
[
Show
|
Annotate
]
Branch:
8.0
Fixed F_LSH_INT.
2912:
LABELS(); ins_debug_instr_prologue(b, 0, 0); amd64_load_sp_reg();
-
mov_mem8_reg(sp_reg, -1
*sizeof(struct svalue
), P_REG_RAX );
+
mov_mem8_reg(sp_reg,
SVAL(
-1)
.type
, P_REG_RAX );
test_reg32(P_REG_RAX); jz(&label_B); LABEL_A;
2921:
instrs[a-F_OFFSET].flags); jmp(&label_C); LABEL_B;
-
mov_imm_mem(PIKE_T_INT,sp_reg,SVAL(-
2
).type);
-
mov_mem_reg( sp_reg, SVAL(-
2
).value, P_REG_RBX);
+
mov_imm_mem(PIKE_T_INT,sp_reg,SVAL(-
1
).type);
+
mov_mem_reg( sp_reg, SVAL(-
1
).value, P_REG_RBX);
/* ok. It would have been nice is sal set a bit that stayed set when you shifted out a 1 bit. :) */
2932:
shr_reg_imm( P_REG_RDX, P_REG_RCX ); cmp_reg_reg( P_REG_RDX, P_REG_RAX ); jne( &label_A );
-
mov_reg_mem( P_REG_RBX, sp_reg, SVAL(-
2
).value);
-
amd64_add_sp(-1);
+
mov_reg_mem( P_REG_RBX, sp_reg, SVAL(-
1
).value);
LABEL_C;
-
+
return;
} if(!b) return; if( b < 0 )
2946:
LABELS(); ins_debug_instr_prologue(b, 0, 0); amd64_load_sp_reg();
-
mov_mem8_reg(sp_reg, -1
*sizeof(struct svalue
), P_REG_RAX );
+
mov_mem8_reg(sp_reg,
SVAL(
-1)
.type
, P_REG_RAX );
test_reg(P_REG_RAX); jnz(&label_A); mov_mem_reg( sp_reg, SVAL(-1).value, P_REG_RAX); /* FIXME: shr_mem_imm */ mov_imm_mem(PIKE_T_INT,sp_reg,SVAL(-1).type);
-
shr_reg_imm( P_REG_RAX,b);
+
shr_reg_imm( P_REG_RAX,
b);
mov_reg_mem( P_REG_RAX, sp_reg, SVAL(-1).value); jmp(&label_B); LABEL_A;