mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-04 23:07:46 -04:00
drc, tiny x86 optimisation
This commit is contained in:
parent
6488bec805
commit
cd18409722
1 changed files with 14 additions and 6 deletions
|
@ -519,15 +519,23 @@ enum { xAX = 0, xCX, xDX, xBX, xSP, xBP, xSI, xDI, // x86-64,i386 common
|
|||
|
||||
// _r_r_imm - use lea
|
||||
#define emith_add_r_r_imm(d, s, imm) do { \
|
||||
EMIT_REX_IF(0, d, s); \
|
||||
emith_deref_modrm(0x8d, 2, d, s); \
|
||||
EMIT(imm, s32); \
|
||||
if (imm == 0) \
|
||||
emith_move_r_r(d, s); \
|
||||
else { \
|
||||
EMIT_REX_IF(0, d, s); \
|
||||
emith_deref_modrm(0x8d, 2, d, s); \
|
||||
EMIT(imm, s32); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define emith_add_r_r_ptr_imm(d, s, imm) do { \
|
||||
EMIT_REX_IF(1, d, s); \
|
||||
emith_deref_modrm(0x8d, 2, d, s); \
|
||||
EMIT(imm, s32); \
|
||||
if (imm == 0) \
|
||||
emith_move_r_r_ptr(d, s); \
|
||||
else { \
|
||||
EMIT_REX_IF(1, d, s); \
|
||||
emith_deref_modrm(0x8d, 2, d, s); \
|
||||
EMIT(imm, s32); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define emith_sub_r_r_imm(d, s, imm) do { \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue