loong64

Imports

Imports #

"cmd/internal/obj"
"cmd/internal/obj"
"cmd/internal/obj"
"cmd/internal/objabi"
"fmt"
"log"
"slices"
"cmd/internal/obj"
"fmt"
"cmd/internal/obj"
"cmd/internal/objabi"
"cmd/internal/src"
"cmd/internal/sys"
"internal/abi"
"log"
"math"

Constants & Variables

AABSD const #

const AABSD = *ast.BinaryExpr

AABSF const #

const AABSF

AADD const #

const AADD

AADDD const #

const AADDD

AADDF const #

const AADDF

AADDU const #

const AADDU

AADDV const #

const AADDV

AADDVU const #

const AADDVU

AADDW const #

const AADDW

AAMADDDBV const #

const AAMADDDBV

AAMADDDBW const #

const AAMADDDBW

AAMADDV const #

const AAMADDV

AAMADDW const #

const AAMADDW

AAMANDDBV const #

const AAMANDDBV

AAMANDDBW const #

const AAMANDDBW

AAMANDV const #

const AAMANDV

AAMANDW const #

const AAMANDW

AAMCASB const #

const AAMCASB

AAMCASDBB const #

const AAMCASDBB

AAMCASDBH const #

const AAMCASDBH

AAMCASDBV const #

const AAMCASDBV

AAMCASDBW const #

const AAMCASDBW

AAMCASH const #

const AAMCASH

AAMCASV const #

const AAMCASV

AAMCASW const #

const AAMCASW

AAMMAXDBV const #

const AAMMAXDBV

AAMMAXDBVU const #

const AAMMAXDBVU

AAMMAXDBW const #

const AAMMAXDBW

AAMMAXDBWU const #

const AAMMAXDBWU

AAMMAXV const #

const AAMMAXV

AAMMAXVU const #

const AAMMAXVU

AAMMAXW const #

const AAMMAXW

AAMMAXWU const #

const AAMMAXWU

AAMMINDBV const #

const AAMMINDBV

AAMMINDBVU const #

const AAMMINDBVU

AAMMINDBW const #

const AAMMINDBW

AAMMINDBWU const #

const AAMMINDBWU

AAMMINV const #

const AAMMINV

AAMMINVU const #

const AAMMINVU

AAMMINW const #

const AAMMINW

AAMMINWU const #

const AAMMINWU

AAMORDBV const #

const AAMORDBV

AAMORDBW const #

const AAMORDBW

AAMORV const #

const AAMORV

AAMORW const #

const AAMORW

AAMSWAPB const #

2.2.7. Atomic Memory Access Instructions

const AAMSWAPB

AAMSWAPDBB const #

const AAMSWAPDBB

AAMSWAPDBH const #

const AAMSWAPDBH

AAMSWAPDBV const #

const AAMSWAPDBV

AAMSWAPDBW const #

const AAMSWAPDBW

AAMSWAPH const #

const AAMSWAPH

AAMSWAPV const #

const AAMSWAPV

AAMSWAPW const #

const AAMSWAPW

AAMXORDBV const #

const AAMXORDBV

AAMXORDBW const #

const AAMXORDBW

AAMXORV const #

const AAMXORV

AAMXORW const #

const AAMXORW

AAND const #

const AAND

AANDN const #

const AANDN

ABEQ const #

const ABEQ

ABFPF const #

const ABFPF

ABFPT const #

const ABFPT

ABGE const #

const ABGE

ABGEU const #

const ABGEU

ABGEZ const #

const ABGEZ

ABGTZ const #

const ABGTZ

ABITREV4B const #

2.2.3.6

const ABITREV4B

ABITREV8B const #

const ABITREV8B

ABITREVV const #

const ABITREVV

ABITREVW const #

2.2.3.7

const ABITREVW

ABLEZ const #

const ABLEZ

ABLT const #

const ABLT

ABLTU const #

const ABLTU

ABLTZ const #

const ABLTZ

ABNE const #

const ABNE

ABREAK const #

const ABREAK

ABSTRINSV const #

const ABSTRINSV

ABSTRINSW const #

2.2.3.8

const ABSTRINSW

ABSTRPICKV const #

