Skip to content

Commit f47adaf

Browse files
authored
slow_tests: update inline asm tests for i386 (#26078)
1 parent 24e9f68 commit f47adaf

File tree

1 file changed

+21
-32
lines changed

1 file changed

+21
-32
lines changed

vlib/v/slow_tests/assembly/asm_test.i386.v

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// vtest build: !msvc
2-
import v.tests.assembly.util
32

43
fn test_inline_asm() {
54
a, mut b := 10, 0
@@ -33,17 +32,6 @@ fn test_inline_asm() {
3332
assert e == 2
3433
assert f == 17
3534

36-
// g, h, i := 2.3, 4.8, -3.5
37-
// asm rv64 {
38-
// fadd.s $i, $g, $h // test `.` in instruction name
39-
// : =r (i) as i
40-
// : r (g) as g
41-
// r (g) as h
42-
// }
43-
// assert g == 2.3
44-
// assert h == 4.8
45-
// assert i == 7.1
46-
4735
mut j := 0
4836
// do 5*3
4937
// adding three, five times
@@ -79,7 +67,7 @@ fn test_inline_asm() {
7967
l := 5
8068
m := &l
8169
asm i386 {
82-
movd [m], 7 // have to specify size with q
70+
movb [m], 7
8371
; ; r (m)
8472
}
8573
assert l == 7
@@ -88,23 +76,24 @@ fn test_inline_asm() {
8876
n := [5, 9, 0, 4]
8977
asm i386 {
9078
loop_start2:
91-
addd [in_data + ecx * 4 + 0], 2
79+
addw [in_data + ecx * 4 + 0], 2
9280
loop loop_start2
93-
addd [in_data + ecx * 4 + 0], 2
81+
addw [in_data + ecx * 4 + 0], 2
9482
; ; c (n.len - 1) // c is counter (loop) register
9583
r (n.data) as in_data
9684
}
9785
assert n == [7, 11, 2, 6]
9886

9987
mut manu := Manu{}
100-
asm amd64 {
88+
asm i386 {
10189
mov eax, 0
10290
cpuid
103-
; =b (manu.ebx) as ebx0
104-
=d (manu.edx) as edx0
105-
=c (manu.ecx) as ecx0
91+
; =b (manu.ebx)
92+
=d (manu.edx)
93+
=c (manu.ecx)
94+
; ; eax
10695
}
107-
manu.str()
96+
assert manu.str()[0].is_capital()
10897
}
10998

11099
@[packed]
@@ -116,11 +105,11 @@ mut:
116105
zero u8 // for string
117106
}
118107

119-
fn (m Manu) str() string {
108+
fn (mut m Manu) str() string {
120109
return unsafe {
121110
string{
122-
str: &u8(&m)
123-
len: 24
111+
str: &u8(m)
112+
len: 12
124113
is_lit: 1
125114
}
126115
}
@@ -129,14 +118,14 @@ fn (m Manu) str() string {
129118
fn test_flag_output() {
130119
a, b := 4, 9
131120
mut out := false
132-
asm amd64 {
121+
asm i386 {
133122
cmp a, b
134123
; =@ccl (out)
135124
; r (a)
136125
r (b)
137126
}
138127
assert out
139-
asm amd64 {
128+
asm i386 {
140129
cmp b, a
141130
; =@ccl (out)
142131
; r (a)
@@ -145,7 +134,7 @@ fn test_flag_output() {
145134
assert !out
146135

147136
zero := 0
148-
asm amd64 {
137+
asm i386 {
149138
cmp zero, zero
150139
; =@ccz (out)
151140
; r (zero)
@@ -154,7 +143,7 @@ fn test_flag_output() {
154143

155144
mut maybe_four := 4
156145
mut four := 4
157-
asm amd64 {
146+
asm i386 {
158147
subl four, maybe_four
159148
testl four, maybe_four
160149
movl maybe_four, 9
@@ -168,17 +157,17 @@ fn test_flag_output() {
168157

169158
fn test_asm_generic() {
170159
u := u64(49)
171-
b := unsafe { bool(123) }
160+
b := unsafe { bool(0) }
172161
assert generic_asm(u) == 14
173162
assert u == 63
174-
assert u64(generic_asm(b)) == 14
175-
assert u64(b) == 137
163+
assert generic_asm(b) == true
164+
assert b == true
176165
}
177166

178167
fn generic_asm[T](var &T) T {
179-
mut ret := T(14)
168+
mut ret := unsafe { T(14) }
180169
unsafe {
181-
asm volatile amd64 {
170+
asm volatile i386 {
182171
add var, ret
183172
; +m (var[0]) as var
184173
+r (ret)

0 commit comments

Comments
 (0)