| // 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 |
| ) |