const ABSTRPICKV

ABSTRPICKW const #

2.2.3.9

const ABSTRPICKW

ACLOV const #

const ACLOV

ACLOW const #

2.2.3.2

const ACLOW

ACLZV const #

const ACLZV

ACLZW const #

const ACLZW

ACMPEQD const #

const ACMPEQD

ACMPEQF const #

const ACMPEQF

ACMPGED const #

const ACMPGED

ACMPGEF const #

const ACMPGEF

ACMPGTD const #

const ACMPGTD

ACMPGTF const #

const ACMPGTF

ACPUCFG const #

const ACPUCFG

ACRCCWBW const #

const ACRCCWBW

ACRCCWHW const #

const ACRCCWHW

ACRCCWVW const #

const ACRCCWVW

ACRCCWWW const #

const ACRCCWWW

ACRCWBW const #

2.2.9. CRC Check Instructions

const ACRCWBW

ACRCWHW const #

const ACRCWHW

ACRCWVW const #

const ACRCWVW

ACRCWWW const #

const ACRCWWW

ACTOV const #

const ACTOV

ACTOW const #

const ACTOW

ACTZV const #

const ACTZV

ACTZW const #

const ACTZW

ADBAR const #

const ADBAR

ADIV const #

const ADIV

ADIVD const #

const ADIVD

ADIVF const #

const ADIVF

ADIVU const #

const ADIVU

ADIVV const #

const ADIVV

ADIVVU const #

const ADIVVU

ADIVW const #

const ADIVW

AEXTWB const #

2.2.3.1

const AEXTWB

AEXTWH const #

const AEXTWH

AFCLASSD const #

const AFCLASSD

AFCLASSF const #

3.2.1.8

const AFCLASSF

AFCOPYSGD const #

const AFCOPYSGD

AFCOPYSGF const #

3.2.1.7

const AFCOPYSGF

AFFINTDV const #

const AFFINTDV

AFFINTDW const #

const AFFINTDW

AFFINTFV const #

const AFFINTFV

AFFINTFW const #

3.2.3.2

const AFFINTFW

AFLOGBD const #

const AFLOGBD

AFLOGBF const #

const AFLOGBF

AFMADDD const #

const AFMADDD

AFMADDF const #

3.2.1.2

const AFMADDF

AFMAXD const #

const AFMAXD

AFMAXF const #

const AFMAXF

AFMIND const #

const AFMIND

AFMINF const #

3.2.1.3

const AFMINF

AFMSUBD const #

const AFMSUBD

AFMSUBF const #

const AFMSUBF

AFNMADDD const #

const AFNMADDD

AFNMADDF const #

const AFNMADDF

AFNMSUBD const #

const AFNMSUBD

AFNMSUBF const #

const AFNMSUBF

AFSCALEBD const #

const AFSCALEBD

AFSCALEBF const #

const AFSCALEBF

AFTINTRMVD const #

const AFTINTRMVD

AFTINTRMVF const #

const AFTINTRMVF

AFTINTRMWD const #

const AFTINTRMWD

AFTINTRMWF const #

const AFTINTRMWF

AFTINTRNEVD const #

const AFTINTRNEVD

AFTINTRNEVF const #

const AFTINTRNEVF

AFTINTRNEWD const #

const AFTINTRNEWD

AFTINTRNEWF const #

const AFTINTRNEWF

AFTINTRPVD const #

const AFTINTRPVD

AFTINTRPVF const #

const AFTINTRPVF

AFTINTRPWD const #

const AFTINTRPWD

AFTINTRPWF const #

3.2.3.3

const AFTINTRPWF

AFTINTRZVD const #

const AFTINTRZVD

AFTINTRZVF const #

const AFTINTRZVF

AFTINTRZWD const #

const AFTINTRZWD

AFTINTRZWF const #

const AFTINTRZWF

AFTINTVD const #

const AFTINTVD

AFTINTVF const #

const AFTINTVF

AFTINTWD const #

const AFTINTWD

AFTINTWF const #

const AFTINTWF

AJAL const #

const AJAL = obj.ACALL

AJIRL const #

const AJIRL

AJMP const #

aliases

const AJMP = obj.AJMP

ALAST const #

