tricore: fixes #2386 in v5 (#2527)
Some checks failed
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:cmake enable-asan:OFF name:ubuntu-22.04 x64 cmake os:ubuntu-22.04]) (push) Has been cancelled
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:cmake enable-asan:ON name:ubuntu-22.04 x64 ASAN os:ubuntu-latest]) (push) Has been cancelled
Run Test / ${{ matrix.config.name }} (map[arch:x64 build-system:make name:ubuntu-22.04 x64 make os:ubuntu-22.04]) (push) Has been cancelled
Run Test / ${{ matrix.config.name }} (map[arch:x64 name:windows x64 MSVC 64bit os:windows-latest platform:windows python-arch:x64 python-version:3.9]) (push) Has been cancelled
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (macos-latest) (push) Has been cancelled
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (ubuntu-latest) (push) Has been cancelled
RELEASE BUILD - PyPI 📦 Distribution / Build wheels on ${{ matrix.os }} (windows-latest) (push) Has been cancelled
RELEASE BUILD - PyPI 📦 Distribution / Make SDist (push) Has been cancelled
Python Package CI / build (macOS-14, 3.12) (push) Has been cancelled
Python Package CI / build (macOS-14, 3.8) (push) Has been cancelled
Python Package CI / build (ubuntu-24.04, 3.12) (push) Has been cancelled
Python Package CI / build (ubuntu-24.04, 3.8) (push) Has been cancelled
Python Package CI / build (windows-2022, 3.12) (push) Has been cancelled
Python Package CI / build (windows-2022, 3.8) (push) Has been cancelled
RELEASE BUILD - PyPI 📦 Distribution / publish (push) Has been cancelled

This commit is contained in:
billow 2024-11-01 17:31:21 +08:00 committed by GitHub
parent 36a9619b73
commit 8455b3c5a5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 5 deletions

View File

@ -402,8 +402,7 @@ static void printDisp4Imm(MCInst *MI, int OpNum, SStream *O)
case TRICORE_LOOP_sbr: case TRICORE_LOOP_sbr:
// {27b111111111111111111111111111, disp4, 0}; // {27b111111111111111111111111111, disp4, 0};
disp = (int32_t)MI->address + disp = (int32_t)MI->address +
((0x7ffffff << 5) | ((0x7ffffff << 5) | (disp << 1));
(disp << 1));
break; break;
default: default:
// handle other cases, if any // handle other cases, if any
@ -449,10 +448,11 @@ static void printOExtImm_4(MCInst *MI, int OpNum, SStream *O)
if (MCOperand_isImm(MO)) { if (MCOperand_isImm(MO)) {
uint32_t imm = MCOperand_getImm(MO); uint32_t imm = MCOperand_getImm(MO);
// {27b111111111111111111111111111, disp4, 0}; // {27b111111111111111111111111111, disp4, 0};
imm = 0xffffffe0 | (imm << 1); int32_t off = (int32_t)(0xffffffe0 | (imm << 1));
uint32_t target = (int32_t)MI->address + off;
printInt32Bang(O, imm); printUInt32(O, target);
fill_imm(MI, imm); fill_imm(MI, (int32_t)target);
} else } else
printOperand(MI, OpNum, O); printOperand(MI, OpNum, O);
} }

View File

@ -1,2 +1,3 @@
# CS_ARCH_TRICORE, CS_MODE_TRICORE_162, None # CS_ARCH_TRICORE, CS_MODE_TRICORE_162, None
0x8f,0xff,0x83,0x81 = xor d8, d15, #0x3f 0x8f,0xff,0x83,0x81 = xor d8, d15, #0x3f
0xfc,0x2e = loop a2, 0xfffffffc