Commit 7ef890db authored by Joel Sing's avatar Joel Sing

cmd/internal/obj: instructions and registers for RISC-V

Start implementing an assembler for RISC-V - this provides register
definitions and instruction mnemonics as defined in the RISC-V
Instruction Set Manual, along with instruction encoding.

The instruction encoding is generated by the parse_opcodes script with
the "opcodes" and "opcodes-pseudo" files from (`make inst.go`):

  https://github.com/riscv/riscv-opcodes

This is based on the riscv-go port:

  https://github.com/riscv/riscv-go

Contributors to the riscv-go port are:

  Amol Bhave <ammubhave@gmail.com>
  Benjamin Barenblat <bbaren@google.com>
  Josh Bleecher Snyder <josharian@gmail.com>
  Michael Pratt <michael@pratt.im>
  Michael Yenik <myenik@google.com>
  Ronald G. Minnich <rminnich@gmail.com>
  Stefan O'Rear <sorear2@gmail.com>

This port has been updated to Go 1.13:

  https://github.com/4a6f656c/riscv-go

Updates #27532

Change-Id: I257b6de87e9864df61a2b0ce9be15968c1227b49
Reviewed-on: https://go-review.googlesource.com/c/go/+/193677
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
parent 112a72a0
......@@ -369,6 +369,7 @@ const (
ABasePPC64
ABaseARM64
ABaseMIPS
ABaseRISCV
ABaseS390X
ABaseWasm
......
// Code generated by stringer -i cpu.go -o anames.go -p riscv; DO NOT EDIT.
package riscv
import "cmd/internal/obj"
var Anames = []string{
obj.A_ARCHSPECIFIC: "SLLIRV32",
"SRLIRV32",
"SRAIRV32",
"JAL",
"JALR",
"BEQ",
"BNE",
"BLT",
"BLTU",
"BGE",
"BGEU",
"FENCE",
"FENCEI",
"FENCETSO",
"ADDI",
"SLTI",
"SLTIU",
"ANDI",
"ORI",
"XORI",
"SLLI",
"SRLI",
"SRAI",
"LUI",
"AUIPC",
"ADD",
"SLT",
"SLTU",
"AND",
"OR",
"XOR",
"SLL",
"SRL",
"SUB",
"SRA",
"ADDIW",
"SLLIW",
"SRLIW",
"SRAIW",
"ADDW",
"SLLW",
"SRLW",
"SUBW",
"SRAW",
"LD",
"LW",
"LWU",
"LH",
"LHU",
"LB",
"LBU",
"SD",
"SW",
"SH",
"SB",
"RDCYCLE",
"RDCYCLEH",
"RDTIME",
"RDTIMEH",
"RDINSTRET",
"RDINSTRETH",
"MUL",
"MULH",
"MULHU",
"MULHSU",
"MULW",
"DIV",
"DIVU",
"REM",
"REMU",
"DIVW",
"DIVUW",
"REMW",
"REMUW",
"LRD",
"SCD",
"LRW",
"SCW",
"AMOSWAPD",
"AMOADDD",
"AMOANDD",
"AMOORD",
"AMOXORD",
"AMOMAXD",
"AMOMAXUD",
"AMOMIND",
"AMOMINUD",
"AMOSWAPW",
"AMOADDW",
"AMOANDW",
"AMOORW",
"AMOXORW",
"AMOMAXW",
"AMOMAXUW",
"AMOMINW",
"AMOMINUW",
"FRCSR",
"FSCSR",
"FRRM",
"FSRM",
"FRFLAGS",
"FSFLAGS",
"FSRMI",
"FSFLAGSI",
"FLW",
"FSW",
"FADDS",
"FSUBS",
"FMULS",
"FDIVS",
"FMINS",
"FMAXS",
"FSQRTS",
"FMADDS",
"FMSUBS",
"FNMADDS",
"FNMSUBS",
"FCVTWS",
"FCVTLS",
"FCVTSW",
"FCVTSL",
"FCVTWUS",
"FCVTLUS",
"FCVTSWU",
"FCVTSLU",
"FSGNJS",
"FSGNJNS",
"FSGNJXS",
"FMVSX",
"FMVXS",
"FMVWX",
"FMVXW",
"FEQS",
"FLTS",
"FLES",
"FCLASSS",
"FLD",
"FSD",
"FADDD",
"FSUBD",
"FMULD",
"FDIVD",
"FMIND",
"FMAXD",
"FSQRTD",
"FMADDD",
"FMSUBD",
"FNMADDD",
"FNMSUBD",
"FCVTWD",
"FCVTLD",
"FCVTDW",
"FCVTDL",
"FCVTWUD",
"FCVTLUD",
"FCVTDWU",
"FCVTDLU",
"FCVTSD",
"FCVTDS",
"FSGNJD",
"FSGNJND",
"FSGNJXD",
"FMVXD",
"FMVDX",
"FEQD",
"FLTD",
"FLED",
"FCLASSD",
"FLQ",
"FSQ",
"FADDQ",
"FSUBQ",
"FMULQ",
"FDIVQ",
"FMINQ",
"FMAXQ",
"FSQRTQ",
"FMADDQ",
"FMSUBQ",
"FNMADDQ",
"FNMSUBQ",
"FCVTWQ",
"FCVTLQ",
"FCVTSQ",
"FCVTDQ",
"FCVTQW",
"FCVTQL",
"FCVTQS",
"FCVTQD",
"FCVTWUQ",
"FCVTLUQ",
"FCVTQWU",
"FCVTQLU",
"FSGNJQ",
"FSGNJNQ",
"FSGNJXQ",
"FMVXQ",
"FMVQX",
"FEQQ",
"FLEQ",
"FLTQ",
"FCLASSQ",
"CSRRW",
"CSRRS",
"CSRRC",
"CSRRWI",
"CSRRSI",
"CSRRCI",
"ECALL",
"SCALL",
"EBREAK",
"SBREAK",
"MRET",
"SRET",
"URET",
"DRET",
"WFI",
"SFENCEVMA",
"HFENCEGVMA",
"HFENCEVVMA",
"WORD",
"FNEGD",
"FNEGS",
"FNED",
"FNES",
"MOV",
"MOVB",
"MOVBU",
"MOVF",
"MOVD",
"MOVH",
"MOVHU",
"MOVW",
"MOVWU",
"SEQZ",
"SNEZ",
}
This diff is collapsed.
This diff is collapsed.
......@@ -457,6 +457,7 @@ const (
RBaseARM64 = 8 * 1024 // range [8k, 13k)
RBaseMIPS = 13 * 1024 // range [13k, 14k)
RBaseS390X = 14 * 1024 // range [14k, 15k)
RBaseRISCV = 15 * 1024 // range [15k, 16k)
RBaseWasm = 16 * 1024
)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment