From: kub Date: Tue, 16 Mar 2021 20:31:45 +0000 (+0100) Subject: sh2 drc, x86 backend, optimize move #0 with xor X-Git-Tag: v2.00~584 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6f64058800400bf5adb9eee9060505234ac5941d;p=picodrive.git sh2 drc, x86 backend, optimize move #0 with xor --- diff --git a/cpu/drc/emit_x86.c b/cpu/drc/emit_x86.c index 94111e0f..47124498 100644 --- a/cpu/drc/emit_x86.c +++ b/cpu/drc/emit_x86.c @@ -383,9 +383,12 @@ enum { xAX = 0, xCX, xDX, xBX, xSP, xBP, xSI, xDI, // x86-64,i386 common // _r_imm #define emith_move_r_imm(r, imm) do { \ - EMIT_REX_IF(0, 0, r); \ - EMIT_OP(0xb8 + ((r)&7)); \ - EMIT(imm, u32); \ + if (imm) { \ + EMIT_REX_IF(0, 0, r); \ + EMIT_OP(0xb8 + ((r)&7)); \ + EMIT(imm, u32); \ + } else \ + emith_eor_r_r(r, r); \ } while (0) #define emith_move_r_ptr_imm(r, imm) do { \