pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1692:   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:3410:    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);