Skip to content

Commit

Permalink
Merge pull request #1486 from serpilliere/fix_aarch64_cmp
Browse files Browse the repository at this point in the history
Fix add/sub aarch64
  • Loading branch information
serpilliere committed Apr 28, 2024
2 parents b9ec175 + c5d4231 commit 90dc167
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
9 changes: 7 additions & 2 deletions miasm/arch/aarch64/arch.py
Expand Up @@ -1909,6 +1909,10 @@ def encode(self):
bs_adsu_name = bs_name(l=1, name=adsu_name)


adsus_name = {'ADDS': 0, 'SUBS': 1}
bs_adsus_name = bs_name(l=1, name=adsus_name)


offs19 = bs(l=19, cls=(aarch64_offs,), fname='off')
offs19pc = bs(l=19, cls=(aarch64_offs_pc,), fname='off')

Expand Down Expand Up @@ -1939,8 +1943,9 @@ def encode(self):

aarch64op("cmp", [sf, bs('1'), bs('1'), bs('01011'), shift, bs('0'), rm_sft, imm6, rn, bs('11111')], [rn, rm_sft], alias=True)
# add/sub (reg ext)
aarch64op("addsub", [sf, bs_adsu_name, modf, bs('01011'), bs('00'), bs('1'), rm_ext, option, imm3, rn, rd], [rd, rn, rm_ext])
#aarch64op("cmp", [sf, bs('1'), bs('1'), bs('01011'), bs('00'), bs('1'), rm_ext, option, imm3, rn, bs('11111')], [rn, rm_ext], alias=True)
aarch64op("addsub", [sf, bs_adsu_name, bs('0'), bs('01011'), bs('00'), bs('1'), rm_ext, option, imm3, rn, rd], [rd, rn, rm_ext])
aarch64op("addssubs", [sf, bs_adsus_name, bs('1'), bs('01011'), bs('00'), bs('1'), rm_ext, option, imm3, rn, rd_nosp], [rd_nosp, rn, rm_ext])
aarch64op("cmp", [sf, bs('1'), bs('1'), bs('01011'), bs('00'), bs('1'), rm_ext, option, imm3, rn, bs('11111')], [rn, rm_ext], alias=True)


aarch64op("neg", [sf, bs('1'), modf, bs('01011'), shift, bs('0'), rm_sft, imm6, bs('11111'), rd], [rd, rm_sft], alias=True)
Expand Down
3 changes: 3 additions & 0 deletions test/arch/aarch64/arch.py
Expand Up @@ -67,6 +67,9 @@
("0000D5AC NEG W6, W6",
"E603064B"),

("XXXXXXXX CMP W11, W12 UXTB 0x0",
"7F012C6B"),


("004028B8 CMP X0, XZR",
"1F001FEB"),
Expand Down

0 comments on commit 90dc167

Please sign in to comment.