Skip to content

Commit 7069cde

Browse files
authored
cgen: add rv32 inline assembly support (#26362)
1 parent 162a6e9 commit 7069cde

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

vlib/v/gen/c/cgen.v

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3360,9 +3360,8 @@ fn (mut g Gen) asm_stmt(stmt ast.AsmStmt) {
33603360
g.write(' ')
33613361
}
33623362
// swap destination and operands for att syntax, not for arm64
3363-
if template.args.len != 0 && !template.is_directive && stmt.arch != .arm64
3364-
&& stmt.arch != .s390x && stmt.arch != .ppc64le && stmt.arch != .loongarch64
3365-
&& stmt.arch != .rv64 {
3363+
if template.args.len != 0 && !template.is_directive
3364+
&& stmt.arch !in [.arm64, .s390x, .ppc64le, .loongarch64, .rv64, .rv32] {
33663365
template.args.prepend(template.args.last())
33673366
template.args.delete(template.args.len - 1)
33683367
}
@@ -3439,8 +3438,7 @@ fn (mut g Gen) asm_arg(arg ast.AsmArg, stmt ast.AsmStmt) {
34393438
ast.IntegerLiteral {
34403439
if stmt.arch == .arm64 {
34413440
g.write('#${arg.val}')
3442-
} else if stmt.arch == .s390x || stmt.arch == .ppc64le || stmt.arch == .loongarch64
3443-
|| stmt.arch == .rv64 {
3441+
} else if stmt.arch in [.s390x, .ppc64le, .loongarch64, .rv64, .rv32] {
34443442
g.write('${arg.val}')
34453443
} else {
34463444
g.write('\$${arg.val}')
@@ -3457,7 +3455,7 @@ fn (mut g Gen) asm_arg(arg ast.AsmArg, stmt ast.AsmStmt) {
34573455
g.write('\$${arg.val.str()}')
34583456
}
34593457
ast.AsmRegister {
3460-
if stmt.arch == .rv64 {
3458+
if stmt.arch in [.rv64, .rv32] {
34613459
g.write('${arg.name}')
34623460
} else if stmt.arch == .loongarch64 {
34633461
g.write('$${arg.name}')

0 commit comments

Comments
 (0)