From 2f3a48cba90c6d5bf9728148dcc7eaf667e4b360 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sun, 3 Jun 2018 19:21:14 +0300 Subject: [PATCH] Implement JIT FPU unimplemented addressing mode. --- jit/compemu_fpp.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/jit/compemu_fpp.cpp b/jit/compemu_fpp.cpp index 4b0afdfe..ebbaa6b2 100644 --- a/jit/compemu_fpp.cpp +++ b/jit/compemu_fpp.cpp @@ -132,14 +132,19 @@ STATIC_INLINE int comp_fp_get (uae_u32 opcode, uae_u16 extra, int treg) } case 2: /* (d16,PC) */ { - uae_u32 address = start_pc + ((uae_char*) comp_pc_p - (uae_char*) start_pc_p) + - m68k_pc_offset; + uae_u32 address = start_pc + ((uae_char*) comp_pc_p - (uae_char*) start_pc_p) + m68k_pc_offset; uae_s32 PC16off = (uae_s32) (uae_s16) comp_get_iword ((m68k_pc_offset += 2) - 2); mov_l_ri (S1, address + PC16off); break; } case 3: /* (d8,PC,Xn) or (bd,PC,Xn) or ([bd,PC,Xn],od) or ([bd,PC],Xn,od) */ - return -1; /* rarely used, fallback to non-JIT */ + { + uae_u32 address = start_pc + ((uae_char*)comp_pc_p - (uae_char*)start_pc_p) + m68k_pc_offset; + uae_u32 dp = comp_get_iword((m68k_pc_offset += 2) - 2); + mov_l_ri(S3, address); + calc_disp_ea_020(S3, dp, S1, S2); + break; + } case 4: /* # < data >; Constants should be converted just once by the JIT */ m68k_pc_offset += sz2[size]; switch (size) { -- 2.47.3