Skip to content

Commit ef05b66

Browse files
lxq015mengzhuo
authored andcommitted
cmd/internal/obj/riscv: add support for Zicond instructions
This patch implement assembler for the Zicond extension: CZEROEQZ and CZERONEZ. Follow-up to CL 631576 Updates golang#75350 Change-Id: Icf4be131fe61c3b7a3bde4811cf42dc807660907 GitHub-Last-Rev: 6539cc8 GitHub-Pull-Request: golang#75408 Reviewed-on: https://go-review.googlesource.com/c/go/+/702677 Reviewed-by: Mark Freeman <[email protected]> Reviewed-by: Joel Sing <[email protected]> Reviewed-by: Meng Zhuo <[email protected]> Reviewed-by: Michael Knyszek <[email protected]> Reviewed-by: Mark Ryan <[email protected]> TryBot-Bypass: Joel Sing <[email protected]>
1 parent 78ef487 commit ef05b66

File tree

5 files changed

+21
-1
lines changed

5 files changed

+21
-1
lines changed

src/cmd/asm/internal/asm/testdata/riscv64.s

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,12 @@ start:
195195
RDTIME X5 // f32210c0
196196
RDINSTRET X5 // f32220c0
197197

198+
// 12.3: Integer Conditional Operations (Zicond)
199+
CZEROEQZ X5, X6, X7 // b353530e
200+
CZEROEQZ X5, X7 // b3d3530e
201+
CZERONEZ X5, X6, X7 // b373530e
202+
CZERONEZ X5, X7 // b3f3530e
203+
198204
// 13.1: Multiplication Operations
199205
MUL X5, X6, X7 // b3035302
200206
MULH X5, X6, X7 // b3135302

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

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,10 @@ const (
409409
ACSRRSI
410410
ACSRRCI
411411

412+
// 12.3: Integer Conditional Operations (Zicond)
413+
ACZEROEQZ
414+
ACZERONEZ
415+
412416
// 13.1: Multiplication Operations
413417
AMUL
414418
AMULH

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

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1948,6 +1948,10 @@ var instructions = [ALAST & obj.AMask]instructionData{
19481948
ACSRRW & obj.AMask: {enc: iIIEncoding, immForm: ACSRRWI},
19491949
ACSRRWI & obj.AMask: {enc: iIIEncoding},
19501950

1951+
// 12.3: "Zicond" Extension for Integer Conditional Operations
1952+
ACZERONEZ & obj.AMask: {enc: rIIIEncoding, ternary: true},
1953+
ACZEROEQZ & obj.AMask: {enc: rIIIEncoding, ternary: true},
1954+
19511955
// 13.1: Multiplication Operations
19521956
AMUL & obj.AMask: {enc: rIIIEncoding, ternary: true},
19531957
AMULH & obj.AMask: {enc: rIIIEncoding, ternary: true},

0 commit comments

Comments
 (0)