mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-22 23:24:59 +00:00
[X86]: Correctly sign-extend 16-bit immediate in CALL instruction.
Patch by Matthew Barney. Thanks! Differential Revision: http://reviews.llvm.org/D9514 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240795 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -551,9 +551,15 @@ static void translateImmediate(MCInst &mcInst, uint64_t immediate,
|
||||
case TYPE_REL8:
|
||||
isBranch = true;
|
||||
pcrel = insn.startLocation + insn.immediateOffset + insn.immediateSize;
|
||||
if(immediate & 0x80)
|
||||
if (immediate & 0x80)
|
||||
immediate |= ~(0xffull);
|
||||
break;
|
||||
case TYPE_REL16:
|
||||
isBranch = true;
|
||||
pcrel = insn.startLocation + insn.immediateOffset + insn.immediateSize;
|
||||
if (immediate & 0x8000)
|
||||
immediate |= ~(0xffffull);
|
||||
break;
|
||||
case TYPE_REL32:
|
||||
case TYPE_REL64:
|
||||
isBranch = true;
|
||||
|
Reference in New Issue
Block a user