From c5c21d07fb110c519e7e22630314d73c81919696 Mon Sep 17 00:00:00 2001 From: "D.Angelov" Date: Mon, 26 Jan 2026 22:11:22 +0000 Subject: [PATCH] ci: extract tests that tcc can not compile from asm_test.amd64.v to asm_no_tcc_test.amd64.v --- .../assembly/asm_no_tcc_test.amd64.v | 63 +++++++++++++++++++ vlib/v/slow_tests/assembly/asm_test.amd64.v | 60 ------------------ 2 files changed, 63 insertions(+), 60 deletions(-) create mode 100644 vlib/v/slow_tests/assembly/asm_no_tcc_test.amd64.v diff --git a/vlib/v/slow_tests/assembly/asm_no_tcc_test.amd64.v b/vlib/v/slow_tests/assembly/asm_no_tcc_test.amd64.v new file mode 100644 index 000000000..490c8c816 --- /dev/null +++ b/vlib/v/slow_tests/assembly/asm_no_tcc_test.amd64.v @@ -0,0 +1,63 @@ +// vtest build: !msvc && !tinyc +// The tests here have constraints, that are not implemented yet in tcc, and msvc does not support inline assembly at all +fn test_constraints() { + x := u64(100) + y := u64(200) + mut hi := u64(0) + mut lo := u64(0) + asm amd64 { + mov rax, x + mulq y + mov lo, rax + mov hi, rdx + ; =*m (lo) + =&r (hi) + ; rm (x) + r (y) + ; rax + rdx + cc + } + assert hi == 0 + assert lo == 20000 +} + +fn test_flag_output() { + a, b := 4, 9 + mut out := false + asm amd64 { + cmp a, b + ; =@ccl (out) + ; r (a) + r (b) + } + assert out + asm amd64 { + cmp b, a + ; =@ccl (out) + ; r (a) + r (b) + } + assert !out + + zero := 0 + asm amd64 { + cmp zero, zero + ; =@ccz (out) + ; r (zero) + } + assert out + + mut maybe_four := 4 + mut four := 4 + asm amd64 { + subl four, maybe_four + testl four, maybe_four + movl maybe_four, 9 + ; +m (maybe_four) + +r (four) + =@ccz (out) + } + assert out + assert maybe_four == 9 +} diff --git a/vlib/v/slow_tests/assembly/asm_test.amd64.v b/vlib/v/slow_tests/assembly/asm_test.amd64.v index b7f9d1783..a8e297b71 100644 --- a/vlib/v/slow_tests/assembly/asm_test.amd64.v +++ b/vlib/v/slow_tests/assembly/asm_test.amd64.v @@ -110,26 +110,6 @@ fn test_inline_asm() { ; ; eax } assert o.str()[0].is_capital() - - x := u64(100) - y := u64(200) - mut hi := u64(0) - mut lo := u64(0) - asm amd64 { - mov rax, x - mulq y - mov lo, rax - mov hi, rdx - ; =*m (lo) - =&r (hi) - ; rm (x) - r (y) - ; rax - rdx - cc - } - assert hi == 0 - assert lo == 20000 } @[packed] @@ -195,46 +175,6 @@ $if !macos { } } -fn test_flag_output() { - a, b := 4, 9 - mut out := false - asm amd64 { - cmp a, b - ; =@ccl (out) - ; r (a) - r (b) - } - assert out - asm amd64 { - cmp b, a - ; =@ccl (out) - ; r (a) - r (b) - } - assert !out - - zero := 0 - asm amd64 { - cmp zero, zero - ; =@ccz (out) - ; r (zero) - } - assert out - - mut maybe_four := 4 - mut four := 4 - asm amd64 { - subl four, maybe_four - testl four, maybe_four - movl maybe_four, 9 - ; +m (maybe_four) - +r (four) - =@ccz (out) - } - assert out - assert maybe_four == 9 -} - fn test_asm_generic() { u := u64(49) assert generic_asm(u) == 14 -- 2.39.5