* added some missing instructions and aliases, reordered them according

to how they appear in the ARM ARM
   o in particular, added the "unscaled offset" variants of instructions as
     separate opcodes (seems simpler than handling them as postfixes)

git-svn-id: trunk@29832 -
This commit is contained in:
Jonas Maebe 2015-02-23 22:48:24 +00:00
parent f1b619a942
commit c0548cadb0
4 changed files with 409 additions and 124 deletions

View File

@ -1,15 +1,37 @@
{ don't edit, this file is generated from armins.dat }
(
'nop',
'none',
'b',
'cb',
'tb',
'cbz',
'cbnz',
'tbz',
'tbnz',
'bl',
'blr',
'br',
'ret',
'brk',
'hlt',
'hvc',
'smc',
'svc',
'eret',
'dcps1',
'dcps2',
'dcps3',
'drps',
'dc',
'at',
'tlbi',
'hint',
'clrex',
'dsb',
'dmb',
'isb',
'ldr',
'str',
'ldur',
'stur',
'ldp',
'stp',
'ldnp',
@ -17,40 +39,66 @@
'ldtr',
'sttr',
'ldxr',
'ldxp',
'stxr',
'stxp',
'ldar',
'stlr',
'ldaxr',
'stlxr',
'stlxp',
'ld1',
'ld2',
'ld3',
'ld4',
'st1',
'st2',
'st3',
'st4',
'ld1r',
'ld2r',
'ld3r',
'ld4r',
'prfm',
'prfum',
'add',
'adc',
'sub',
'sbc',
'cmp',
'cmn',
'mov',
'and',
'bic',
'eor',
'eon',
'orr',
'orn',
'tst',
'mvn',
'movz',
'movn',
'movk',
'mrs',
'msr',
'adrp',
'adr',
'bfm',
'sbfm',
'ubfm',
'extr',
'sxt',
'uxt',
'adc',
'sbc',
'bic',
'eon',
'asrv',
'llslv',
'lslv',
'lsrv',
'rorv',
'madd',
'msub',
'smaddl',
'smsubl',
'smulh',
'umaddl',
'umsubl',
'umulh',
'sdiv',
'udiv',
'cls',
'clz',
'rbit',
@ -63,33 +111,39 @@
'csneg',
'ccmn',
'ccmp',
'madd',
'msub',
'smaddl',
'smsubl',
'smulh',
'umaddl',
'umsubl',
'umulh',
'sdiv',
'udiv',
'neg',
'nop',
'yield',
'wfe',
'wfi',
'sev',
'sevl',
'mov',
'bfi',
'bfxil',
'sbfiz',
'sbfx',
'ubfiz',
'ubfx',
'asr',
'lsl',
'lsr',
'ror',
'cset',
'csetm',
'cinc',
'cinv',
'cneg',
'sxt',
'uxt',
'neg',
'ngc',
'mvn',
'mneg',
'mul',
'smnegl',
'smull',
'umnegl',
'umull',
'cset',
'csetm',
'cinc',
'cinv',
'cneg',
'fmov',
'fcvt',
'fcvtas',
@ -104,13 +158,13 @@
'fcvtzu',
'scvtf',
'ucvtf',
'fprinta',
'fprinti',
'fprintm',
'fprintn',
'fprintp',
'fprintx',
'fprintz',
'frinta',
'frinti',
'frintm',
'frintn',
'frintp',
'frintx',
'frintz',
'fabs',
'fneg',
'fsqrt',
@ -130,5 +184,8 @@
'fcmpe',
'fccmp',
'fcmmpe',
'fcsel'
'fcsel',
'umov',
'ins',
'movi'
);

View File

@ -130,5 +130,62 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE
);

View File

@ -1,10 +1,15 @@
[NOP]
; invalid
[NONE]
[B]
[CB]
[CBZ]
[TB]
[CBNZ]
[TBZ]
[TBNZ]
[BL]
@ -14,10 +19,50 @@
[RET]
[BRK]
[HLT]
[HVC]
[SMC]
[SVC]
[ERET]
[DCPS1]
[DCPS2]
[DCPS3]
[DRPS]
[DC]
[AT]
[TLBI]
[HINT]
[CLREX]
[DSB]
[DMB]
[ISB]
[LDR]
[STR]
[LDUR]
[STUR]
[LDP]
[STP]
@ -32,8 +77,12 @@
[LDXR]
[LDXP]
[STXR]
[STXP]
[LDAR]
[STLR]
@ -42,40 +91,64 @@
[STLXR]
[STLXP]
[LD1]
[LD2]
[LD3]
[LD4]
[ST1]
[ST2]
[ST3]
[ST4]
[LD1R]
[LD2R]
[LD3R]
[LD4R]
[PRFM]
[PRFUM]
[ADD]
[ADC]
[SUB]
[SBC]
[CMP]
[CMN]
[MOV]
[AND]
[BIC]
[EOR]
[EON]
[ORR]
[ORN]
[TST]
[MVN]
[MOVZ]
[MOVN]
[MOVK]
[MRS]
[MSR]
[ADRP]
[ADR]
@ -88,18 +161,42 @@
[EXTR]
[SXT]
[ADC]
[UXT]
[SBC]
[BIC]
[EON]
[ASRV]
[LLSLV]
[LSLV]
[LSRV]
[RORV]
[MADD]
[MSUB]
[SMADDL]
[SMSUBL]
[SMULH]
[UMADDL]
[UMSUBL]
[UMULH]
[SDIV]
[UDIV]
[CLS]
[CLZ]
@ -124,29 +221,33 @@
[CCMP]
[MADD]
[MSUB]
[SMADDL]
[SMSUBL]
[SMULH]
[UMADDL]
[UMSUBL]
[UMULH]
[SDIV]
[UDIV]
; Aliases
; they are not generated by the compiler, they are only used for inline assembler
[NEG]
[NOP]
[YIELD]
[WFE]
[WFI]
[SEV]
[SEVL]
[MOV]
[BFI]
[BFXIL]
[SBFIZ]
[SBFX]
[UBFIZ]
[UBFX]
[ASR]
@ -156,18 +257,16 @@
[ROR]
[CSET]
[SXT]
[CSETM]
[UXT]
[CINC]
[CINV]
[CNEG]
[NEG]
[NGC]
[MVN]
[MNEG]
[MUL]
@ -180,6 +279,16 @@
[UMULL]
[CSET]
[CSETM]
[CINC]
[CINV]
[CNEG]
[FMOV]
[FCVT]
@ -208,19 +317,19 @@
[UCVTF]
[FPRINTA]
[FRINTA]
[FPRINTI]
[FRINTI]
[FPRINTM]
[FRINTM]
[FPRINTN]
[FRINTN]
[FPRINTP]
[FRINTP]
[FPRINTX]
[FRINTX]
[FPRINTZ]
[FRINTZ]
[FABS]
@ -262,3 +371,8 @@
[FCSEL]
[UMOV]
[INS]
[MOVI]