const ALAST

ALL const #

const ALL

ALLV const #

const ALLV

ALU12IW const #

const ALU12IW

ALU32ID const #

const ALU32ID

ALU52ID const #

const ALU52ID

ALUI const #

const ALUI

AMASKEQZ const #

const AMASKEQZ

AMASKNEZ const #

const AMASKNEZ

AMOVB const #

const AMOVB

AMOVBU const #

const AMOVBU

AMOVD const #

const AMOVD

AMOVDF const #

const AMOVDF

AMOVDV const #

const AMOVDV

AMOVDW const #

const AMOVDW

AMOVF const #

const AMOVF

AMOVFD const #

const AMOVFD

AMOVFV const #

const AMOVFV

AMOVFW const #

const AMOVFW

AMOVH const #

const AMOVH

AMOVHU const #

const AMOVHU

AMOVV const #

64-bit

const AMOVV

AMOVVD const #

const AMOVVD

AMOVVF const #

const AMOVVF

AMOVW const #

const AMOVW

AMOVWD const #

const AMOVWD

AMOVWF const #

const AMOVWF

AMOVWU const #

const AMOVWU

AMUL const #

const AMUL

AMULD const #

const AMULD

AMULF const #

const AMULF

AMULH const #

const AMULH

AMULHU const #

const AMULHU

AMULHV const #

const AMULHV

AMULHVU const #

const AMULHVU

AMULU const #

const AMULU

AMULV const #

const AMULV

AMULVU const #

const AMULVU

AMULW const #

const AMULW

ANEGD const #

const ANEGD

ANEGF const #

const ANEGF

ANEGV const #

const ANEGV

ANEGW const #

const ANEGW

ANOOP const #

const ANOOP

ANOR const #

const ANOR

AOR const #

const AOR

AORN const #

2.2.1.8

const AORN

APCADDU12I const #

const APCADDU12I

APCALAU12I const #

const APCALAU12I

ARDTIMED const #

const ARDTIMED

ARDTIMEHW const #

const ARDTIMEHW

ARDTIMELW const #

2.2.10. Other Miscellaneous Instructions

const ARDTIMELW

AREM const #

const AREM

AREMU const #

const AREMU

AREMV const #

const AREMV

AREMVU const #

const AREMVU

ARET const #

const ARET = obj.ARET

AREVB2H const #

const AREVB2H

AREVB2W const #

const AREVB2W

AREVB4H const #

const AREVB4H

AREVBV const #

2.2.3.4

const AREVBV

AREVH2W const #

2.2.3.5

const AREVH2W

AREVHV const #

const AREVHV

ARFE const #

const ARFE

ARNG_16B const #

Arrangement for Loong64 SIMD instructions

const ARNG_16B

ARNG_16H const #

Arrangement for Loong64 SIMD instructions

const ARNG_16H

ARNG_2Q const #

Arrangement for Loong64 SIMD instructions

const ARNG_2Q

ARNG_2V const #

Arrangement for Loong64 SIMD instructions

const ARNG_2V

ARNG_32B const #

arrangement types

const ARNG_32B int16 = iota

ARNG_4V const #

Arrangement for Loong64 SIMD instructions

const ARNG_4V

ARNG_4W const #

Arrangement for Loong64 SIMD instructions

const ARNG_4W

ARNG_8H const #

Arrangement for Loong64 SIMD instructions

const ARNG_8H

ARNG_8W const #

Arrangement for Loong64 SIMD instructions

const ARNG_8W

ARNG_B const #

Arrangement for Loong64 SIMD instructions

const ARNG_B

ARNG_BU const #

Arrangement for Loong64 SIMD instructions

const ARNG_BU

ARNG_H const #

Arrangement for Loong64 SIMD instructions

const ARNG_H

ARNG_HU const #

Arrangement for Loong64 SIMD instructions

const ARNG_HU

ARNG_V const #

Arrangement for Loong64 SIMD instructions

const ARNG_V

ARNG_VU const #

Arrangement for Loong64 SIMD instructions

const ARNG_VU

ARNG_W const #

Arrangement for Loong64 SIMD instructions

const ARNG_W

ARNG_WU const #

Arrangement for Loong64 SIMD instructions

