📄 fipr.s
字号:
# sh testcase for fipr $fvm, $fvn# mach: sh# as(sh): -defsym sim_cpu=0 .include "testutils.inc" startinitv0: set_grs_a5a5 set_fprs_a5a5 # Load 1 into fr0. fldi1 fr0 # Load 2 into fr1. fldi1 fr1 fadd fr1, fr1 # Load 4 into fr2. fldi1 fr2 fadd fr2, fr2 fadd fr2, fr2 # Load 8 into fr3. fmov fr2, fr3 fadd fr2, fr3initv8: fldi1 fr8 fldi0 fr9 fldi1 fr10 fldi0 fr11 fipr fv0, fv8test1: # Result will be in fr11. assert_fpreg_i 1, fr0 assert_fpreg_i 2, fr1 assert_fpreg_i 4, fr2 assert_fpreg_i 8, fr3 assert_fpreg_x 0xa5a5a5a5, fr4 assert_fpreg_x 0xa5a5a5a5, fr5 assert_fpreg_x 0xa5a5a5a5, fr6 assert_fpreg_x 0xa5a5a5a5, fr7 assert_fpreg_i 1, fr8 assert_fpreg_i 0, fr9 assert_fpreg_i 1, fr10 assert_fpreg_i 5, fr11 assert_fpreg_x 0xa5a5a5a5, fr12 assert_fpreg_x 0xa5a5a5a5, fr13 assert_fpreg_x 0xa5a5a5a5, fr14 assert_fpreg_x 0xa5a5a5a5, fr15 test_grs_a5a5test_infp: # Test positive infinity fldi0 fr11 mov.l infp, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be plus infinity assert_fpreg_x 0x7f800000, fr11test_infm: # Test negitive infinity fldi0 fr11 mov.l infm, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be plus infinity assert_fpreg_x 0xff800000, fr11test_qnanp: # Test positive qnan fldi0 fr11 mov.l qnanp, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be plus qnan (or greater) flds fr11, fpul sts fpul, r1 cmp/ge r0, r1 bt .L0 fail.L0:test_snanp: # Test positive snan fldi0 fr11 mov.l snanp, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be plus snan (or greater) flds fr11, fpul sts fpul, r1 cmp/ge r0, r1 bt .L1 fail.L1:.if 0 # Handling of nan and inf not implemented yet.test_qnanm: # Test negantive qnan fldi0 fr11 mov.l qnanm, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be minus qnan (or less) flds fr11, fpul sts fpul, r1 cmp/ge r1, r0 bt .L2 fail.L2:test_snanm: # Test negative snan fldi0 fr11 mov.l snanm, r0 lds r0, fpul fsts fpul, fr0 fipr fv0, fv8 # fr11 should be minus snan (or less) flds fr11, fpul sts fpul, r1 cmp/ge r1, r0 bt .L3 fail.L3: .endif pass exit 0 .align 2qnanp: .long 0x7f800001qnanm: .long 0xff800001snanp: .long 0x7fc00000snanm: .long 0xffc00000infp: .long 0x7f800000infm: .long 0xff800000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -