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