mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 09:54:35 +00:00
bios_emulator: fix incorrect printing of address in "call near immediate"
In the x86emuOp_call_near_IMM() function the address of CALL is printed incorrectly when jumping backwards. For example, the correct disassemble of the bytes below would be: 0000E8DE E8DBFF call 0xe8bc (verified by ndisasm). But instead the address is printed as "ffffe8bc". That's because of the following macro: DECODE_PRINTF2("%04x\n", ip); while it should be DECODE_PRINTF2("%04x\n", (u16)ip); Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
This commit is contained in:
parent
82a59b45d3
commit
5fb5180a16
1 changed files with 1 additions and 1 deletions
|
@ -4200,7 +4200,7 @@ void x86emuOp_call_near_IMM(u8 X86EMU_UNUSED(op1))
|
||||||
DECODE_PRINTF("CALL\t");
|
DECODE_PRINTF("CALL\t");
|
||||||
ip = (s16) fetch_word_imm();
|
ip = (s16) fetch_word_imm();
|
||||||
ip += (s16) M.x86.R_IP; /* CHECK SIGN */
|
ip += (s16) M.x86.R_IP; /* CHECK SIGN */
|
||||||
DECODE_PRINTF2("%04x\n", ip);
|
DECODE_PRINTF2("%04x\n", (u16)ip);
|
||||||
CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip, "");
|
CALL_TRACE(M.x86.saved_cs, M.x86.saved_ip, M.x86.R_CS, ip, "");
|
||||||
TRACE_AND_STEP();
|
TRACE_AND_STEP();
|
||||||
push_word(M.x86.R_IP);
|
push_word(M.x86.R_IP);
|
||||||
|
|
Loading…
Add table
Reference in a new issue