50 lines
779 B
ArmAsm
50 lines
779 B
ArmAsm
@ 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"
|