3c3
< // Copyright (c) 2010 ARM Limited
---
> // Copyright (c) 2010,2019 ARM Limited
228,229c228,238
< switch (PUBWL) {
< case 0x18:
---
>
> const auto type_L = bits(machInst, 22, 20);
> const auto ex_ord = bits(machInst, 9, 8);
> const auto dec_fields = (type_L << 2) | ex_ord;
>
> switch (dec_fields) {
> case 0x00:
> return new %(stl)s(machInst, rt, rn, true, 0);
> case 0x02:
> return new %(stlex)s(machInst, rt, rt2, rn, true, 0);
> case 0x03:
231c240,244
< case 0x19:
---
> case 0x04:
> return new %(lda)s(machInst, rt, rn, true, 0);
> case 0x06:
> return new %(ldaex)s(machInst, rt, rn, true, 0);
> case 0x07:
233c246,248
< case 0x1a:
---
> case 0x0a:
> return new %(stlexd)s(machInst, rt, rt2, rt2 + 1, rn, true, 0);
> case 0x0b:
235c250,252
< case 0x1b:
---
> case 0x0e:
> return new %(ldaexd)s(machInst, rt, rt + 1, rn, true, 0);
> case 0x0f:
237c254,258
< case 0x1c:
---
> case 0x10:
> return new %(stlb)s(machInst, rt, rn, true, 0);
> case 0x12:
> return new %(stlexb)s(machInst, rt, rt2, rn, true, 0);
> case 0x13:
239c260,264
< case 0x1d:
---
> case 0x14:
> return new %(ldab)s(machInst, rt, rn, true, 0);
> case 0x16:
> return new %(ldaexb)s(machInst, rt, rn, true, 0);
> case 0x17:
241c266,270
< case 0x1e:
---
> case 0x18:
> return new %(stlh)s(machInst, rt, rn, true, 0);
> case 0x1a:
> return new %(stlexh)s(machInst, rt, rt2, rn, true, 0);
> case 0x1b:
242a272,275
> case 0x1c:
> return new %(ldah)s(machInst, rt, rn, true, 0);
> case 0x1e:
> return new %(ldaexh)s(machInst, rt, rn, true, 0);
257c290,306
< "strexd" : "STREXD_" + storeDoubleImmClassName(False, True, False)
---
> "strexd" : "STREXD_" + storeDoubleImmClassName(False, True, False),
>
> "lda" : "LDA_" + loadImmClassName(False, True, False, size=4),
> "ldab" : "LDAB_" + loadImmClassName(False, True, False, size=1),
> "ldah" : "LDAH_" + loadImmClassName(False, True, False, size=2),
> "ldaex" : "LDAEX_" + loadImmClassName(False, True, False, size=4),
> "ldaexb" : "LDAEXB_" + loadImmClassName(False, True, False, size=1),
> "ldaexh" : "LDAEXH_" + loadImmClassName(False, True, False, size=2),
> "ldaexd" : "LDAEXD_" + loadDoubleImmClassName(False, True, False),
>
> "stl" : "STL_" + storeImmClassName(False, True, False, size=4),
> "stlb" : "STLB_" + storeImmClassName(False, True, False, size=1),
> "stlh" : "STLH_" + storeImmClassName(False, True, False, size=2),
> "stlex" : "STLEX_" + storeImmClassName(False, True, False, size=4),
> "stlexb" : "STLEXB_" + storeImmClassName(False, True, False, size=1),
> "stlexh" : "STLEXH_" + storeImmClassName(False, True, False, size=2),
> "stlexd" : "STLEXD_" + storeDoubleImmClassName(False, True, False)
343a393,407
> case 0x8:
> return new %(stlb)s(machInst, rt, rn, true, 0);
> case 0x9:
> return new %(stlh)s(machInst, rt, rn, true, 0);
> case 0xa:
> return new %(stl)s(machInst, rt, rn, true, 0);
> case 0xc:
> return new %(stlexb)s(machInst, rd, rt, rn, true, 0);
> case 0xd:
> return new %(stlexh)s(machInst, rd, rt, rn, true, 0);
> case 0xe:
> return new %(stlex)s(machInst, rd, rt, rn, true, 0);
> case 0xf:
> return new %(stlexd)s(machInst, rd, rt,
> rt2, rn, true, 0);
358a423,436
> case 0x8:
> return new %(ldab)s(machInst, rt, rn, true, 0);
> case 0x9:
> return new %(ldah)s(machInst, rt, rn, true, 0);
> case 0xa:
> return new %(lda)s(machInst, rt, rn, true, 0);
> case 0xc:
> return new %(ldaexb)s(machInst, rt, rn, true, 0);
> case 0xd:
> return new %(ldaexh)s(machInst, rt, rn, true, 0);
> case 0xe:
> return new %(ldaex)s(machInst, rt, rn, true, 0);
> case 0xf:
> return new %(ldaexd)s(machInst, rt, rt2, rn, true, 0);
425c503,518
< "strd_puw" : storeDoubleImmClassName(False, True, True)
---
> "strd_puw" : storeDoubleImmClassName(False, True, True),
>
> "stl" : "STL_" + storeImmClassName(False, True, False, size=4),
> "stlh" : "STLH_" + storeImmClassName(False, True, False, size=2),
> "stlb" : "STLB_" + storeImmClassName(False, True, False, size=1),
> "stlex" : "STLEX_" + storeImmClassName(False, True, False, size=4),
> "stlexh" : "STLEXH_" + storeImmClassName(False, True, False, size=2),
> "stlexb" : "STLEXB_" + storeImmClassName(False, True, False, size=1),
> "stlexd" : "STLEXD_" + storeDoubleImmClassName(False, True, False),
> "lda" : "LDA_" + loadImmClassName(False, True, False, size=4),
> "ldah" : "LDAH_" + loadImmClassName(False, True, False, size=2),
> "ldab" : "LDAB_" + loadImmClassName(False, True, False, size=1),
> "ldaex" : "LDAEX_" + loadImmClassName(False, True, False, size=4),
> "ldaexh" : "LDAEXH_" + loadImmClassName(False, True, False, size=2),
> "ldaexb" : "LDAEXB_" + loadImmClassName(False, True, False, size=1),
> "ldaexd" : "LDAEXD_" + loadDoubleImmClassName(False, True, False)