Skip to content

Commit 273655e

Browse files
vfmt: fix asm volatile & goto (#9688)
1 parent a851901 commit 273655e

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

vlib/builtin/linux_bare/linuxsys_bare.v

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ pub enum Map_flags {
228228
fn sys_call0(scn u64) u64 {
229229
res := u64(0)
230230
asm amd64 {
231-
syscall
231+
syscall
232232
; =a (res)
233233
; a (scn)
234234
}
@@ -238,7 +238,7 @@ fn sys_call0(scn u64) u64 {
238238
fn sys_call1(scn u64, arg1 u64) u64 {
239239
res := u64(0)
240240
asm amd64 {
241-
syscall
241+
syscall
242242
; =a (res)
243243
; a (scn)
244244
D (arg1)
@@ -249,7 +249,7 @@ fn sys_call1(scn u64, arg1 u64) u64 {
249249
fn sys_call2(scn u64, arg1 u64, arg2 u64) u64 {
250250
res := u64(0)
251251
asm amd64 {
252-
syscall
252+
syscall
253253
; =a (res)
254254
; a (scn)
255255
D (arg1)
@@ -261,7 +261,7 @@ fn sys_call2(scn u64, arg1 u64, arg2 u64) u64 {
261261
fn sys_call3(scn u64, arg1 u64, arg2 u64, arg3 u64) u64 {
262262
res := u64(0)
263263
asm amd64 {
264-
syscall
264+
syscall
265265
; =a (res)
266266
; a (scn)
267267
D (arg1)
@@ -275,7 +275,7 @@ fn sys_call4(scn u64, arg1 u64, arg2 u64, arg3 u64, arg4 u64) u64 {
275275
res := u64(0)
276276
asm amd64 {
277277
mov r10, arg4
278-
syscall
278+
syscall
279279
; =a (res)
280280
; a (scn)
281281
D (arg1)
@@ -292,7 +292,7 @@ fn sys_call5(scn u64, arg1 u64, arg2 u64, arg3 u64, arg4 u64, arg5 u64) u64 {
292292
asm amd64 {
293293
mov r10, arg4
294294
mov r8, arg5
295-
syscall
295+
syscall
296296
; =a (res)
297297
; a (scn)
298298
D (arg1)
@@ -312,7 +312,7 @@ fn sys_call6(scn u64, arg1 u64, arg2 u64, arg3 u64, arg4 u64, arg5 u64, arg6 u64
312312
mov r10, arg4
313313
mov r8, arg5
314314
mov r9, arg6
315-
syscall
315+
syscall
316316
; =a (res)
317317
; a (scn)
318318
D (arg1)

vlib/v/fmt/fmt.v

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,13 @@ fn expr_is_single_line(expr ast.Expr) bool {
668668
//=== Specific Stmt methods ===//
669669

670670
fn (mut f Fmt) asm_stmt(stmt ast.AsmStmt) {
671-
f.writeln('asm $stmt.arch {')
671+
f.write('asm ')
672+
if stmt.is_volatile {
673+
f.write('volatile ')
674+
} else if stmt.is_goto {
675+
f.write('goto ')
676+
}
677+
f.writeln('$stmt.arch {')
672678
f.indent++
673679
for template in stmt.templates {
674680
if template.is_directive {
@@ -678,7 +684,9 @@ fn (mut f Fmt) asm_stmt(stmt ast.AsmStmt) {
678684
if template.is_label {
679685
f.write(':')
680686
} else {
681-
f.write(' ')
687+
if template.args.len > 0 {
688+
f.write(' ')
689+
}
682690
}
683691
for i, arg in template.args {
684692
f.asm_arg(arg)

0 commit comments

Comments
 (0)