Source file src/cmd/vendor/golang.org/x/arch/loong64/loong64asm/arg.go

     1  // Copyright 2024 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 loong64asm
     6  
     7  // Naming for Go decoder arguments:
     8  //
     9  // - arg_fd: a Floating Point operand register fd encoded in the fd[4:0] field
    10  //
    11  // - arg_fj: a Floating Point operand register fj encoded in the fj[9:5] field
    12  //
    13  // - arg_fk: a Floating Point operand register fk encoded in the fk[14:10] field
    14  //
    15  // - arg_fa: a Floating Point operand register fa encoded in the fa[19:15] field
    16  //
    17  // - arg_rd: a general-purpose register rd encoded in the rd[4:0] field
    18  //
    19  // - arg_rj: a general-purpose register rj encoded in the rj[9:5] field
    20  //
    21  // - arg_rk: a general-purpose register rk encoded in the rk[14:10] field
    22  //
    23  // - arg_fcsr_4_0: float control status register encoded in [4:0] field
    24  //
    25  // - arg_cd_2_0: condition flag register encoded in [2:0] field
    26  //
    27  // - arg_sa2_16_15: shift bits constant encoded in [16:15] field
    28  //
    29  // - arg_code_14_0: arg for exception process routine encoded in [14:0] field
    30  //
    31  // - arg_ui5_14_10: 5bits unsigned immediate
    32  //
    33  // - arg_lsbw: For details, please refer to chapter 2.2.3.8 of instruction manual
    34  //
    35  // - arg_msbw: For details, please refer to chapter 2.2.3.9 of instruction manual
    36  //
    37  // - arg_hint_4_0: hint field implied the prefetch type and the data should fetch to cache's level
    38  //		0: load to data cache level 1
    39  //		8: store to data cache level 1
    40  //		other: no define
    41  //
    42  // - arg_si12_21_10: 12bits signed immediate
    43  
    44  type instArg uint16
    45  
    46  const (
    47  	_ instArg = iota
    48  	// 1-5
    49  	arg_fd
    50  	arg_fj
    51  	arg_fk
    52  	arg_fa
    53  	arg_rd
    54  	// 6-10
    55  	arg_rj
    56  	arg_rk
    57  	arg_op_4_0
    58  	arg_fcsr_4_0
    59  	arg_fcsr_9_5
    60  	// 11-15
    61  	arg_csr_23_10
    62  	arg_cd
    63  	arg_cj
    64  	arg_ca
    65  	arg_sa2_16_15
    66  	// 16-20
    67  	arg_sa3_17_15
    68  	arg_code_4_0
    69  	arg_code_14_0
    70  	arg_ui5_14_10
    71  	arg_ui6_15_10
    72  	// 21-25
    73  	arg_ui12_21_10
    74  	arg_lsbw
    75  	arg_msbw
    76  	arg_lsbd
    77  	arg_msbd
    78  	// 26-30
    79  	arg_hint_4_0
    80  	arg_hint_14_0
    81  	arg_level_14_0
    82  	arg_level_17_10
    83  	arg_seq_17_10
    84  	// 31-35
    85  	arg_si12_21_10
    86  	arg_si14_23_10
    87  	arg_si16_25_10
    88  	arg_si20_24_5
    89  	arg_offset_20_0
    90  	// 36~
    91  	arg_offset_25_0
    92  	arg_offset_15_0
    93  )
    94  

View as plain text