const ARNG_WU

AROTR const #

const AROTR

AROTRV const #

const AROTRV

ASC const #

const ASC

ASCV const #

const ASCV

ASGT const #

const ASGT

ASGTU const #

const ASGTU

ASLL const #

const ASLL

ASLLV const #

const ASLLV

ASQRTD const #

const ASQRTD

ASQRTF const #

const ASQRTF

ASRA const #

const ASRA

ASRAV const #

const ASRAV

ASRL const #

const ASRL

ASRLV const #

const ASRLV

ASUB const #

const ASUB

ASUBD const #

const ASUBD

ASUBF const #

const ASUBF

ASUBU const #

const ASUBU

ASUBV const #

const ASUBV

ASUBVU const #

const ASUBVU

ASUBW const #

const ASUBW

ASYSCALL const #

const ASYSCALL

ATEQ const #

const ATEQ

ATNE const #

const ATNE

ATRUNCDV const #

const ATRUNCDV

ATRUNCDW const #

const ATRUNCDW

ATRUNCFV const #

64-bit FP

const ATRUNCFV

ATRUNCFW const #

const ATRUNCFW

AVMOVQ const #

LSX and LASX memory access instructions

const AVMOVQ

AVPCNTB const #

LSX and LASX Bit-manipulation Instructions

const AVPCNTB

AVPCNTH const #

const AVPCNTH

AVPCNTV const #

const AVPCNTV

AVPCNTW const #

const AVPCNTW

AVSEQB const #

LSX and LASX integer comparison instruction

const AVSEQB

AVSEQH const #

const AVSEQH

AVSEQV const #

const AVSEQV

AVSEQW const #

const AVSEQW

AWORD const #

const AWORD

AXOR const #

const AXOR

AXVMOVQ const #

const AXVMOVQ

AXVPCNTB const #

const AXVPCNTB

AXVPCNTH const #

const AXVPCNTH

AXVPCNTV const #

const AXVPCNTV

AXVPCNTW const #

const AXVPCNTW

AXVSEQB const #

const AXVSEQB

AXVSEQH const #

const AXVSEQH

AXVSEQV const #

const AXVSEQV

AXVSEQW const #

const AXVSEQW

Anames var #

var Anames = []string{...}

BIG const #

const BIG = 2046

BRANCH const #

const BRANCH = *ast.BinaryExpr

C_ADD0CON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ADD0CON

C_ADDCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ADDCON

C_ADDR const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ADDR

C_AND0CON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_AND0CON

C_ANDCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ANDCON

C_ARNG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ARNG

C_BRAN const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_BRAN

C_DACON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_DACON

C_DCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_DCON

C_ELEM const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ELEM

C_EXTADDR const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_EXTADDR

C_FCCREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_FCCREG

C_FCSRREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_FCSRREG

C_FREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_FREG

C_GOK const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_GOK

C_GOTADDR const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_GOTADDR

C_LACON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_LACON

C_LAUTO const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_LAUTO

C_LCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_LCON

C_LOREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_LOREG

C_NCLASS const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_NCLASS

C_NONE const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_NONE = iota

C_REG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_REG

C_ROFF const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ROFF

C_SACON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_SACON

C_SAUTO const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_SAUTO

C_SCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_SCON

C_SOREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_SOREG

C_TEXTSIZE const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_TEXTSIZE

C_TLS_IE const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_TLS_IE

C_TLS_LE const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_TLS_LE

C_UCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_UCON

C_VREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_VREG

C_XREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_XREG

C_ZCON const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ZCON

C_ZOREG const #

go:generate go run ../mkcnames.go -i a.out.go -o cnames.go -p loong64

const C_ZOREG

EXT_REG_MASK const #

const EXT_REG_MASK = 0x1f

EXT_REG_SHIFT const #

const EXT_REG_SHIFT = 0

EXT_SIMDTYPE_MASK const #

const EXT_SIMDTYPE_MASK = 0x1

EXT_SIMDTYPE_SHIFT const #

const EXT_SIMDTYPE_SHIFT = 10

EXT_TYPE_MASK const #

const EXT_TYPE_MASK = 0x1f

EXT_TYPE_SHIFT const #

