Skip to content

Commit 8455b3c

Browse files
authored
1 parent 36a9619 commit 8455b3c

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

Diff for: arch/TriCore/TriCoreInstPrinter.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,7 @@ static void printDisp4Imm(MCInst *MI, int OpNum, SStream *O)
402402
case TRICORE_LOOP_sbr:
403403
// {27b’111111111111111111111111111, disp4, 0};
404404
disp = (int32_t)MI->address +
405-
((0x7ffffff << 5) |
406-
(disp << 1));
405+
((0x7ffffff << 5) | (disp << 1));
407406
break;
408407
default:
409408
// handle other cases, if any
@@ -449,10 +448,11 @@ static void printOExtImm_4(MCInst *MI, int OpNum, SStream *O)
449448
if (MCOperand_isImm(MO)) {
450449
uint32_t imm = MCOperand_getImm(MO);
451450
// {27b’111111111111111111111111111, disp4, 0};
452-
imm = 0xffffffe0 | (imm << 1);
451+
int32_t off = (int32_t)(0xffffffe0 | (imm << 1));
452+
uint32_t target = (int32_t)MI->address + off;
453453

454-
printInt32Bang(O, imm);
455-
fill_imm(MI, imm);
454+
printUInt32(O, target);
455+
fill_imm(MI, (int32_t)target);
456456
} else
457457
printOperand(MI, OpNum, O);
458458
}

Diff for: suite/MC/TriCore/handwrite.s.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# CS_ARCH_TRICORE, CS_MODE_TRICORE_162, None
22
0x8f,0xff,0x83,0x81 = xor d8, d15, #0x3f
3+
0xfc,0x2e = loop a2, 0xfffffffc

0 commit comments

Comments
 (0)