pike.git
/
src
/
code
/
amd64.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/amd64.c:1649:
static void amd64_call_c_opcode(void *addr, int flags) { sync_registers(flags); call_imm( addr ); } #ifdef PIKE_DEBUG static void ins_debug_instr_prologue (PIKE_INSTR_T instr, INT32 arg1, INT32 arg2) {
+
/* NB: instr has been offset by F_OFFSET. */
int flags = instrs[instr].flags; /* Note: maybe_update_pc() is called by amd64_call_c_opcode() above, * which has the side-effect of loading fp_reg. Some of the * opcodes use amd64_call_c_opcode() in conditional segments. * This is to make sure that fp_reg is always loaded on exit * from such opcodes. */ maybe_load_fp();
pike.git/src/code/amd64.c:3250:
amd64_call_c_opcode(instrs[a-F_OFFSET].address, instrs[a-F_OFFSET].flags); LABEL_B; } return; case F_XOR_INT: { LABELS(); amd64_load_sp_reg();
-
ins_debug_instr_prologue(a,b,0);
+
ins_debug_instr_prologue(a
-F_OFFSET
,b,0);
mov_mem8_reg(sp_reg,SVAL(-1).type, P_REG_RAX); test_reg32(P_REG_RAX); jnz(&label_A); mov_mem_reg(sp_reg,SVAL(-1).value, P_REG_RAX); mov_imm_reg(b,P_REG_RBX); xor_reg_reg(P_REG_RAX,P_REG_RBX); mov_imm_mem(PIKE_T_INT,sp_reg,SVAL(-1).type); mov_reg_mem(P_REG_RBX,sp_reg,SVAL(-1).value); jmp(&label_B);