const EXT_TYPE_SHIFT = 5

FREGRET const #

const FREGRET = REG_F0

FuncAlign const #

const FuncAlign = 4

LABEL const #

mark flags

const LABEL = *ast.BinaryExpr

LASX const #

LoongArch64 SIMD extension type

const LASX

LEAF const #

const LEAF = *ast.BinaryExpr

LOONG64DWARFRegisters var #

var LOONG64DWARFRegisters = map[int16]int16{...}

LSX const #

LoongArch64 SIMD extension type

const LSX int16 = iota

Linkloong64 var #

var Linkloong64 = obj.LinkArch{...}

NFREG const #

const NFREG = 32

NOTUSETMP const #

const NOTUSETMP = *ast.BinaryExpr

NREG const #

const NREG = 32

NSNAME const #

const NSNAME = 8

NSYM const #

const NSYM = 50

NVREG const #

const NVREG = 32

NXREG const #

const NXREG = 32

REGARG const #

const REGARG = *ast.UnaryExpr

REGCTXT const #

const REGCTXT = REG_R29

REGG const #

const REGG = REG_R22

REGRET const #

const REGRET = REG_R20

REGRT1 const #

const REGRT1 = REG_R20

REGRT2 const #

const REGRT2 = REG_R21

REGSP const #

const REGSP = REG_R3

REGTMP const #

const REGTMP = REG_R30

REGZERO const #

const REGZERO = REG_R0

REG_ARNG const #

bits 0-4 indicates register: Vn or Xn bits 5-9 indicates arrangement: bits 10 indicates SMID type: 0: LSX, 1: LASX

const REG_ARNG = *ast.BinaryExpr

REG_ELEM const #

bits 0-4 indicates register: Vn or Xn bits 5-9 indicates arrangement: bits 10 indicates SMID type: 0: LSX, 1: LASX

const REG_ELEM

REG_ELEM_END const #

bits 0-4 indicates register: Vn or Xn bits 5-9 indicates arrangement: bits 10 indicates SMID type: 0: LSX, 1: LASX

const REG_ELEM_END

REG_F0 const #

const REG_F0

REG_F1 const #

const REG_F1

REG_F10 const #

const REG_F10

REG_F11 const #

const REG_F11

REG_F12 const #

const REG_F12

REG_F13 const #

const REG_F13

REG_F14 const #

const REG_F14

REG_F15 const #

const REG_F15

REG_F16 const #

const REG_F16

REG_F17 const #

const REG_F17

REG_F18 const #

const REG_F18

REG_F19 const #

const REG_F19

REG_F2 const #

const REG_F2

REG_F20 const #

const REG_F20

REG_F21 const #

const REG_F21

REG_F22 const #

const REG_F22

REG_F23 const #

const REG_F23

REG_F24 const #

const REG_F24

REG_F25 const #

const REG_F25

REG_F26 const #

const REG_F26

REG_F27 const #

const REG_F27

REG_F28 const #

const REG_F28

REG_F29 const #

const REG_F29

REG_F3 const #

const REG_F3

REG_F30 const #

const REG_F30

REG_F31 const #

const REG_F31

REG_F4 const #

const REG_F4

REG_F5 const #

const REG_F5

REG_F6 const #

const REG_F6

REG_F7 const #

const REG_F7

REG_F8 const #

const REG_F8

REG_F9 const #

const REG_F9

REG_FCC0 const #

const REG_FCC0

REG_FCC1 const #

const REG_FCC1

REG_FCC10 const #

const REG_FCC10

REG_FCC11 const #

const REG_FCC11

REG_FCC12 const #

const REG_FCC12

REG_FCC13 const #

const REG_FCC13

REG_FCC14 const #

const REG_FCC14

REG_FCC15 const #

const REG_FCC15

REG_FCC16 const #

const REG_FCC16

REG_FCC17 const #

const REG_FCC17

REG_FCC18 const #

const REG_FCC18

REG_FCC19 const #

const REG_FCC19

REG_FCC2 const #

const REG_FCC2

REG_FCC20 const #

const REG_FCC20

REG_FCC21 const #

const REG_FCC21

REG_FCC22 const #

const REG_FCC22

