summary refs log tree commit diff stats
path: root/results/scraper/box64/1759
blob: b50abf18493cd0f7e9d67769cfeeb9bcf28b41f0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Error time to purge ymm
When I try to translate the following code:
```
 8f6088:	c5 f4 58 08          	vaddps (%rax),%ymm1,%ymm1
  8f608c:	48 83 c0 20          	add    $0x20,%rax
  8f6090:	48 39 f8             	cmp    %rdi,%rax
  8f6093:	75 f3                	jne    8f6088 <_ZN3sumclIN5xsimd3avxEfEET0_T_PKS3_j+0x28>
```
I get the result:
```
0x1008f6088: C5 F4 58 08  VADDPS Gx, Vx, Ex
0xffff863328a0: 5 emitted opcodes, inst=11, barrier=0 state=0/1(1), set=0/0, use=0, need=0/0, sm=0(0/0), pred=10/14 Q1:XMM1 Q8:YMM1 (Change: V8:->YMM1) ymmUsed=0002 ymm0=(0000/0000+0000-0002=0000) purgeYmm=0002
3dc00158        LDR Q24, [xRAX]
4e38d421        VFADD V1.4S, V1.4S, V24.4S
3dc06c08        LDR Q8, [xEmu, 0x1b0]
3dc00558        LDR Q24, [xRAX, 0x10]
4e38d508        VFADD V8.4S, V8.4S, V24.4S
New Instruction x64:0x1008f608c, native:0xffff863328b4
0x1008f608c: 48 83 C0 20  ADD Ed, Ib
0xffff863328b4: 1 emitted opcodes, inst=12, barrier=0 state=3/1(1), set=3F/0, use=0, need=0/0, sm=0(0/0), pred=11 Q1:XMM1 Q8:YMM1
9100814a        ADD xRAX, xRAX, 0x20
New Instruction x64:0x1008f6090, native:0xffff863328b8
0x1008f6090: 48 39 F8  CMP Ed, Gd
0xffff863328b8: 3 emitted opcodes, inst=13, barrier=0 state=3/1(1), set=3F/8, use=0, need=0/8, sm=0(0/0), pred=12 Q1:XMM1 Q8:YMM1
eb110145        SUBS x5, xRAX, xRDI
1a9f17e4        CSET w4,cEQ
331a009a        BFI wFlags, w4, 6, 1
New Instruction x64:0x1008f6093, native:0xffff863328c4
0x1008f6093: 75 F3  JNZ ib
0xffff863328c4: 4 emitted opcodes, inst=14, barrier=0 state=0/1(1), set=0/0, use=8, need=8/0, sm=0(0/0), pred=13, jmp=11 Q1:XMM1 (Change: V8:YMM1->)
721a035f        TST wFlags, 0x40
54fffea0          B.cEQ #+-11i ; 0x400034a42b28
Purge YMM mask=0002 --------
3d806c08        STR Q8, [xEmu, 0x1b0]
---------- Purge YMM
```
So I want to say: if JNZ dont store ymm before branch back, it will get Q8 from origin address again!