View File

@ -1,15 +1,37 @@
{ don't edit, this file is generated from armins.dat }
(
A_NOP,
A_NONE,
A_B,
A_CB,
A_TB,
A_CBZ,
A_CBNZ,
A_TBZ,
A_TBNZ,
A_BL,
A_BLR,
A_BR,
A_RET,
A_BRK,
A_HLT,
A_HVC,
A_SMC,
A_SVC,
A_ERET,
A_DCPS1,
A_DCPS2,
A_DCPS3,
A_DRPS,
A_DC,
A_AT,
A_TLBI,
A_HINT,
A_CLREX,
A_DSB,
A_DMB,
A_ISB,
A_LDR,
A_STR,
A_LDUR,
A_STUR,
A_LDP,
A_STP,
A_LDNP,
@ -17,40 +39,66 @@ A_STNP,
A_LDTR,
A_STTR,
A_LDXR,
A_LDXP,
A_STXR,
A_STXP,
A_LDAR,
A_STLR,
A_LDAXR,
A_STLXR,
A_STLXP,
A_LD1,
A_LD2,
A_LD3,
A_LD4,
A_ST1,
A_ST2,
A_ST3,
A_ST4,
A_LD1R,
A_LD2R,
A_LD3R,
A_LD4R,
A_PRFM,
A_PRFUM,
A_ADD,
A_ADC,
A_SUB,
A_SBC,
A_CMP,
A_CMN,
A_MOV,
A_AND,
A_BIC,
A_EOR,
A_EON,
A_ORR,
A_ORN,
A_TST,
A_MVN,
A_MOVZ,
A_MOVN,
A_MOVK,
A_MRS,
A_MSR,
A_ADRP,
A_ADR,
A_BFM,
A_SBFM,
A_UBFM,
A_EXTR,
A_SXT,
A_UXT,
A_ADC,
A_SBC,
A_BIC,
A_EON,
A_ASRV,
A_LLSLV,
A_LSLV,
A_LSRV,
A_RORV,
A_MADD,
A_MSUB,
A_SMADDL,
A_SMSUBL,
A_SMULH,
A_UMADDL,
A_UMSUBL,
A_UMULH,
A_SDIV,
A_UDIV,
A_CLS,
A_CLZ,
A_RBIT,
@ -63,33 +111,39 @@ A_CSINV,
A_CSNEG,
A_CCMN,
A_CCMP,
A_MADD,
A_MSUB,
A_SMADDL,
A_SMSUBL,
A_SMULH,
A_UMADDL,
A_UMSUBL,
A_UMULH,
A_SDIV,
A_UDIV,
A_NEG,
A_NOP,
A_YIELD,
A_WFE,
A_WFI,
A_SEV,
A_SEVL,
A_MOV,
A_BFI,
A_BFXIL,
A_SBFIZ,
A_SBFX,
A_UBFIZ,
A_UBFX,
A_ASR,
A_LSL,
A_LSR,
A_ROR,
A_CSET,
A_CSETM,
A_CINC,
A_CINV,
A_CNEG,
A_SXT,
A_UXT,
A_NEG,
A_NGC,
A_MVN,
A_MNEG,
A_MUL,
A_SMNEGL,
A_SMULL,
A_UMNEGL,
A_UMULL,
A_CSET,
A_CSETM,
A_CINC,
A_CINV,
A_CNEG,
A_FMOV,
A_FCVT,
A_FCVTAS,
@ -104,13 +158,13 @@ A_FCVTZS,
A_FCVTZU,
A_SCVTF,
A_UCVTF,
A_FPRINTA,
A_FPRINTI,
A_FPRINTM,
A_FPRINTN,
A_FPRINTP,
A_FPRINTX,
A_FPRINTZ,
A_FRINTA,
A_FRINTI,
A_FRINTM,
A_FRINTN,
A_FRINTP,
A_FRINTX,
A_FRINTZ,
A_FABS,
A_FNEG,
A_FSQRT,
@ -130,5 +184,8 @@ A_FCMP,
A_FCMPE,
A_FCCMP,
A_FCMMPE,
A_FCSEL
A_FCSEL,
A_UMOV,
A_INS,
A_MOVI
);