github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/cmd/internal/obj/loong64/a.out.go (about)

     1  // Copyright 2022 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package loong64
     6  
     7  import (
     8  	"github.com/shogo82148/std/cmd/internal/obj"
     9  )
    10  
    11  const (
    12  	NSNAME = 8
    13  	NSYM   = 50
    14  	NREG   = 32
    15  	NFREG  = 32
    16  )
    17  
    18  const (
    19  	REG_R0 = obj.RBaseLOONG64 + iota
    20  	REG_R1
    21  	REG_R2
    22  	REG_R3
    23  	REG_R4
    24  	REG_R5
    25  	REG_R6
    26  	REG_R7
    27  	REG_R8
    28  	REG_R9
    29  	REG_R10
    30  	REG_R11
    31  	REG_R12
    32  	REG_R13
    33  	REG_R14
    34  	REG_R15
    35  	REG_R16
    36  	REG_R17
    37  	REG_R18
    38  	REG_R19
    39  	REG_R20
    40  	REG_R21
    41  	REG_R22
    42  	REG_R23
    43  	REG_R24
    44  	REG_R25
    45  	REG_R26
    46  	REG_R27
    47  	REG_R28
    48  	REG_R29
    49  	REG_R30
    50  	REG_R31
    51  
    52  	REG_F0
    53  	REG_F1
    54  	REG_F2
    55  	REG_F3
    56  	REG_F4
    57  	REG_F5
    58  	REG_F6
    59  	REG_F7
    60  	REG_F8
    61  	REG_F9
    62  	REG_F10
    63  	REG_F11
    64  	REG_F12
    65  	REG_F13
    66  	REG_F14
    67  	REG_F15
    68  	REG_F16
    69  	REG_F17
    70  	REG_F18
    71  	REG_F19
    72  	REG_F20
    73  	REG_F21
    74  	REG_F22
    75  	REG_F23
    76  	REG_F24
    77  	REG_F25
    78  	REG_F26
    79  	REG_F27
    80  	REG_F28
    81  	REG_F29
    82  	REG_F30
    83  	REG_F31
    84  
    85  	REG_FCSR0
    86  	REG_FCSR1
    87  	REG_FCSR2
    88  	REG_FCSR3
    89  	REG_FCSR4
    90  	REG_FCSR5
    91  	REG_FCSR6
    92  	REG_FCSR7
    93  	REG_FCSR8
    94  	REG_FCSR9
    95  	REG_FCSR10
    96  	REG_FCSR11
    97  	REG_FCSR12
    98  	REG_FCSR13
    99  	REG_FCSR14
   100  	REG_FCSR15
   101  	REG_FCSR16
   102  	REG_FCSR17
   103  	REG_FCSR18
   104  	REG_FCSR19
   105  	REG_FCSR20
   106  	REG_FCSR21
   107  	REG_FCSR22
   108  	REG_FCSR23
   109  	REG_FCSR24
   110  	REG_FCSR25
   111  	REG_FCSR26
   112  	REG_FCSR27
   113  	REG_FCSR28
   114  	REG_FCSR29
   115  	REG_FCSR30
   116  	REG_FCSR31
   117  
   118  	REG_FCC0
   119  	REG_FCC1
   120  	REG_FCC2
   121  	REG_FCC3
   122  	REG_FCC4
   123  	REG_FCC5
   124  	REG_FCC6
   125  	REG_FCC7
   126  	REG_FCC8
   127  	REG_FCC9
   128  	REG_FCC10
   129  	REG_FCC11
   130  	REG_FCC12
   131  	REG_FCC13
   132  	REG_FCC14
   133  	REG_FCC15
   134  	REG_FCC16
   135  	REG_FCC17
   136  	REG_FCC18
   137  	REG_FCC19
   138  	REG_FCC20
   139  	REG_FCC21
   140  	REG_FCC22
   141  	REG_FCC23
   142  	REG_FCC24
   143  	REG_FCC25
   144  	REG_FCC26
   145  	REG_FCC27
   146  	REG_FCC28
   147  	REG_FCC29
   148  	REG_FCC30
   149  	REG_FCC31
   150  
   151  	REG_LAST = REG_FCC31
   152  
   153  	REG_SPECIAL = REG_FCSR0
   154  
   155  	REGZERO = REG_R0
   156  	REGLINK = REG_R1
   157  	REGSP   = REG_R3
   158  	REGRET  = REG_R20
   159  	REGARG  = -1
   160  	REGRT1  = REG_R20
   161  	REGRT2  = REG_R21
   162  	REGCTXT = REG_R29
   163  	REGG    = REG_R22
   164  	REGTMP  = REG_R30
   165  	FREGRET = REG_F0
   166  )
   167  
   168  var LOONG64DWARFRegisters = map[int16]int16{}
   169  
   170  const (
   171  	BIG = 2046
   172  )
   173  
   174  const (
   175  	// mark flags
   176  	LABEL  = 1 << 0
   177  	LEAF   = 1 << 1
   178  	SYNC   = 1 << 2
   179  	BRANCH = 1 << 3
   180  )
   181  
   182  const (
   183  	C_NONE = iota
   184  	C_REG
   185  	C_FREG
   186  	C_FCSRREG
   187  	C_FCCREG
   188  	C_ZCON
   189  	C_SCON
   190  	C_UCON
   191  	C_ADD0CON
   192  	C_AND0CON
   193  	C_ADDCON
   194  	C_ANDCON
   195  	C_LCON
   196  	C_DCON
   197  	C_SACON
   198  	C_SECON
   199  	C_LACON
   200  	C_LECON
   201  	C_DACON
   202  	C_STCON
   203  	C_SBRA
   204  	C_LBRA
   205  	C_SAUTO
   206  	C_LAUTO
   207  	C_SEXT
   208  	C_LEXT
   209  	C_ZOREG
   210  	C_SOREG
   211  	C_LOREG
   212  	C_GOK
   213  	C_ADDR
   214  	C_TLS_LE
   215  	C_TLS_IE
   216  	C_GOTADDR
   217  	C_TEXTSIZE
   218  
   219  	C_NCLASS
   220  )
   221  
   222  const (
   223  	AABSD = obj.ABaseLoong64 + obj.A_ARCHSPECIFIC + iota
   224  	AABSF
   225  	AADD
   226  	AADDD
   227  	AADDF
   228  	AADDU
   229  
   230  	AADDW
   231  	AAND
   232  	ABEQ
   233  	ABGEZ
   234  	ABLEZ
   235  	ABGTZ
   236  	ABLTZ
   237  	ABFPF
   238  	ABFPT
   239  
   240  	ABNE
   241  	ABREAK
   242  	ACLO
   243  	ACLZ
   244  
   245  	ACMPEQD
   246  	ACMPEQF
   247  
   248  	ACMPGED
   249  	ACMPGEF
   250  	ACMPGTD
   251  	ACMPGTF
   252  
   253  	ALU12IW
   254  	ALU32ID
   255  	ALU52ID
   256  	APCALAU12I
   257  	APCADDU12I
   258  	AJIRL
   259  	ABGE
   260  	ABLT
   261  	ABLTU
   262  	ABGEU
   263  
   264  	ADIV
   265  	ADIVD
   266  	ADIVF
   267  	ADIVU
   268  	ADIVW
   269  
   270  	ALL
   271  	ALLV
   272  
   273  	ALUI
   274  
   275  	AMOVB
   276  	AMOVBU
   277  
   278  	AMOVD
   279  	AMOVDF
   280  	AMOVDW
   281  	AMOVF
   282  	AMOVFD
   283  	AMOVFW
   284  
   285  	AMOVH
   286  	AMOVHU
   287  	AMOVW
   288  
   289  	AMOVWD
   290  	AMOVWF
   291  
   292  	AMOVWL
   293  	AMOVWR
   294  
   295  	AMUL
   296  	AMULD
   297  	AMULF
   298  	AMULU
   299  	AMULH
   300  	AMULHU
   301  	AMULW
   302  	ANEGD
   303  	ANEGF
   304  
   305  	ANEGW
   306  	ANEGV
   307  
   308  	ANOOP
   309  	ANOR
   310  	AOR
   311  	AREM
   312  	AREMU
   313  
   314  	ARFE
   315  
   316  	ASC
   317  	ASCV
   318  
   319  	ASGT
   320  	ASGTU
   321  
   322  	ASLL
   323  	ASQRTD
   324  	ASQRTF
   325  	ASRA
   326  	ASRL
   327  	AROTR
   328  	ASUB
   329  	ASUBD
   330  	ASUBF
   331  
   332  	ASUBU
   333  	ASUBW
   334  	ADBAR
   335  	ASYSCALL
   336  
   337  	ATEQ
   338  	ATNE
   339  
   340  	AWORD
   341  
   342  	AXOR
   343  
   344  	AMASKEQZ
   345  	AMASKNEZ
   346  
   347  	// 64-bit
   348  	AMOVV
   349  	AMOVVL
   350  	AMOVVR
   351  
   352  	ASLLV
   353  	ASRAV
   354  	ASRLV
   355  	AROTRV
   356  	ADIVV
   357  	ADIVVU
   358  
   359  	AREMV
   360  	AREMVU
   361  
   362  	AMULV
   363  	AMULVU
   364  	AMULHV
   365  	AMULHVU
   366  	AADDV
   367  	AADDVU
   368  	ASUBV
   369  	ASUBVU
   370  
   371  	// 64-bit FP
   372  	ATRUNCFV
   373  	ATRUNCDV
   374  	ATRUNCFW
   375  	ATRUNCDW
   376  
   377  	AMOVWU
   378  	AMOVFV
   379  	AMOVDV
   380  	AMOVVF
   381  	AMOVVD
   382  
   383  	// 2.2.10. Other Miscellaneous Instructions
   384  	ARDTIMELW
   385  	ARDTIMEHW
   386  	ARDTIMED
   387  
   388  	ALAST
   389  
   390  	// aliases
   391  	AJMP = obj.AJMP
   392  	AJAL = obj.ACALL
   393  	ARET = obj.ARET
   394  )