From b91a95ee49d6be8449a2cef5cffbe7d70370ef10 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 3 Apr 2021 22:32:00 +0200 Subject: [DYNAREC] A few more printer on litteral LDR --- src/dynarec/arm64_printer.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/dynarec/arm64_printer.c b/src/dynarec/arm64_printer.c index ac29d0a9..43d84daa 100755 --- a/src/dynarec/arm64_printer.c +++ b/src/dynarec/arm64_printer.c @@ -180,10 +180,22 @@ const char* arm64_print(uint32_t opcode, uintptr_t addr) } if(isMask(opcode, "0x011000iiiiiiiiiiiiiiiiiiittttt", &a)) { int size = ((opcode>>30)&1)?3:2; - int offset = signExtend(imm, 9)<>30)&1)?3:2; + int offset = signExtend(imm, 19)<<2; + const char* Y[] = {"S", "D", "Q", "?"}; + snprintf(buff, sizeof(buff), "LDR %s%d, [#%+d]\t;%p", Y[sf], Rt, offset, (void*)(addr+offset)); + return buff; + } if(isMask(opcode, "1x111000011mmmmmoooS10nnnnnttttt", &a)) { int size = (opcode>>30)&3; const char* extend[] = {"?0", "?1", "UXTW", "LSL", "?4", "?5", "SXTW", "SXTX"}; -- cgit 1.4.1