Added recompiled versions of FLD1 and FLDZ.
This commit is contained in:
parent
0055238ade
commit
964b20e820
3 changed files with 37 additions and 2 deletions
|
|
@ -178,7 +178,7 @@ RecompOpFn recomp_opcodes_d9[512] =
|
||||||
|
|
||||||
/*c0*/ ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH,
|
/*c0*/ ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH,
|
||||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP,
|
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP,
|
||||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFLD1, NULL, NULL, NULL, NULL, NULL, ropFLDZ, NULL,
|
||||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
|
|
||||||
/*32-bit data*/
|
/*32-bit data*/
|
||||||
|
|
@ -200,7 +200,7 @@ RecompOpFn recomp_opcodes_d9[512] =
|
||||||
|
|
||||||
/*c0*/ ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH,
|
/*c0*/ ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFLD, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH, ropFXCH,
|
||||||
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP,
|
/*d0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP, ropFSTP,
|
||||||
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
/*e0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ropFLD1, NULL, NULL, NULL, NULL, NULL, ropFLDZ, NULL,
|
||||||
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
/*f0*/ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
33
src/codegen_ops_fpu_constant.c
Normal file
33
src/codegen_ops_fpu_constant.c
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
#include "ibm.h"
|
||||||
|
|
||||||
|
#include "x86.h"
|
||||||
|
#include "x86_flags.h"
|
||||||
|
#include "386_common.h"
|
||||||
|
#include "x87.h"
|
||||||
|
#include "codegen.h"
|
||||||
|
#include "codegen_accumulate.h"
|
||||||
|
#include "codegen_ir.h"
|
||||||
|
#include "codegen_ops.h"
|
||||||
|
#include "codegen_ops_fpu_constant.h"
|
||||||
|
#include "codegen_ops_helpers.h"
|
||||||
|
|
||||||
|
uint32_t ropFLD1(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc)
|
||||||
|
{
|
||||||
|
uop_FP_ENTER(ir);
|
||||||
|
uop_MOV_IMM(ir, IREG_temp0, 1);
|
||||||
|
uop_MOV_DOUBLE_INT(ir, IREG_ST(-1), IREG_temp0);
|
||||||
|
uop_MOV_IMM(ir, IREG_tag(-1), TAG_VALID);
|
||||||
|
fpu_PUSH(ir);
|
||||||
|
|
||||||
|
return op_pc;
|
||||||
|
}
|
||||||
|
uint32_t ropFLDZ(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc)
|
||||||
|
{
|
||||||
|
uop_FP_ENTER(ir);
|
||||||
|
uop_MOV_IMM(ir, IREG_temp0, 0);
|
||||||
|
uop_MOV_DOUBLE_INT(ir, IREG_ST(-1), IREG_temp0);
|
||||||
|
uop_MOV_IMM(ir, IREG_tag(-1), TAG_VALID);
|
||||||
|
fpu_PUSH(ir);
|
||||||
|
|
||||||
|
return op_pc;
|
||||||
|
}
|
||||||
2
src/codegen_ops_fpu_constant.h
Normal file
2
src/codegen_ops_fpu_constant.h
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
uint32_t ropFLD1(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc);
|
||||||
|
uint32_t ropFLDZ(codeblock_t *block, ir_data_t *ir, uint8_t opcode, uint32_t fetchdat, uint32_t op_32, uint32_t op_pc);
|
||||||
Loading…
Reference in a new issue