REG_FCC23 const #

const REG_FCC23

REG_FCC24 const #

const REG_FCC24

REG_FCC25 const #

const REG_FCC25

REG_FCC26 const #

const REG_FCC26

REG_FCC27 const #

const REG_FCC27

REG_FCC28 const #

const REG_FCC28

REG_FCC29 const #

const REG_FCC29

REG_FCC3 const #

const REG_FCC3

REG_FCC30 const #

const REG_FCC30

REG_FCC31 const #

const REG_FCC31

REG_FCC4 const #

const REG_FCC4

REG_FCC5 const #

const REG_FCC5

REG_FCC6 const #

const REG_FCC6

REG_FCC7 const #

const REG_FCC7

REG_FCC8 const #

const REG_FCC8

REG_FCC9 const #

const REG_FCC9

REG_FCSR0 const #

const REG_FCSR0

REG_FCSR1 const #

const REG_FCSR1

REG_FCSR10 const #

const REG_FCSR10

REG_FCSR11 const #

const REG_FCSR11

REG_FCSR12 const #

const REG_FCSR12

REG_FCSR13 const #

const REG_FCSR13

REG_FCSR14 const #

const REG_FCSR14

REG_FCSR15 const #

const REG_FCSR15

REG_FCSR16 const #

const REG_FCSR16

REG_FCSR17 const #

const REG_FCSR17

REG_FCSR18 const #

const REG_FCSR18

REG_FCSR19 const #

const REG_FCSR19

REG_FCSR2 const #

const REG_FCSR2

REG_FCSR20 const #

const REG_FCSR20

REG_FCSR21 const #

const REG_FCSR21

REG_FCSR22 const #

const REG_FCSR22

REG_FCSR23 const #

const REG_FCSR23

REG_FCSR24 const #

const REG_FCSR24

REG_FCSR25 const #

const REG_FCSR25

REG_FCSR26 const #

const REG_FCSR26

REG_FCSR27 const #

const REG_FCSR27

REG_FCSR28 const #

const REG_FCSR28

REG_FCSR29 const #

const REG_FCSR29

REG_FCSR3 const #

const REG_FCSR3

REG_FCSR30 const #

const REG_FCSR30

REG_FCSR31 const #

const REG_FCSR31

REG_FCSR4 const #

const REG_FCSR4

REG_FCSR5 const #

const REG_FCSR5

REG_FCSR6 const #

const REG_FCSR6

REG_FCSR7 const #

const REG_FCSR7

REG_FCSR8 const #

const REG_FCSR8

REG_FCSR9 const #

const REG_FCSR9

REG_LAST const #

const REG_LAST = REG_ELEM_END

REG_R0 const #

const REG_R0 = *ast.BinaryExpr

REG_R1 const #

const REG_R1

REG_R10 const #

const REG_R10

REG_R11 const #

const REG_R11

REG_R12 const #

const REG_R12

REG_R13 const #

const REG_R13

REG_R14 const #

const REG_R14

REG_R15 const #

const REG_R15

REG_R16 const #

const REG_R16

REG_R17 const #

const REG_R17

REG_R18 const #

const REG_R18

REG_R19 const #

const REG_R19

REG_R2 const #

const REG_R2

REG_R20 const #

const REG_R20

REG_R21 const #

const REG_R21

REG_R22 const #

const REG_R22

REG_R23 const #

const REG_R23

REG_R24 const #

const REG_R24

REG_R25 const #

const REG_R25

REG_R26 const #

const REG_R26

REG_R27 const #

const REG_R27

REG_R28 const #

const REG_R28

REG_R29 const #

const REG_R29

REG_R3 const #

const REG_R3

REG_R30 const #

const REG_R30

REG_R31 const #

const REG_R31

REG_R4 const #

const REG_R4

REG_R5 const #

const REG_R5

REG_R6 const #

const REG_R6

REG_R7 const #

const REG_R7

REG_R8 const #

const REG_R8

REG_R9 const #

const REG_R9

REG_SPECIAL const #

const REG_SPECIAL = REG_FCSR0

REG_V0 const #

LSX: 128-bit vector register

const REG_V0

REG_V1 const #

const REG_V1

REG_V10 const #

