Skip to content

Commit 306d571

Browse files
authored
Fix endianess issue during assignment. (capstone-engine#2528)
1 parent 2cfca35 commit 306d571

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Diff for: arch/AArch64/AArch64Mapping.c

+9-9
Original file line numberDiff line numberDiff line change
@@ -1422,7 +1422,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
14221422
const AArch64DBnXS_DBnXS *DB =
14231423
AArch64DBnXS_lookupDBnXSByEncoding(Val);
14241424
if (DB)
1425-
sysop.imm = DB->SysImm;
1425+
sysop.imm.dbnxs = (aarch64_dbnxs) DB->SysImm.dbnxs;
14261426
else
14271427
sysop.imm.raw_val = Val;
14281428
sysop.sub_type = AARCH64_OP_DBNXS;
@@ -1438,7 +1438,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
14381438
const AArch64ISB_ISB *ISB =
14391439
AArch64ISB_lookupISBByEncoding(Val);
14401440
if (ISB)
1441-
sysop.alias = ISB->SysAlias;
1441+
sysop.alias.isb = (aarch64_isb) ISB->SysAlias.isb;
14421442
else
14431443
sysop.alias.raw_val = Val;
14441444
sysop.sub_type = AARCH64_OP_ISB;
@@ -1448,7 +1448,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
14481448
const AArch64TSB_TSB *TSB =
14491449
AArch64TSB_lookupTSBByEncoding(Val);
14501450
if (TSB)
1451-
sysop.alias = TSB->SysAlias;
1451+
sysop.alias.tsb = (aarch64_tsb) TSB->SysAlias.tsb;
14521452
else
14531453
sysop.alias.raw_val = Val;
14541454
sysop.sub_type = AARCH64_OP_TSB;
@@ -1458,7 +1458,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
14581458
const AArch64DB_DB *DB =
14591459
AArch64DB_lookupDBByEncoding(Val);
14601460
if (DB)
1461-
sysop.alias = DB->SysAlias;
1461+
sysop.alias.db = (aarch64_db) DB->SysAlias.db;
14621462
else
14631463
sysop.alias.raw_val = Val;
14641464
sysop.sub_type = AARCH64_OP_DB;
@@ -1473,7 +1473,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
14731473
const AArch64BTIHint_BTI *BTI =
14741474
AArch64BTIHint_lookupBTIByEncoding(btihintop);
14751475
if (BTI)
1476-
sysop.alias = BTI->SysAlias;
1476+
sysop.alias.bti = (aarch64_bti) BTI->SysAlias.bti;
14771477
else
14781478
sysop.alias.raw_val = btihintop;
14791479
sysop.sub_type = AARCH64_OP_BTI;
@@ -1579,7 +1579,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
15791579
aarch64_sysop sysop = { 0 };
15801580
// If Reg is NULL it is a generic system register.
15811581
if (Reg)
1582-
sysop.reg = Reg->SysReg;
1582+
sysop.reg.sysreg = (aarch64_sysreg) Reg->SysReg.sysreg;
15831583
else {
15841584
sysop.reg.raw_val = Val;
15851585
}
@@ -1597,7 +1597,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
15971597
AArch64PSBHint_lookupPSBByEncoding(psbhintop);
15981598
aarch64_sysop sysop = { 0 };
15991599
if (PSB)
1600-
sysop.alias = PSB->SysAlias;
1600+
sysop.alias.psb = (aarch64_psb) PSB->SysAlias.psb;
16011601
else
16021602
sysop.alias.raw_val = psbhintop;
16031603
sysop.sub_type = AARCH64_OP_PSB;
@@ -1611,7 +1611,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
16111611
AArch64PRFM_lookupPRFMByEncoding(prfop);
16121612
aarch64_sysop sysop = { 0 };
16131613
if (PRFM)
1614-
sysop.alias = PRFM->SysAlias;
1614+
sysop.alias.prfm = (aarch64_prfm) PRFM->SysAlias.prfm;
16151615
else
16161616
sysop.alias.raw_val = prfop;
16171617
sysop.sub_type = AARCH64_OP_PRFM;
@@ -1648,7 +1648,7 @@ void AArch64_add_cs_detail_0(MCInst *MI, aarch64_op_group op_group,
16481648
AArch64SVCR_lookupSVCRByEncoding(svcrop);
16491649
aarch64_sysop sysop = { 0 };
16501650
if (SVCR)
1651-
sysop.alias = SVCR->SysAlias;
1651+
sysop.alias.svcr = (aarch64_svcr) SVCR->SysAlias.svcr;
16521652
else
16531653
sysop.alias.raw_val = svcrop;
16541654
sysop.sub_type = AARCH64_OP_SVCR;

0 commit comments

Comments
 (0)