pike.git
/
src
/
code
/
amd64.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/code/amd64.c:3172:
update_arg1(b); amd64_call_c_opcode(instrs[a-F_OFFSET].address, instrs[a-F_OFFSET].flags); LABEL_B; } return; case F_MOD_INT: if( b < 0 ) break;
+
+
/* FALL_THROUGH */
+
case F_DIVIDE_INT: { LABELS(); ins_debug_instr_prologue(a-F_OFFSET, b, 0); amd64_load_sp_reg(); mov_mem8_reg(sp_reg,SVAL(-1).type, P_REG_RAX); test_reg32(P_REG_RAX); jnz(&label_A);
pike.git/src/code/amd64.c:3347:
return; } if(!b) return; if( b < 0 ) yyerror(">> with negative constant\n"); break; case F_SUBTRACT_INT: case F_ADD_NEG_INT: b = -b;
+
+
/* FALL_THROUGH */
+
case F_ADD_INT: { LABELS(); ins_debug_instr_prologue(a-F_OFFSET, b, 0); amd64_load_sp_reg(); 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 ); add_reg_imm( P_REG_RAX, b );
pike.git/src/code/amd64.c:3726:
amd64_load_mark_sp_reg(); amd64_load_sp_reg(); mov_mem_reg( mark_sp_reg, -sizeof(struct svalue*), P_REG_RAX ); amd64_add_mark_sp( -1 ); mov_reg_reg( sp_reg, ARG1_REG ); sub_reg_reg( ARG1_REG, P_REG_RAX ); shr_reg_imm( ARG1_REG, 4 ); /* arg1 = (sp_reg - *--mark_sp)/16 (sizeof(svalue)) */
+
/* FALL_THROUGH */
+
case F_MARK_CALL_BUILTIN: if(a == F_MARK_CALL_BUILTIN ) { ins_debug_instr_prologue(a-F_OFFSET, b, 0); mov_imm_reg( 0, ARG1_REG ); }
-
+
/* FALL_THROUGH */
+
case F_CALL_BUILTIN1: if(a == F_CALL_BUILTIN1 ) { ins_debug_instr_prologue(a-F_OFFSET, b, 0); mov_imm_reg( 1, ARG1_REG ); } /* Note: It is not actually possible to do ins_debug_instr_prologue * here. */