const REG_V10

REG_V11 const #

const REG_V11

REG_V12 const #

const REG_V12

REG_V13 const #

const REG_V13

REG_V14 const #

const REG_V14

REG_V15 const #

const REG_V15

REG_V16 const #

const REG_V16

REG_V17 const #

const REG_V17

REG_V18 const #

const REG_V18

REG_V19 const #

const REG_V19

REG_V2 const #

const REG_V2

REG_V20 const #

const REG_V20

REG_V21 const #

const REG_V21

REG_V22 const #

const REG_V22

REG_V23 const #

const REG_V23

REG_V24 const #

const REG_V24

REG_V25 const #

const REG_V25

REG_V26 const #

const REG_V26

REG_V27 const #

const REG_V27

REG_V28 const #

const REG_V28

REG_V29 const #

const REG_V29

REG_V3 const #

const REG_V3

REG_V30 const #

const REG_V30

REG_V31 const #

const REG_V31

REG_V4 const #

const REG_V4

REG_V5 const #

const REG_V5

REG_V6 const #

const REG_V6

REG_V7 const #

const REG_V7

REG_V8 const #

const REG_V8

REG_V9 const #

const REG_V9

REG_X0 const #

LASX: 256-bit vector register

const REG_X0

REG_X1 const #

const REG_X1

REG_X10 const #

const REG_X10

REG_X11 const #

const REG_X11

REG_X12 const #

const REG_X12

REG_X13 const #

const REG_X13

REG_X14 const #

const REG_X14

REG_X15 const #

const REG_X15

REG_X16 const #

const REG_X16

REG_X17 const #

const REG_X17

REG_X18 const #

const REG_X18

REG_X19 const #

const REG_X19

REG_X2 const #

const REG_X2

REG_X20 const #

const REG_X20

REG_X21 const #

const REG_X21

REG_X22 const #

const REG_X22

REG_X23 const #

const REG_X23

REG_X24 const #

const REG_X24

REG_X25 const #

const REG_X25

REG_X26 const #

const REG_X26

REG_X27 const #

const REG_X27

REG_X28 const #

const REG_X28

REG_X29 const #

const REG_X29

REG_X3 const #

const REG_X3

REG_X30 const #

const REG_X30

REG_X31 const #

const REG_X31

REG_X4 const #

const REG_X4

REG_X5 const #

const REG_X5

REG_X6 const #

const REG_X6

REG_X7 const #

const REG_X7

REG_X8 const #

const REG_X8

REG_X9 const #

const REG_X9

SYNC const #

const SYNC = *ast.BinaryExpr

atomicInst var #

var atomicInst = map[obj.As]uint32{...}

branchLoopHead const #

branchLoopHead marks loop entry. Used to insert padding for under-aligned loops.

const branchLoopHead

cnames0 var #

This order should be strictly consistent to that in a.out.go.

var cnames0 = []string{...}

loopAlign const #

const loopAlign = 16

oprange var #

var oprange [*ast.BinaryExpr][]Optab

optab var #

var optab = []Optab{...}

xcmp var #

var xcmp [C_NCLASS][C_NCLASS]bool

Structs

Optab struct #

type Optab struct {
as obj.As
from1 uint8
reg uint8
from3 uint8
to1 uint8
to2 uint8
type_ int8
size int8
param int16
flag uint8
}

ctxt0 struct #

ctxt0 holds state while assembling a single function. Each function gets a fresh ctxt0. This allows for multiple functions to be safely concurrently assembled.

type ctxt0 struct {
ctxt *obj.Link
newprog obj.ProgAlloc
cursym *obj.LSym
autosize int32
instoffset int64
pc int64
}

Functions

DRconv function #

func DRconv(a int) string

IsAtomicInst function #

func IsAtomicInst(as obj.As) bool

OP_12IRR function #

func OP_12IRR(op uint32, i uint32, r2 uint32, r3 uint32) uint32

OP_15I function #

func OP_15I(op uint32, i uint32) uint32

OP_16IRR function #

func OP_16IRR(op uint32, i uint32, r2 uint32, r3 uint32) uint32

OP_16IR_5I function #

func OP_16IR_5I(op uint32, i uint32, r2 uint32) uint32

