blob: 37a3df7cfcc9a1047a8839f7521fa7ee70225096 [file] [edit]
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package loong64
import (
"cmd/internal/obj"
)
//go:generate go run ../stringer.go -i $GOFILE -o anames.go -p loong64
const (
AABSD = obj.ABaseLoong64 + obj.A_ARCHSPECIFIC + iota
AABSF
AADD
AADDD
AADDF
AADDW
AAND
ABEQ
ABGEZ
ABLEZ
ABGTZ
ABLTZ
ABFPF
ABFPT
ABNE
ABREAK
ACMPEQD
ACMPEQF
ACMPGED // ACMPGED -> fcmp.sle.d
ACMPGEF // ACMPGEF -> fcmp.sle.s
ACMPGTD // ACMPGTD -> fcmp.slt.d
ACMPGTF // ACMPGTF -> fcmp.slt.s
ALU12IW
ALU32ID
ALU52ID
APCALAU12I
APCADDU12I
AJIRL
ABGE
ABLT
ABLTU
ABGEU
ADIV
ADIVD
ADIVF
ADIVU
ADIVW
ADIVWU
ALL
ALLV
ALUI
AMOVB
AMOVBU
AMOVD
AMOVDF
AMOVDW
AMOVF
AMOVFD
AMOVFW
AMOVH
AMOVHU
AMOVW
AMOVWD
AMOVWF
AMUL
AMULD
AMULF
AMULH
AMULHU
AMULW
ANEGD
ANEGF
ANEGW
ANEGV
ANOOP // hardware nop
ANOR
AOR
AREM
AREMW
AREMU
AREMWU
ARFE
ASC
ASCV
ASGT
ASGTU
ASLL
ASQRTD
ASQRTF
ASRA
ASRL
AROTR
ASUB
ASUBD
ASUBF
ASUBW
ADBAR
ASYSCALL
ATEQ
ATNE
AWORD
AXOR
AMASKEQZ
AMASKNEZ
// 64-bit
AMOVV
ASLLV
ASRAV
ASRLV
AROTRV
ADIVV
ADIVVU
AREMV
AREMVU
AMULV
AMULVU
AMULHV
AMULHVU
AADDV
AADDVU
ASUBV
ASUBVU
// 64-bit FP
ATRUNCFV
ATRUNCDV
ATRUNCFW
ATRUNCDW
AMOVWU
AMOVFV
AMOVDV
AMOVVF
AMOVVD
// 2.2.1.2
AADDV16
// 2.2.1.3
AALSLW
AALSLWU
AALSLV
// 2.2.1.8
AORN
AANDN
// 2.2.1.12
AMULWVW
AMULWVWU
// 2.2.7. Atomic Memory Access Instructions
AAMSWAPB
AAMSWAPH
AAMSWAPW
AAMSWAPV
AAMCASB
AAMCASH
AAMCASW
AAMCASV
AAMADDW
AAMADDV
AAMANDW
AAMANDV
AAMORW
AAMORV
AAMXORW
AAMXORV
AAMMAXW
AAMMAXV
AAMMINW
AAMMINV
AAMMAXWU
AAMMAXVU
AAMMINWU
AAMMINVU
AAMSWAPDBB
AAMSWAPDBH
AAMSWAPDBW
AAMSWAPDBV
AAMCASDBB
AAMCASDBH
AAMCASDBW
AAMCASDBV
AAMADDDBW
AAMADDDBV
AAMANDDBW
AAMANDDBV
AAMORDBW
AAMORDBV
AAMXORDBW
AAMXORDBV
AAMMAXDBW
AAMMAXDBV
AAMMINDBW
AAMMINDBV
AAMMAXDBWU
AAMMAXDBVU
AAMMINDBWU
AAMMINDBVU
// 2.2.3.1
AEXTWB
AEXTWH
// 2.2.3.2
ACLOW
ACLOV
ACLZW
ACLZV
ACTOW
ACTOV
ACTZW
ACTZV
// 2.2.3.4
AREVBV
AREVB2W
AREVB4H
AREVB2H
// 2.2.3.5
AREVH2W
AREVHV
// 2.2.3.6
ABITREV4B
ABITREV8B
// 2.2.3.7
ABITREVW
ABITREVV
// 2.2.3.8
ABSTRINSW
ABSTRINSV
// 2.2.3.9
ABSTRPICKW
ABSTRPICKV
// 2.2.5.3
AMOVWP
AMOVVP
// 2.2.5.4. Prefetch Instructions
APRELD
APRELDX
// 2.2.9. CRC Check Instructions
ACRCWBW
ACRCWHW
ACRCWWW
ACRCWVW
ACRCCWBW
ACRCCWHW
ACRCCWWW
ACRCCWVW
// 2.2.10. Other Miscellaneous Instructions
ARDTIMELW
ARDTIMEHW
ARDTIMED
ACPUCFG
// 3.2.1.2
AFMADDF
AFMADDD
AFMSUBF
AFMSUBD
AFNMADDF
AFNMADDD
AFNMSUBF
AFNMSUBD
// 3.2.1.3
AFMINF
AFMIND
AFMAXF
AFMAXD
// 3.2.1.4
AFMAXAF
AFMAXAD
AFMINAF
AFMINAD
// 3.2.1.7
AFCOPYSGF
AFCOPYSGD
AFSCALEBF
AFSCALEBD
AFLOGBF
AFLOGBD
// 3.2.1.8
AFCLASSF
AFCLASSD
// 3.2.3.2
AFFINTFW
AFFINTFV
AFFINTDW
AFFINTDV
AFTINTWF
AFTINTWD
AFTINTVF
AFTINTVD
// 3.2.3.3
AFTINTRPWF
AFTINTRPWD
AFTINTRPVF
AFTINTRPVD
AFTINTRMWF
AFTINTRMWD
AFTINTRMVF
AFTINTRMVD
AFTINTRZWF
AFTINTRZWD
AFTINTRZVF
AFTINTRZVD
AFTINTRNEWF
AFTINTRNEWD
AFTINTRNEVF
AFTINTRNEVD
// 3.2.4.2
AFSEL
// LSX and LASX memory access instructions
AVMOVQ
AXVMOVQ
// LSX and LASX arithmetic instructions
AVADDB
AVADDH
AVADDW
AVADDV
AVADDQ
AXVADDB
AXVADDH
AXVADDW
AXVADDV
AXVADDQ
AVSUBB
AVSUBH
AVSUBW
AVSUBV
AVSUBQ
AXVSUBB
AXVSUBH
AXVSUBW
AXVSUBV
AXVSUBQ
AVADDBU
AVADDHU
AVADDWU
AVADDVU
AVSUBBU
AVSUBHU
AVSUBWU
AVSUBVU
AXVADDBU
AXVADDHU
AXVADDWU
AXVADDVU
AXVSUBBU
AXVSUBHU
AXVSUBWU
AXVSUBVU
AVSADDB
AVSADDH
AVSADDW
AVSADDV
AVSSUBB
AVSSUBH
AVSSUBW
AVSSUBV
AVSADDBU
AVSADDHU
AVSADDWU
AVSADDVU
AVSSUBBU
AVSSUBHU
AVSSUBWU
AVSSUBVU
AXVSADDB
AXVSADDH
AXVSADDW
AXVSADDV
AXVSSUBB
AXVSSUBH
AXVSSUBW
AXVSSUBV
AXVSADDBU
AXVSADDHU
AXVSADDWU
AXVSADDVU
AXVSSUBBU
AXVSSUBHU
AXVSSUBWU
AXVSSUBVU
// LSX and LASX Bit-manipulation Instructions
AVANDB
AVORB
AVXORB
AVNORB
AXVANDB
AXVORB
AXVXORB
AXVNORB
AVANDV
AVORV
AVXORV
AVNORV
AVANDNV
AVORNV
AXVANDV
AXVORV
AXVXORV
AXVNORV
AXVANDNV
AXVORNV
AVPCNTB
AVPCNTH
AVPCNTW
AVPCNTV
AXVPCNTB
AXVPCNTH
AXVPCNTW
AXVPCNTV
AVBITCLRB
AVBITCLRH
AVBITCLRW
AVBITCLRV
AVBITSETB
AVBITSETH
AVBITSETW
AVBITSETV
AVBITREVB
AVBITREVH
AVBITREVW
AVBITREVV
AXVBITCLRB
AXVBITCLRH
AXVBITCLRW
AXVBITCLRV
AXVBITSETB
AXVBITSETH
AXVBITSETW
AXVBITSETV
AXVBITREVB
AXVBITREVH
AXVBITREVW
AXVBITREVV
// LSX and LASX integer comparison instruction
AVSEQB
AXVSEQB
AVSEQH
AXVSEQH
AVSEQW
AXVSEQW
AVSEQV
AXVSEQV
AVSLTB
AVSLTH
AVSLTW
AVSLTV
AVSLTBU
AVSLTHU
AVSLTWU
AVSLTVU
AXVSLTB
AXVSLTH
AXVSLTW
AXVSLTV
AXVSLTBU
AXVSLTHU
AXVSLTWU
AXVSLTVU
// LSX and LASX integer div and mod instructions
AVDIVB
AVDIVH
AVDIVW
AVDIVV
AVDIVBU
AVDIVHU
AVDIVWU
AVDIVVU
AVMODB
AVMODH
AVMODW
AVMODV
AVMODBU
AVMODHU
AVMODWU
AVMODVU
AXVDIVB
AXVDIVH
AXVDIVW
AXVDIVV
AXVDIVBU
AXVDIVHU
AXVDIVWU
AXVDIVVU
AXVMODB
AXVMODH
AXVMODW
AXVMODV
AXVMODBU
AXVMODHU
AXVMODWU
AXVMODVU
// LSX and LASX shift operation instructions
AVSLLB
AVSLLH
AVSLLW
AVSLLV
AVSRLB
AVSRLH
AVSRLW
AVSRLV
AVSRAB
AVSRAH
AVSRAW
AVSRAV
AVROTRB
AVROTRH
AVROTRW
AVROTRV
AXVSLLB
AXVSLLH
AXVSLLW
AXVSLLV
AXVSRLB
AXVSRLH
AXVSRLW
AXVSRLV
AXVSRAB
AXVSRAH
AXVSRAW
AXVSRAV
AXVROTRB
AXVROTRH
AXVROTRW
AXVROTRV
// LSX and LASX move and shuffle instructions
AVILVLB
AVILVLH
AVILVLW
AVILVLV
AVILVHB
AVILVHH
AVILVHW
AVILVHV
AXVILVLB
AXVILVLH
AXVILVLW
AXVILVLV
AXVILVHB
AXVILVHH
AXVILVHW
AXVILVHV
// LSX and LASX integer mul instructions
AVMULB
AVMULH
AVMULW
AVMULV
AVMUHB
AVMUHH
AVMUHW
AVMUHV
AVMUHBU
AVMUHHU
AVMUHWU
AVMUHVU
AXVMULB
AXVMULH
AXVMULW
AXVMULV
AXVMUHB
AXVMUHH
AXVMUHW
AXVMUHV
AXVMUHBU
AXVMUHHU
AXVMUHWU
AXVMUHVU
// LSX and LASX floating point instructions
AVFSQRTF
AVFSQRTD
AVFRECIPF
AVFRECIPD
AVFRSQRTF
AVFRSQRTD
AXVFSQRTF
AXVFSQRTD
AXVFRECIPF
AXVFRECIPD
AXVFRSQRTF
AXVFRSQRTD
AVADDF
AVADDD
AVSUBF
AVSUBD
AVMULF
AVMULD
AVDIVF
AVDIVD
AXVADDF
AXVADDD
AXVSUBF
AXVSUBD
AXVMULF
AXVMULD
AXVDIVF
AXVDIVD
AVFCLASSF
AVFCLASSD
AXVFCLASSF
AXVFCLASSD
// LSX and LASX floating point conversion instructions
AVFRINTRNEF
AVFRINTRNED
AVFRINTRZF
AVFRINTRZD
AVFRINTRPF
AVFRINTRPD
AVFRINTRMF
AVFRINTRMD
AVFRINTF
AVFRINTD
AXVFRINTRNEF
AXVFRINTRNED
AXVFRINTRZF
AXVFRINTRZD
AXVFRINTRPF
AXVFRINTRPD
AXVFRINTRMF
AXVFRINTRMD
AXVFRINTF
AXVFRINTD
// LSX and LASX integer neg instructions
AVNEGB
AVNEGH
AVNEGW
AVNEGV
AXVNEGB
AXVNEGH
AXVNEGW
AXVNEGV
// LSX and LASX mul instructions that operate on even or odd positions
AVMULWEVHB
AVMULWEVWH
AVMULWEVVW
AVMULWEVQV
AVMULWODHB
AVMULWODWH
AVMULWODVW
AVMULWODQV
AVMULWEVHBU
AVMULWEVWHU
AVMULWEVVWU
AVMULWEVQVU
AVMULWODHBU
AVMULWODWHU
AVMULWODVWU
AVMULWODQVU
AXVMULWEVHB
AXVMULWEVWH
AXVMULWEVVW
AXVMULWEVQV
AXVMULWODHB
AXVMULWODWH
AXVMULWODVW
AXVMULWODQV
AXVMULWEVHBU
AXVMULWEVWHU
AXVMULWEVVWU
AXVMULWEVQVU
AXVMULWODHBU
AXVMULWODWHU
AXVMULWODVWU
AXVMULWODQVU
AVMULWEVHBUB
AVMULWEVWHUH
AVMULWEVVWUW
AVMULWEVQVUV
AVMULWODHBUB
AVMULWODWHUH
AVMULWODVWUW
AVMULWODQVUV
AXVMULWEVHBUB
AXVMULWEVWHUH
AXVMULWEVVWUW
AXVMULWEVQVUV
AXVMULWODHBUB
AXVMULWODWHUH
AXVMULWODVWUW
AXVMULWODQVUV
AVADDWEVHB
AVADDWEVWH
AVADDWEVVW
AVADDWEVQV
AVSUBWEVHB
AVSUBWEVWH
AVSUBWEVVW
AVSUBWEVQV
AVADDWODHB
AVADDWODWH
AVADDWODVW
AVADDWODQV
AVSUBWODHB
AVSUBWODWH
AVSUBWODVW
AVSUBWODQV
AXVADDWEVHB
AXVADDWEVWH
AXVADDWEVVW
AXVADDWEVQV
AXVSUBWEVHB
AXVSUBWEVWH
AXVSUBWEVVW
AXVSUBWEVQV
AXVADDWODHB
AXVADDWODWH
AXVADDWODVW
AXVADDWODQV
AXVSUBWODHB
AXVSUBWODWH
AXVSUBWODVW
AXVSUBWODQV
AVADDWEVHBU
AVADDWEVWHU
AVADDWEVVWU
AVADDWEVQVU
AVSUBWEVHBU
AVSUBWEVWHU
AVSUBWEVVWU
AVSUBWEVQVU
AVADDWODHBU
AVADDWODWHU
AVADDWODVWU
AVADDWODQVU
AVSUBWODHBU
AVSUBWODWHU
AVSUBWODVWU
AVSUBWODQVU
AXVADDWEVHBU
AXVADDWEVWHU
AXVADDWEVVWU
AXVADDWEVQVU
AXVSUBWEVHBU
AXVSUBWEVWHU
AXVSUBWEVVWU
AXVSUBWEVQVU
AXVADDWODHBU
AXVADDWODWHU
AXVADDWODVWU
AXVADDWODQVU
AXVSUBWODHBU
AXVSUBWODWHU
AXVSUBWODVWU
AXVSUBWODQVU
AVMADDB
AVMADDH
AVMADDW
AVMADDV
AVMSUBB
AVMSUBH
AVMSUBW
AVMSUBV
AXVMADDB
AXVMADDH
AXVMADDW
AXVMADDV
AXVMSUBB
AXVMSUBH
AXVMSUBW
AXVMSUBV
AVMADDWEVHB
AVMADDWEVWH
AVMADDWEVVW
AVMADDWEVQV
AVMADDWODHB
AVMADDWODWH
AVMADDWODVW
AVMADDWODQV
AVMADDWEVHBU
AVMADDWEVWHU
AVMADDWEVVWU
AVMADDWEVQVU
AVMADDWODHBU
AVMADDWODWHU
AVMADDWODVWU
AVMADDWODQVU
AVMADDWEVHBUB
AVMADDWEVWHUH
AVMADDWEVVWUW
AVMADDWEVQVUV
AVMADDWODHBUB
AVMADDWODWHUH
AVMADDWODVWUW
AVMADDWODQVUV
AXVMADDWEVHB
AXVMADDWEVWH
AXVMADDWEVVW
AXVMADDWEVQV
AXVMADDWODHB
AXVMADDWODWH
AXVMADDWODVW
AXVMADDWODQV
AXVMADDWEVHBU
AXVMADDWEVWHU
AXVMADDWEVVWU
AXVMADDWEVQVU
AXVMADDWODHBU
AXVMADDWODWHU
AXVMADDWODVWU
AXVMADDWODQVU
AXVMADDWEVHBUB
AXVMADDWEVWHUH
AXVMADDWEVVWUW
AXVMADDWEVQVUV
AXVMADDWODHBUB
AXVMADDWODWHUH
AXVMADDWODVWUW
AXVMADDWODQVUV
AVSHUF4IB
AVSHUF4IH
AVSHUF4IW
AVSHUF4IV
AXVSHUF4IB
AXVSHUF4IH
AXVSHUF4IW
AXVSHUF4IV
AVSHUFB
AVSHUFH
AVSHUFW
AVSHUFV
AXVSHUFB
AXVSHUFH
AXVSHUFW
AXVSHUFV
AVPERMIW
AXVPERMIW
AXVPERMIV
AXVPERMIQ
AVEXTRINSB
AVEXTRINSH
AVEXTRINSW
AVEXTRINSV
AXVEXTRINSB
AXVEXTRINSH
AXVEXTRINSW
AXVEXTRINSV
AVSETEQV
AVSETNEV
AVSETANYEQB
AVSETANYEQH
AVSETANYEQW
AVSETANYEQV
AVSETALLNEB
AVSETALLNEH
AVSETALLNEW
AVSETALLNEV
AXVSETEQV
AXVSETNEV
AXVSETANYEQB
AXVSETANYEQH
AXVSETANYEQW
AXVSETANYEQV
AXVSETALLNEB
AXVSETALLNEH
AXVSETALLNEW
AXVSETALLNEV
ALAST
// aliases
AJMP = obj.AJMP
AJAL = obj.ACALL
ARET = obj.ARET
)