Add qemu 2.4.0
[kvmfornfv.git] / qemu / tests / tcg / test-arm-iwmmxt.s
diff --git a/qemu/tests/tcg/test-arm-iwmmxt.s b/qemu/tests/tcg/test-arm-iwmmxt.s
new file mode 100644 (file)
index 0000000..d647f94
--- /dev/null
@@ -0,0 +1,49 @@
+@ Checks whether iwMMXt is functional.
+.code  32
+.globl main
+
+main:
+ldr    r0, =data0
+ldr    r1, =data1
+ldr    r2, =data2
+#ifndef FPA
+wldrd  wr0, [r0, #0]
+wldrd  wr1, [r0, #8]
+wldrd  wr2, [r1, #0]
+wldrd  wr3, [r1, #8]
+wsubb  wr2, wr2, wr0
+wsubb  wr3, wr3, wr1
+wldrd  wr0, [r2, #0]
+wldrd  wr1, [r2, #8]
+waddb  wr0, wr0, wr2
+waddb  wr1, wr1, wr3
+wstrd  wr0, [r2, #0]
+wstrd  wr1, [r2, #8]
+#else
+ldfe   f0, [r0, #0]
+ldfe   f1, [r0, #8]
+ldfe   f2, [r1, #0]
+ldfe   f3, [r1, #8]
+adfdp  f2, f2, f0
+adfdp  f3, f3, f1
+ldfe   f0, [r2, #0]
+ldfe   f1, [r2, #8]
+adfd   f0, f0, f2
+adfd   f1, f1, f3
+stfe   f0, [r2, #0]
+stfe   f1, [r2, #8]
+#endif
+mov    r0, #1
+mov    r1, r2
+mov    r2, #0x11
+swi    #0x900004
+mov    r0, #0
+swi    #0x900001
+
+.data
+data0:
+.string        "aaaabbbbccccdddd"
+data1:
+.string        "bbbbccccddddeeee"
+data2:
+.string        "hvLLWs\x1fsdrs9\x1fNJ-\n"