xref: /openbmc/qemu/tests/tcg/hexagon/test_dotnew.S (revision 4f9a4cd37eb2f0c4e6be83640fcc5c31d4bf99e3)
1*585a86b1SNiccolò Izzo/* Purpose: test the .new operator while performing memory stores. */
2*585a86b1SNiccolò Izzo
3*585a86b1SNiccolò Izzo    .text
4*585a86b1SNiccolò Izzo    .globl _start
5*585a86b1SNiccolò Izzo
6*585a86b1SNiccolò Izzo_start:
7*585a86b1SNiccolò Izzo    {
8*585a86b1SNiccolò Izzo        allocframe(#16)
9*585a86b1SNiccolò Izzo    }
10*585a86b1SNiccolò Izzo    {
11*585a86b1SNiccolò Izzo        r0 = #1
12*585a86b1SNiccolò Izzo        memw(sp+#0) = r0.new
13*585a86b1SNiccolò Izzo    }
14*585a86b1SNiccolò Izzo    {
15*585a86b1SNiccolò Izzo        r1 = #2
16*585a86b1SNiccolò Izzo        memw(sp+#4) = r1.new
17*585a86b1SNiccolò Izzo    }
18*585a86b1SNiccolò Izzo    {
19*585a86b1SNiccolò Izzo        r2 = #3
20*585a86b1SNiccolò Izzo        memw(sp+#8) = r2.new
21*585a86b1SNiccolò Izzo    }
22*585a86b1SNiccolò Izzo    {
23*585a86b1SNiccolò Izzo        r0 = memw(sp+#8)
24*585a86b1SNiccolò Izzo    }
25*585a86b1SNiccolò Izzo    {
26*585a86b1SNiccolò Izzo        r1 = memw(sp+#4)
27*585a86b1SNiccolò Izzo    }
28*585a86b1SNiccolò Izzo    {
29*585a86b1SNiccolò Izzo        r2 = memw(sp+#0)
30*585a86b1SNiccolò Izzo    }
31*585a86b1SNiccolò Izzo    {
32*585a86b1SNiccolò Izzo        r3 = mpyi(r1, r2)
33*585a86b1SNiccolò Izzo    }
34*585a86b1SNiccolò Izzo    {
35*585a86b1SNiccolò Izzo        deallocframe
36*585a86b1SNiccolò Izzo        p0 = cmp.eq(r3, #2); if (p0.new) jump:t pass
37*585a86b1SNiccolò Izzo        jump fail
38*585a86b1SNiccolò Izzo    }
39