blob: 9bdf806ba1310e888764d9207737504f7cf97eb4 [file] [log] [blame]
# sh testcase for ftrv xmtrx, $fvn -*- Asm -*-
# mach: all
# as: -isa=shcompact
# ld: -m shelf32
.include "compact/testutils.inc"
# set the fr bit in the fpscr
.macro _setfr
sts fpscr, r7
mov #32, r8
shll16 r8
or r8, r7
lds r7, fpscr
.endm
# clear the fr bit
.macro _clrfr
sts fpscr, r7
mov #32, r8
shll16 r8
not r8, r8
and r8, r7
lds r7, fpscr
.endm
.macro incr old new
fldi1 \new
fadd \old, \new
.endm
start
_setfr
popmtrx:
# 1.0.
fldi1 fr0
# 2.0.
fldi1 fr1
fadd fr1, fr1
incr fr1, fr2
incr fr2, fr3
incr fr3, fr4
incr fr4, fr5
incr fr5, fr6
incr fr6, fr7
incr fr7, fr8
incr fr8, fr9
incr fr9, fr10
incr fr10, fr11
incr fr11, fr12
incr fr12, fr13
incr fr13, fr14
incr fr14, fr15
popvect:
# Swtich fp banks.
_clrfr
fldi1 fr4
fldi1 fr5
fadd fr5, fr5
fldi1 fr6
fadd fr5, fr6
fldi1 fr7
fadd fr6, fr7
ftrv:
# fr[4,7] should contain the results:
# { 30, 70, 110, 150 }.
ftrv xmtrx, fv4
okay:
pass