Skip to content

Commit 6a730e1

Browse files
markdryanmengzhuo
authored andcommitted
cmd/internal/obj/riscv: rename the iIEncoding
We rename it to iIIEncoding to reflect the fact that instructions that use this encoding take two integer registers. This change will allow us to add a new encoding for I-type instructions that take a single integer register. This new encoding will be used for instructions that modify CSRs. Change-Id: Ic507d0020e18f6aa72353f4d3ffcd0e868261e7a Reviewed-on: https://go-review.googlesource.com/c/go/+/614355 Reviewed-by: Carlos Amedee <[email protected]> Reviewed-by: Joel Sing <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Meng Zhuo <[email protected]> Reviewed-by: David Chase <[email protected]>
1 parent ff695ca commit 6a730e1

File tree

1 file changed

+40
-40
lines changed
  • src/cmd/internal/obj/riscv

1 file changed

+40
-40
lines changed

src/cmd/internal/obj/riscv/obj.go

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,7 +1175,7 @@ func validateRFF(ctxt *obj.Link, ins *instruction) {
11751175
wantNoneReg(ctxt, ins, "rs3", ins.rs3)
11761176
}
11771177

1178-
func validateII(ctxt *obj.Link, ins *instruction) {
1178+
func validateIII(ctxt *obj.Link, ins *instruction) {
11791179
wantImmI(ctxt, ins, ins.imm, 12)
11801180
wantIntReg(ctxt, ins, "rd", ins.rd)
11811181
wantIntReg(ctxt, ins, "rs1", ins.rs1)
@@ -1321,7 +1321,7 @@ func encodeI(as obj.As, rs1, rd, imm uint32) uint32 {
13211321
return imm<<20 | rs1<<15 | enc.funct3<<12 | rd<<7 | enc.opcode
13221322
}
13231323

1324-
func encodeII(ins *instruction) uint32 {
1324+
func encodeIII(ins *instruction) uint32 {
13251325
return encodeI(ins.as, regI(ins.rs1), regI(ins.rd), uint32(ins.imm))
13261326
}
13271327

@@ -1522,8 +1522,8 @@ var (
15221522
rIFEncoding = encoding{encode: encodeRIF, validate: validateRIF, length: 4}
15231523
rFFEncoding = encoding{encode: encodeRFF, validate: validateRFF, length: 4}
15241524

1525-
iIEncoding = encoding{encode: encodeII, validate: validateII, length: 4}
1526-
iFEncoding = encoding{encode: encodeIF, validate: validateIF, length: 4}
1525+
iIIEncoding = encoding{encode: encodeIII, validate: validateIII, length: 4}
1526+
iFEncoding = encoding{encode: encodeIF, validate: validateIF, length: 4}
15271527

15281528
sIEncoding = encoding{encode: encodeSI, validate: validateSI, length: 4}
15291529
sFEncoding = encoding{encode: encodeSF, validate: validateSF, length: 4}
@@ -1550,15 +1550,15 @@ var encodings = [ALAST & obj.AMask]encoding{
15501550
// Unprivileged ISA
15511551

15521552
// 2.4: Integer Computational Instructions
1553-
AADDI & obj.AMask: iIEncoding,
1554-
ASLTI & obj.AMask: iIEncoding,
1555-
ASLTIU & obj.AMask: iIEncoding,
1556-
AANDI & obj.AMask: iIEncoding,
1557-
AORI & obj.AMask: iIEncoding,
1558-
AXORI & obj.AMask: iIEncoding,
1559-
ASLLI & obj.AMask: iIEncoding,
1560-
ASRLI & obj.AMask: iIEncoding,
1561-
ASRAI & obj.AMask: iIEncoding,
1553+
AADDI & obj.AMask: iIIEncoding,
1554+
ASLTI & obj.AMask: iIIEncoding,
1555+
ASLTIU & obj.AMask: iIIEncoding,
1556+
AANDI & obj.AMask: iIIEncoding,
1557+
AORI & obj.AMask: iIIEncoding,
1558+
AXORI & obj.AMask: iIIEncoding,
1559+
ASLLI & obj.AMask: iIIEncoding,
1560+
ASRLI & obj.AMask: iIIEncoding,
1561+
ASRAI & obj.AMask: iIIEncoding,
15621562
ALUI & obj.AMask: uEncoding,
15631563
AAUIPC & obj.AMask: uEncoding,
15641564
AADD & obj.AMask: rIIIEncoding,
@@ -1574,7 +1574,7 @@ var encodings = [ALAST & obj.AMask]encoding{
15741574

15751575
// 2.5: Control Transfer Instructions
15761576
AJAL & obj.AMask: jEncoding,
1577-
AJALR & obj.AMask: iIEncoding,
1577+
AJALR & obj.AMask: iIIEncoding,
15781578
ABEQ & obj.AMask: bEncoding,
15791579
ABNE & obj.AMask: bEncoding,
15801580
ABLT & obj.AMask: bEncoding,
@@ -1583,32 +1583,32 @@ var encodings = [ALAST & obj.AMask]encoding{
15831583
ABGEU & obj.AMask: bEncoding,
15841584

15851585
// 2.6: Load and Store Instructions
1586-
ALW & obj.AMask: iIEncoding,
1587-
ALWU & obj.AMask: iIEncoding,
1588-
ALH & obj.AMask: iIEncoding,
1589-
ALHU & obj.AMask: iIEncoding,
1590-
ALB & obj.AMask: iIEncoding,
1591-
ALBU & obj.AMask: iIEncoding,
1586+
ALW & obj.AMask: iIIEncoding,
1587+
ALWU & obj.AMask: iIIEncoding,
1588+
ALH & obj.AMask: iIIEncoding,
1589+
ALHU & obj.AMask: iIIEncoding,
1590+
ALB & obj.AMask: iIIEncoding,
1591+
ALBU & obj.AMask: iIIEncoding,
15921592
ASW & obj.AMask: sIEncoding,
15931593
ASH & obj.AMask: sIEncoding,
15941594
ASB & obj.AMask: sIEncoding,
15951595

15961596
// 2.7: Memory Ordering
1597-
AFENCE & obj.AMask: iIEncoding,
1597+
AFENCE & obj.AMask: iIIEncoding,
15981598

15991599
// 5.2: Integer Computational Instructions (RV64I)
1600-
AADDIW & obj.AMask: iIEncoding,
1601-
ASLLIW & obj.AMask: iIEncoding,
1602-
ASRLIW & obj.AMask: iIEncoding,
1603-
ASRAIW & obj.AMask: iIEncoding,
1600+
AADDIW & obj.AMask: iIIEncoding,
1601+
ASLLIW & obj.AMask: iIIEncoding,
1602+
ASRLIW & obj.AMask: iIIEncoding,
1603+
ASRAIW & obj.AMask: iIIEncoding,
16041604
AADDW & obj.AMask: rIIIEncoding,
16051605
ASLLW & obj.AMask: rIIIEncoding,
16061606
ASRLW & obj.AMask: rIIIEncoding,
16071607
ASUBW & obj.AMask: rIIIEncoding,
16081608
ASRAW & obj.AMask: rIIIEncoding,
16091609

16101610
// 5.3: Load and Store Instructions (RV64I)
1611-
ALD & obj.AMask: iIEncoding,
1611+
ALD & obj.AMask: iIIEncoding,
16121612
ASD & obj.AMask: sIEncoding,
16131613

16141614
// 7.1: Multiplication Operations
@@ -1653,9 +1653,9 @@ var encodings = [ALAST & obj.AMask]encoding{
16531653
AAMOMINUD & obj.AMask: rIIIEncoding,
16541654

16551655
// 10.1: Base Counters and Timers
1656-
ARDCYCLE & obj.AMask: iIEncoding,
1657-
ARDTIME & obj.AMask: iIEncoding,
1658-
ARDINSTRET & obj.AMask: iIEncoding,
1656+
ARDCYCLE & obj.AMask: iIIEncoding,
1657+
ARDTIME & obj.AMask: iIIEncoding,
1658+
ARDINSTRET & obj.AMask: iIIEncoding,
16591659

16601660
// 11.5: Single-Precision Load and Store Instructions
16611661
AFLW & obj.AMask: iFEncoding,
@@ -1744,8 +1744,8 @@ var encodings = [ALAST & obj.AMask]encoding{
17441744
// Privileged ISA
17451745

17461746
// 3.2.1: Environment Call and Breakpoint
1747-
AECALL & obj.AMask: iIEncoding,
1748-
AEBREAK & obj.AMask: iIEncoding,
1747+
AECALL & obj.AMask: iIIEncoding,
1748+
AEBREAK & obj.AMask: iIIEncoding,
17491749

17501750
//
17511751
// RISC-V Bit-Manipulation ISA-extensions (1.0)
@@ -1759,7 +1759,7 @@ var encodings = [ALAST & obj.AMask]encoding{
17591759
ASH2ADDUW & obj.AMask: rIIIEncoding,
17601760
ASH3ADD & obj.AMask: rIIIEncoding,
17611761
ASH3ADDUW & obj.AMask: rIIIEncoding,
1762-
ASLLIUW & obj.AMask: iIEncoding,
1762+
ASLLIUW & obj.AMask: iIIEncoding,
17631763

17641764
// 1.2: Basic Bit Manipulation (Zbb)
17651765
AANDN & obj.AMask: rIIIEncoding,
@@ -1783,21 +1783,21 @@ var encodings = [ALAST & obj.AMask]encoding{
17831783
AROL & obj.AMask: rIIIEncoding,
17841784
AROLW & obj.AMask: rIIIEncoding,
17851785
AROR & obj.AMask: rIIIEncoding,
1786-
ARORI & obj.AMask: iIEncoding,
1787-
ARORIW & obj.AMask: iIEncoding,
1786+
ARORI & obj.AMask: iIIEncoding,
1787+
ARORIW & obj.AMask: iIIEncoding,
17881788
ARORW & obj.AMask: rIIIEncoding,
1789-
AORCB & obj.AMask: iIEncoding,
1790-
AREV8 & obj.AMask: iIEncoding,
1789+
AORCB & obj.AMask: iIIEncoding,
1790+
AREV8 & obj.AMask: iIIEncoding,
17911791

17921792
// 1.5: Single-bit Instructions (Zbs)
17931793
ABCLR & obj.AMask: rIIIEncoding,
1794-
ABCLRI & obj.AMask: iIEncoding,
1794+
ABCLRI & obj.AMask: iIIEncoding,
17951795
ABEXT & obj.AMask: rIIIEncoding,
1796-
ABEXTI & obj.AMask: iIEncoding,
1796+
ABEXTI & obj.AMask: iIIEncoding,
17971797
ABINV & obj.AMask: rIIIEncoding,
1798-
ABINVI & obj.AMask: iIEncoding,
1798+
ABINVI & obj.AMask: iIIEncoding,
17991799
ABSET & obj.AMask: rIIIEncoding,
1800-
ABSETI & obj.AMask: iIEncoding,
1800+
ABSETI & obj.AMask: iIIEncoding,
18011801

18021802
// Escape hatch
18031803
AWORD & obj.AMask: rawEncoding,

0 commit comments

Comments
 (0)