OP_B_BL function #

Encoding for the 'b' or 'bl' instruction.

func OP_B_BL(op uint32, i uint32) uint32

OP_IR function #

func OP_IR(op uint32, i uint32, r2 uint32) uint32

OP_IRIR function #

i1 -> msb r2 -> rj i3 -> lsb r4 -> rd

func OP_IRIR(op uint32, i1 uint32, r2 uint32, i3 uint32, r4 uint32) uint32

OP_RR function #

r2 -> rj r3 -> rd

func OP_RR(op uint32, r2 uint32, r3 uint32) uint32

OP_RRR function #

r1 -> rk r2 -> rj r3 -> rd

func OP_RRR(op uint32, r1 uint32, r2 uint32, r3 uint32) uint32

OP_RRRR function #

func OP_RRRR(op uint32, r1 uint32, r2 uint32, r3 uint32, r4 uint32) uint32

aclass method #

func (c *ctxt0) aclass(a *obj.Addr) int

addnop method #

func (c *ctxt0) addnop(p *obj.Prog)

arrange function #

func arrange(a int16) string

asmout method #

func (c *ctxt0) asmout(p *obj.Prog, o *Optab, out []uint32)

buildop function #

func buildop(ctxt *obj.Link)

checkindex method #

checkindex checks if index >= 0 && index <= maxindex

func (c *ctxt0) checkindex(p *obj.Prog, index uint32, mask uint32)

cmp function #

func cmp(a int, b int) bool

init function #

func init()

init function #

func init()

init function #

func init()

isRestartable method #

isRestartable returns whether p is a multi-instruction sequence that, if preempted, can be restarted.

func (c *ctxt0) isRestartable(p *obj.Prog) bool

isUnsafePoint method #

isUnsafePoint returns whether p is an unsafe point.

func (c *ctxt0) isUnsafePoint(p *obj.Prog) bool

isint32 function #

func isint32(v int64) bool

isuint32 function #

func isuint32(v uint64) bool

oclass function #

func oclass(a *obj.Addr) int

ocmp function #

func ocmp(p1 Optab, p2 Optab) int

opi method #

func (c *ctxt0) opi(a obj.As) uint32

opir method #

func (c *ctxt0) opir(a obj.As) uint32

opirir method #

func (c *ctxt0) opirir(a obj.As) uint32

opirr method #

func (c *ctxt0) opirr(a obj.As) uint32

oplook method #

func (c *ctxt0) oplook(p *obj.Prog) *Optab

oprr method #

func (c *ctxt0) oprr(a obj.As) uint32

oprrr method #

func (c *ctxt0) oprrr(a obj.As) uint32

oprrrr method #

func (c *ctxt0) oprrrr(a obj.As) uint32

opset function #

func opset(a obj.As, b0 obj.As)

pcAlignPadLength function #

pcAlignPadLength returns the number of bytes required to align pc to alignedValue, reporting an error if alignedValue is not a power of two or is out of range.

func pcAlignPadLength(ctxt *obj.Link, pc int64, alignedValue int64) int

prasm function #

func prasm(p *obj.Prog)

preprocess function #

func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc)

progedit function #

func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc)

rclass method #

In Loong64,there are 8 CFRs, denoted as fcc0-fcc7. There are 4 FCSRs, denoted as fcsr0-fcsr3.

func (c *ctxt0) rclass(r int16) int

rconv function #

func rconv(r int) string

regoff method #

func (c *ctxt0) regoff(a *obj.Addr) int32

rewriteToUseGot function #

func rewriteToUseGot(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc)

span0 function #

func span0(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc)

specialFpMovInst method #

func (c *ctxt0) specialFpMovInst(a obj.As, fclass int, tclass int) uint32

specialLsxMovInst method #

func (c *ctxt0) specialLsxMovInst(a obj.As, fReg int16, tReg int16) (op_code uint32, index_mask uint32)

stacksplit method #

func (c *ctxt0) stacksplit(p *obj.Prog, framesize int32) *obj.Prog

vregoff method #

func (c *ctxt0) vregoff(a *obj.Addr) int64

vshift function #

func vshift(a obj.As) bool

Generated with Arrow