Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A64: Add support for ARMv9.0 #9

Open
wants to merge 90 commits into
base: master
Choose a base branch
from
Open

Conversation

ijan1
Copy link

@ijan1 ijan1 commented Oct 22, 2023

I have added the missing instructions for ARMv9.0. Most notably SVE and SVE2 have been added.
In addition, a spreadsheet[1] has also been created for easier visualisation and some notes. for the instructions

[1] https://docs.google.com/spreadsheets/d/1jABn1_99A2nKaIqYgZTg_JrHdmxqhq-r4T9hTIFiKo0/edit?usp=sharing

Armv8.3 Load-Acquire RCpc instructions

Instructions added:
- LDAPR
- LDAPRH
- LDAPRB
Armv8.4 Load-Acquire RCpc instructions version 2

Instructions added:
- STLUR
- STLURB
- STLURH
- LDAPURB
- LDAPURSB
- LDAPURSH
- LDAPUR
- LDAPURSW
Armv8.0 Speculation Barrier

Instructions added:
- SB
Added instructions:
- MLA (vectors)
- MLS (vectors)
- MAD
- MSB

Link to spreadsheet with added instructions:
https://docs.google.com/spreadsheets/d/1YYuc-CM2gdZJpnx3xm_31EOWQ5T0cZVLmgNM6vW0I2M/edit?usp=sharing
Added instructions:
- ADD (vectors, predicated)
- SUB (vectors, predicated)
- SUBR (vectors)
- ADDPT (predicated) (FEAT_CPA)
- SUBPT (predicated) (FEAT_CPA)
- SMAX (vectors)
- UMAX (vectors)
- SMIN (vectors)
- UMIN (vectors)
- SABD
- UABD
Added instructions:
- SADDV
- UADDV
- ADDQV (FEAT_SVE2p1)
- SMAXV
- UMAXV
- SMINV
- UMINV
- SMAXQV (FEAT_SVE2p1)
- UMAXQV (FEAT_SVE2p1)
- SMINQV (FEAT_SVE2p1)
- UMINQV (FEAT_SVE2p1)
- MOVPRFX (predicated)
- ORV
- EORV
- ANDV
- ORQV
- EORQV
- ANDQV
Added instructions:
- ASR (immediate, predicated)
- LSR (immediate, predicated)
- LSL (immediate, predicated)
- ASRD
- SQSHL (immediate)
- UQSHL (immediate)
- SRSHR
- URSHR
- SQSHLU
- ASR (vectors)
- LSR (vectors)
- LSL (vectors)
- ASRR
- LSRR
- LSLR
- ASR (wide elements, predicated)
- LSR (wide elements, predicated)
- LSL (wide elements, predicated)
Instructions added:
- SXTB, SXTH, SXTW
- UXTB, UXTH, UXTW
- ABS
- ENG
- CLS, CLZ, CNT, CNOT
- FABS, FNEG
- NOT (VECTOR)
Instructions added:
- ADD (vectors, unpredicated)
- SUB (vectors, unpredicated)
- SQADD (vectors, unpredicated)
- UQADD (vectors, unpredicated)
- SQSUB (vectors, unpredicated)
- UQSUB (vectors, unpredicated)
- ADDPT (unpredicated)
- SUBPT (unpredicated)
Instructions added:
- AND (vectors, unpredicated)
- ORR (vectors, unpredicated)
- EOR (vectors, unpredicated)
- BIC (vectors, unpredicated)
- XAR
- EOR3
- BSL
- BCAX
- BSL1N
- BSL2N
- NBSL
Instructions added:
- INDEX (immediates)
- INDEX (scalar, immediate)
- INDEX (immediate, scalar)
- INDEX (scalar)
Instructions added:
- ADDVL
- ADDPL
- RDVL
- ADDSVL (FEAT_SME)
- ADDSPL (FEAT_SME)
- RDSVL (FEAT_SME)
Instructions added:
- MUL (vectors, unpredicated)
- SMULH (unpredicated)
- UMULH (unpredicated)
- PMUL
- SQDMULH (vectors)
- SQRDMULH (vectors)
- Instructions added:
- ASR (wide elements, unpredicated)
- LSR (wide elements, unpredicated)
- LSL (wide elements, unpredicated)
- ASR (immediate, unpredicated)
- LSR (immediate, unpredicated)
- LSL (immediate, unpredicated)
Instructions added:
- ADR (Unpacked 32-bit signed offsets)
- ADR (Unpacked 32-bit unsigned offsets)
- ADR (Packed offsets)
Instructions added:
- FTSSEL
- FEXPA
- MOVPRFX (unpredicated)
Instructions added:
- SQINCH (vector)
- UQINCH (vector)
- SQDECH (vector)
- UQDECH (vector)
- SQINCW (vector)
- UQINCW (vector)
- SQDECW (vector)
- UQDECW (vector)
- SQINCD (vector)
- UQINCD (vector)
- SQDECD (vector)
- UQDECD (vector)
- CNTB, CNTH, CNTW, CNTD
- INCD, INCH, INCW (vector)
- DECD, DECH, DECW (vector)
- INCB, INCD, INCH, INCW (scalar)
- DECB, DECD, DECH, DECW (scalar)
- SQINCB — 32-bit
- UQINCB — 32-bit
- SQDECB — 32-bit
- UQDECB — 32-bit
- SQINCB — 64-bit
- UQINCB — 64-bit
- SQDECB — 64-bit
- UQDECB — 64-bit
- SQINCH (scalar) — 32-bit
- UQINCH (scalar) — 32-bit
- SQDECH (scalar) — 32-bit
- UQDECH (scalar) — 32-bit
- SQINCH (scalar) — 64-bit
- UQINCH (scalar) — 64-bit
- SQDECH (scalar) — 64-bit
- UQDECH (scalar) — 64-bit
- SQINCW (scalar) — 32-bit
- UQINCW (scalar) — 32-bit
- SQDECW (scalar) — 32-bit
- UQDECW (scalar) — 32-bit
- SQINCW (scalar) — 64-bit
- UQINCW (scalar) — 64-bit
- SQDECW (scalar) — 64-bit
- UQDECW (scalar) — 64-bit
- SQINCD (scalar) — 32-bit
- UQINCD (scalar) — 32-bit
- SQDECD (scalar) — 32-bit
- UQDECD (scalar) — 32-bit
- SQINCD (scalar) — 64-bit
- UQINCD (scalar) — 64-bit
- SQDECD (scalar) — 64-bit
- UQDECD (scalar) — 64-bit
Instructions added:
- DUPM
- ORR (immediate)
- EOR (immediate)
- ANd (immediate)
Instructions added:
- CPY (immediate, zeroing)
- CPY (immediate, merging)
- FCPY
Instructions added:
- DUP (indexed)
- DUPQ (FEAT_SVE2p1)
- EXTQ (FEAT_SVE2p1)
Instructions added:
- TBL
- TBX
- TBXQ
Instructions added:
- DUP (scalar)
- INSR (scalar)
- SVE move predicate from vector
- SVE move predicate into vector
- SVE unpack vector elements
- INSR (SIMD&FP scalar)
- REV (vector)
- DUP (scalar)
- INSR (scalar)
- SVE move predicate from vector
- SVE move predicate into vector
- SVE unpack vector elements
- INSR (SIMD&FP scalar)
- REV (vector)
- PMOV (to predicate) — byte	FEAT_SVE2p1
- PMOV (to predicate) — halfword	FEAT_SVE2p1
- PMOV (to predicate) — word	FEAT_SVE2p1
- PMOV (to predicate) — doubleword	FEAT_SVE2p1
- PMOV (to vector) — byte	FEAT_SVE2p1
- PMOV (to vector) — halfword	FEAT_SVE2p1
- PMOV (to vector) — word	FEAT_SVE2p1
- PMOV (to vector) — doubleword	FEAT_SVE2p1
Instructions added:
- PUNPKHI, PUNPKLO
- ZIP1, ZIP2
- UZP1, UZP2,
- TRN1, TRN2
- REV (predicate)
Instructions added:
- ZIP1, ZIP2 (vectors)
- UZP1, UZP2 (vectors)
- TRn1, TRN2 (vectors)
Instructions added:
- CPy (SIMD&FP scalar)
- COMPACT
- LASTA, LASTB (scalar)
- LASTA, LASTB (SIMD&FP scalar)
- REVB, REVH, REVW
- RBIT
- CLASTA, CLASTB (vectors)
- CLASTA, CLASTB (SIMD&FP scalar)
- REVD (FEAT_SVE2p1)
- CLASTA, CLASTB (scalar)
- CPY (scalar)
- SPLICE (destructive)
- SPLICE (constructive)
Instructions added:
- SEL (vectors)
Instructions added:
- EXT (Destructive)
- EXT (Constructive)
Instructions added:
- ZIP1, ZIP2 (vectors) (FEAT_F64MM)
- UZP1, UZP2 (vectors) (FEAT_F64MM)
- TRN1, TRN2 (vectors) (FEAT_F64MM)
Instructions added:
- CMP<cc> (vectors)
- CMP<cc> (wide elements)
Instructions added:
- CMP<cc> (immediate)
Instructions added:
- FADDP
- UNALLOCATED
- UNALLOCATED
- FMAXNMP
- FMINNMP
- FMAXP
- FMINP
Instructions added:
- FADDQV
- FMAXNMQV
- FMINNMQV
- FMAXQV
- FMINQV
Instructions added:
- FMLA (indexed) — half-precision
- FMLS (indexed) — half-precision
- BFMLA (indexed)
- BFMLS (indexed)
- FMLA (indexed) — single-precision
- FMLS (indexed) — single-precision
- FMLA (indexed) — double-precision
- FMLS (indexed) — double-precision
Instructions added:
- FCMLA (indexed) - half-precision
- FCMLA (indexed) - single-precision
Instructions added:
- FMUL (indexed) — half-precision
- BFMUL (indexed)
- FMUL (indexed) — single-precision
- FMUL (indexed) — double-precision
Instructions added:
- FCLAMP
- BFCLAMP
Instructions added:
- FDOT (2-way, indexed, FP8 to FP16)
- FDOT (2-way, indexed, FP16 to FP32)
- BFDOT (indexed)
- FDOT (4-way, indexed)
- FMLALB (indexed, FP16 to FP32)
- FMLALT (indexed, FP16 to FP32)
- FMLSLB (indexed)
- FMLSLT (indexed)
- BFMLALB (indexed)
- BFMLALT (indexed)
- BFMLSLB (indexed)
- BFMLSLT (indexed)
Instructions added:
- FDOT (2-way, vectors, FP16 to FP32)
- FDOT (2-way, vectors, FP8 to FP16)
- BFDOT (vectors)
- FDOT (4-way, vectors)
- FMLALB (vectors, FP16 to FP32)
- FMLALT (vectors, FP16 to FP32)
- FMLSLB (vectors)
- FMLSLT (vectors)
- BFMLALB (vectors)
- BFMLALT (vectors)
- BFMLSLB (vectors)
- BFMLSLT (vectors)
Instructions added:
- FMLALLBB (indexed)
- FMLALLBT (indexed)
- FMLALLTB (indexed)
- FMLALLTT (indexed)
Instructions added:
- BFMMLA
- FMMLA — 32-bit element
- FMMLA — 64-bit element
Instructions added:
- FMLALLBB (vectors)
- FMLALLBT (vectors)
- FMLALLTB (vectors)
- FMLALLTT (vectors)
- FMLALB (vectors, FP8 to FP16)
- FMLALT (vectors, FP8 to FP16)
Instructions added:
- FCM<cc> (vectors)
Instructions added:
- FTSMUL
- FRECPS
- FRSQRTS
- FADD (vectors, unpredicated)
- FSUB (vectors, unpredicated)
- FMUL (vectors, unpredicated)
- BFADD (unpredicated)
- BFSUB (unpredicated)
- BFMUL (vectors, unpredicated)
Instructions added:
- FSUBR (vectors)
- FABD
- FSCALE
- FMULX
- FDIVR
- FDIV
- FAMAX
- FAMIN
- FADD (vectors, predicated)
- FSUB (vectors, predicated)
- FMUL (vectors, predicated)
- FMAXNM (vectors)
- FMINNM (vectors)
- FMAX (vectors)
- FMIN (vectors)
- BFADD (predicated)
- BFSUB (predicated)
- BFMUL (vectors, predicated)
- BFMAXNM
- BFMINNM
- BFMAX
- BFMIN
- FTMAD
- FADD (immediate)
- FSUB (immediate)
- FMUL (immediate)
- FSUBR (immediate)
- FMAXNM (immediate)
- FMINNM (immediate)
- FMAX (immediate)
- FMIN (immediate)
Instructions added:
- FRINT<r>
- FCVTX
- FCVT — single-precision to half-precision
- FCVT — half-precision to single-precision
- BFCVT
- FCVT — double-precision to half-precision
- FCVT — half-precision to double-precision
- FCVT — double-precision to single-precision
- FCVT — single-precision to double-precision
- FRECPX
- FSQRT
- SCVTF — 16-bit to half-precision
- UCVTF — 16-bit to half-precision
- SCVTF — 32-bit to half-precision
- UCVTF — 32-bit to half-precision
- SCVTF — 64-bit to half-precision
- UCVTF — 64-bit to half-precision
- SCVTF — 32-bit to single-precision
- UCVTF — 32-bit to single-precision
- SCVTF — 32-bit to double-precision
- UCVTF — 32-bit to double-precision
- SCVTF — 64-bit to single-precision
- UCVTF — 64-bit to single-precision
- SCVTF — 64-bit to double-precision
- UCVTF — 64-bit to double-precision
- FLOGB
- FCVTZS — half-precision to 16-bit
- FCVTZU — half-precision to 16-bit
- FCVTZS — half-precision to 32-bit
- FCVTZU — half-precision to 32-bit
- FCVTZS — half-precision to 64-bit
- FCVTZU — half-precision to 64-bit
- FCVTZS — single-precision to 32-bit
- FCVTZU — single-precision to 32-bit
- FCVTZS — double-precision to 32-bit
- FCVTZU — double-precision to 32-bit
- FCVTZS — single-precision to 64-bit
- FCVTZU — single-precision to 64-bit
- FCVTZS — double-precision to 64-bit
- FCVTZU — double-precision to 64-bit
Instructions added:
- FADDV
- FMAXNMV
- FMINNMV
- FMAXV
- FMINV
Instructions added:
- F1CVT, F2CVT
- BF1CVT, BF2CVT
- F1CVTLT, F2CVTLT
- BF1CVTLT, BF2CVTLT
- FCVTN
- FCVTNB
- BFCVTN
- FCVTNT (unpredicated)
- FRECPE
- FRSQRTE
Instructions added:
- FCM<cc> (zero)
Instructions added:
- FNMLA
- FNMLS
- FMLA (vectors)
- FMLS (vectors)
- BFMLA (vectors)
- BFMLS (vectors)
- FMAD
- FMSB
- FNMAD
- FNMSB
Instructions added:
- PRFB (scalar plus vector)
- PRFH (scalar plus vector)
- PRFW (scalar plus vector)
- PRFD (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- D1W (scalar plus vector)
- DFF1W (scalar plus vector)
- PRFB (scalar plus immediate)
- PRFH (scalar plus immediate)
- PRFW (scalar plus immediate)
- PRFD (scalar plus immediate)
- LD1SB (scalar plus vector)
- LDFF1SB (scalar plus vector)
- LD1B (scalar plus vector)
- LDFF1B (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- LD1W (scalar plus vector)
- LDFF1W (scalar plus vector)
- LDNT1SB
- LDNT1B (vector plus scalar)
- LDNT1SH
- LDNT1H (vector plus scalar)
- LDNT1W (vector plus scalar)
- PRFB (scalar plus scalar)
- PRFH (scalar plus scalar)
- PRFW (scalar plus scalar)
- PRFD (scalar plus scalar)
- PRFB (vector plus immediate)
- PRFH (vector plus immediate)
- PRFW (vector plus immediate)
- PRFD (vector plus immediate)
- LD1SB (vector plus immediate)
- LDFF1SB (vector plus immediate)
- LD1B (vector plus immediate)
- LDFF1B (vector plus immediate)
- LD1SH (vector plus immediate)
- LDFF1SH (vector plus immediate)
- LD1H (vector plus immediate)
- LDFF1H (vector plus immediate)
- LD1W (vector plus immediate)
- LDFF1W (vector plus immediate)
- LD1RB — 8-bit element
- LD1RB — 16-bit element
- LD1RB — 32-bit element
- LD1RB — 64-bit element
- LD1RSW
- LD1RH — 16-bit element
- LD1RH — 32-bit element
- LD1RH — 64-bit element
- LD1RSH — 64-bit element
- LD1RSH — 32-bit element
- LD1RW — 32-bit element
- LD1RW — 64-bit element
- LD1RSB — 64-bit element
- LD1RSB — 32-bit element
- LD1RSB — 16-bit element
- LD1RD
Instructions added:
- LDNT1B (scalar plus immediate, single register)
- LDNT1H (scalar plus immediate, single register)
- LDNT1W (scalar plus immediate, single register)
- LDNT1D (scalar plus immediate, single register)
- LD1W (scalar plus immediate, single register)
- LD1D (scalar plus immediate, single register)
- LD2Q (scalar plus immediate)
- LD3Q (scalar plus immediate)
- LD4Q (scalar plus immediate)
- LD1W (scalar plus scalar, single register)
- LD1D (scalar plus scalar, single register)
- LDNT1B (scalar plus scalar, single register)
- LDNT1H (scalar plus scalar, single register)
- LDNT1W (scalar plus scalar, single register)
- LDNT1D (scalar plus scalar, single register)
- LD2Q (scalar plus scalar)
- LD3Q (scalar plus scalar)
- LD4Q (scalar plus scalar)
- LD2B (scalar plus immediate)
- LD3B (scalar plus immediate)
- LD4B (scalar plus immediate)
- LD2H (scalar plus immediate)
- LD3H (scalar plus immediate)
- LD4H (scalar plus immediate)
- LD2W (scalar plus immediate)
- LD3W (scalar plus immediate)
- LD4W (scalar plus immediate)
- LD2D (scalar plus immediate)
- LD3D (scalar plus immediate)
- LD4D (scalar plus immediate)
- LD2B (scalar plus scalar)
- LD3B (scalar plus scalar)
- LD4B (scalar plus scalar)
- LD2H (scalar plus scalar)
- LD3H (scalar plus scalar)
- LD4H (scalar plus scalar)
- LD2W (scalar plus scalar)
- LD3W (scalar plus scalar)
- LD4W (scalar plus scalar)
- LD2D (scalar plus scalar)
- LD3D (scalar plus scalar)
- LD4D (scalar plus scalar)
- LD1RQB (scalar plus immediate)
- LD1ROB (scalar plus immediate)
- LD1RQH (scalar plus immediate)
- LD1ROH (scalar plus immediate)
- LD1RQW (scalar plus immediate)
- LD1ROW (scalar plus immediate)
- LD1RQD (scalar plus immediate)
- LD1ROD (scalar plus immediate)
- LD1B (scalar plus immediate, single register) — 8-bit element
- LD1B (scalar plus immediate, single register) — 16-bit element
- LD1B (scalar plus immediate, single register) — 32-bit element
- LD1B (scalar plus immediate, single register) — 64-bit element
- LD1SW (scalar plus immediate)
- LD1H (scalar plus immediate, single register) — 16-bit element
- LD1H (scalar plus immediate, single register) — 32-bit element
- LD1H (scalar plus immediate, single register) — 64-bit element
- LD1SH (scalar plus immediate) — 64-bit element
- LD1SH (scalar plus immediate) — 32-bit element
- LD1W (scalar plus immediate, single register) — 32-bit element
- LD1W (scalar plus immediate, single register) — 64-bit element
- LD1SB (scalar plus immediate) — 64-bit element
- LD1SB (scalar plus immediate) — 32-bit element
- LD1SB (scalar plus immediate) — 16-bit element
- LD1D (scalar plus immediate, single register)
- LDNF1B — 8-bit element
- LDNF1B — 16-bit element
- LDNF1B — 32-bit element
- LDNF1B — 64-bit element
- LDNF1SW
- LDNF1H — 16-bit element
- LDNF1H — 32-bit element
- LDNF1H — 64-bit element
- LDNF1SH — 64-bit element
- LDNF1SH — 32-bit element
- LDNF1W — 32-bit element
- LDNF1W — 64-bit element
- LDNF1SB — 64-bit element
- LDNF1SB — 32-bit element
- LDNF1SB — 16-bit element
- LDNF1D
- LD1RQB (scalar plus scalar)
- LD1ROB (scalar plus scalar)
- LD1RQH (scalar plus scalar)
- LD1ROH (scalar plus scalar)
- LD1RQW (scalar plus scalar)
- LD1ROW (scalar plus scalar)
- LD1RQD (scalar plus scalar)
- LD1ROD (scalar plus scalar)
- LD1B (scalar plus scalar, single register) — 8-bit element
- LD1B (scalar plus scalar, single register) — 16-bit element
- LD1B (scalar plus scalar, single register) — 32-bit element
- LD1B (scalar plus scalar, single register) — 64-bit element
- LD1SW (scalar plus scalar)
- LD1H (scalar plus scalar, single register) — 16-bit element
- LD1H (scalar plus scalar, single register) — 32-bit element
- LD1H (scalar plus scalar, single register) — 64-bit element
- LD1SH (scalar plus scalar) — 64-bit element
- LD1SH (scalar plus scalar) — 32-bit element
- LD1W (scalar plus scalar, single register) — 32-bit element
- LD1W (scalar plus scalar, single register) — 64-bit element
- LD1SB (scalar plus scalar) — 64-bit element
- LD1SB (scalar plus scalar) — 32-bit element
- LD1SB (scalar plus scalar) — 16-bit element
- LD1D (scalar plus scalar, single register)
- LDFF1B (scalar plus scalar) — 8-bit element
- LDFF1B (scalar plus scalar) — 16-bit element
- LDFF1B (scalar plus scalar) — 32-bit element
- LDFF1B (scalar plus scalar) — 64-bit element
- LDFF1SW (scalar plus scalar)
- LDFF1H (scalar plus scalar) — 16-bit element
- LDFF1H (scalar plus scalar) — 32-bit element
- LDFF1H (scalar plus scalar) — 64-bit element
- LDFF1SH (scalar plus scalar) — 64-bit element
- LDFF1SH (scalar plus scalar) — 32-bit element
- LDFF1W (scalar plus scalar) — 32-bit element
- LDFF1W (scalar plus scalar) — 64-bit element
- LDFF1SB (scalar plus scalar) — 64-bit element
- LDFF1SB (scalar plus scalar) — 32-bit element
- LDFF1SB (scalar plus scalar) — 16-bit element
- LDFF1D (scalar plus scalar)
Instructions added:
- LD1Q
- PRFB (scalar plus vector)
- PRFH (scalar plus vector)
- PRFW (scalar plus vector)
- PRFD (scalar plus vector)
- PRFB (scalar plus vector)
- PRFH (scalar plus vector)
- PRFW (scalar plus vector)
- PRFD (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- LD1SW (scalar plus vector)
- LDFF1SW (scalar plus vector)
- LD1W (scalar plus vector)
- LDFF1W (scalar plus vector)
- LD1D (scalar plus vector)
- LDFF1D (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- LD1SW (scalar plus vector)
- LDFF1SW (scalar plus vector)
- LD1W (scalar plus vector)
- LDFF1W (scalar plus vector)
- LD1D (scalar plus vector)
- LDFF1D (scalar plus vector)
- PRFB (vector plus immediate)
- PRFH (vector plus immediate)
- PRFW (vector plus immediate)
- PRFD (vector plus immediate)
- LDNT1SB
- LDNT1B (vector plus scalar)
- LDNT1SH
- LDNT1H (vector plus scalar)
- LDNT1SW
- LDNT1W (vector plus scalar)
- LDNT1D (vector plus scalar)
- LD1SB (vector plus immediate)
- LDFF1SB (vector plus immediate)
- LD1B (vector plus immediate)
- LDFF1B (vector plus immediate)
- LD1SH (vector plus immediate)
- LDFF1SH (vector plus immediate)
- LD1H (vector plus immediate)
- LDFF1H (vector plus immediate)
- LD1SW (vector plus immediate)
- LDFF1SW (vector plus immediate)
- LD1W (vector plus immediate)
- LDFF1W (vector plus immediate)
- LD1D (vector plus immediate)
- LDFF1D (vector plus immediate)
- LD1SB (scalar plus vector)
- LDFF1SB (scalar plus vector)
- LD1B (scalar plus vector)
- LDFF1B (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- LD1SW (scalar plus vector)
- LDFF1SW (scalar plus vector)
- LD1W (scalar plus vector)
- LDFF1W (scalar plus vector)
- LD1D (scalar plus vector)
- LDFF1D (scalar plus vector)
- LD1SB (scalar plus vector)
- LDFF1SB (scalar plus vector)
- LD1B (scalar plus vector)
- LDFF1B (scalar plus vector)
- LD1SH (scalar plus vector)
- LDFF1SH (scalar plus vector)
- LD1H (scalar plus vector)
- LDFF1H (scalar plus vector)
- LD1SW (scalar plus vector)
- LDFF1SW (scalar plus vector)
- LD1W (scalar plus vector)
- LDFF1W (scalar plus vector)
- LD1D (scalar plus vector)
- LDFF1D (scalar plus vector)
Instructions added:
- ST2Q (scalar plus immediate)
- ST3Q (scalar plus immediate)
- ST4Q (scalar plus immediate)
- ST2Q (scalar plus scalar)
- ST3Q (scalar plus scalar)
- ST4Q (scalar plus scalar)
- STR (predicate)
- STR (vector)
- ST1B (scalar plus scalar, single register)
- ST1H (scalar plus scalar, single register)
- ST1W (scalar plus scalar, single register) — SVE2
- ST1W (scalar plus scalar, single register) — SVE
- ST1D (scalar plus scalar, single register) — SVE2
- ST1D (scalar plus scalar, single register) — SVE
Instructions added:
- ST1Q
- STNT1B (vector plus scalar)
- STNT1H (vector plus scalar)
- STNT1W (vector plus scalar)
- STNT1D (vector plus scalar)
- STNT1B (vector plus scalar)
- STNT1H (vector plus scalar)
- STNT1B (scalar plus scalar, single register)
- STNT1H (scalar plus scalar, single register)
- STNT1W (scalar plus scalar, single register)
- STNT1D (scalar plus scalar, single register)
- ST2B (scalar plus scalar)
- ST3B (scalar plus scalar)
- ST4B (scalar plus scalar)
- ST2H (scalar plus scalar)
- ST3H (scalar plus scalar)
- ST4H (scalar plus scalar)
- ST2W (scalar plus scalar)
- ST3W (scalar plus scalar)
- ST4W (scalar plus scalar)
- ST2D (scalar plus scalar)
- ST3D (scalar plus scalar)
- ST4D (scalar plus scalar)
Instructions added:
- ST1B (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
- ST1D (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
- ST1D (scalar plus vector)
- ST1B (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
Instructions added:
- ST1B (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
- ST1D (scalar plus vector)
- ST1H (scalar plus vector)
- ST1W (scalar plus vector)
- ST1D (scalar plus vector)
- ST1B (vector plus immediate)
- ST1H (vector plus immediate)
- ST1W (vector plus immediate)
- ST1D (vector plus immediate)
- ST1B (vector plus immediate)
- ST1H (vector plus immediate)
- ST1W (vector plus immediate)
Instructions added:
- STNT1B (scalar plus immediate, single register)
- STNT1H (scalar plus immediate, single register)
- STNT1W (scalar plus immediate, single register)
- STNT1D (scalar plus immediate, single register)
- ST2B (scalar plus immediate)
- ST3B (scalar plus immediate)
- ST4B (scalar plus immediate)
- ST2H (scalar plus immediate)
- ST3H (scalar plus immediate)
- ST4H (scalar plus immediate)
- ST2W (scalar plus immediate)
- ST3W (scalar plus immediate)
- ST4W (scalar plus immediate)
- ST2D (scalar plus immediate)
- ST3D (scalar plus immediate)
- ST4D (scalar plus immediate)
- ST1B (scalar plus immediate, single register)
- ST1H (scalar plus immediate, single register)
- ST1W (scalar plus immediate, single register) — SVE2
- ST1W (scalar plus immediate, single register) — SVE
- ST1D (scalar plus immediate, single register) — SVE2
- ST1D (scalar plus immediate, single register) — SVE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant