filename | test/sh4/bsr.s |
changeset | 404:c5ed3c8642a2 |
author | nkeynes |
date | Thu Dec 23 17:50:10 2010 +1000 (13 years ago) |
permissions | -rw-r--r-- |
last change | Clone iso_memory_stream_new() as iso_mem_stream_new(), since current versions of libisofs have made it unlinkable on linux |
file | annotate | diff | log | raw |
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +00001.2 +++ b/test/sh4/bsr.s Thu Dec 23 17:50:10 2010 +10001.3 @@ -0,0 +1,99 @@1.4 +.section .text1.5 +.include "sh4/inc.s"1.6 +!1.7 +1.8 +.global _test_bsr1.9 +_test_bsr:1.10 + start_test1.11 + mov.l r11, @-r151.12 +1.13 +test_bsr_1: ! Ordinary case1.14 + add #1, r121.15 + sts pr, r111.16 + mova test_bsr_1_fail, r01.17 + mov r0, r51.18 + xor r1, r11.19 + bsr test_bsr_1_target1.20 + add #1, r11.21 +test_bsr_1_fail:1.22 + fail test_bsr_str_k1.23 + bra test_bsr_21.24 + nop1.25 +test_bsr_1_target:1.26 + sts pr, r31.27 + cmp/eq r5,r31.28 + bf test_bsr_1_fail1.29 + mov #1, r21.30 + cmp/eq r1, r21.31 + bf test_bsr_1_fail1.32 +1.33 +test_bsr_2: ! Write PR in delay slot1.34 + add #1, r121.35 +1.36 + bsr test_bsr_2_target1.37 + lds r11, pr1.38 +test_bsr_2_fail:1.39 + fail test_bsr_str_k1.40 + bra test_bsr_31.41 + nop1.42 +test_bsr_2_target:1.43 + sts pr, r41.44 + cmp/eq r4,r111.45 + bf test_bsr_2_fail1.46 +1.47 +test_bsr_3: ! Read PR in delay slot1.48 + add #1, r121.49 +1.50 + mova test_bsr_3_fail, r01.51 + mov r0, r51.52 + bsr test_bsr_3_target1.53 + sts pr, r21.54 +test_bsr_3_fail:1.55 + fail test_bsr_str_k1.56 + bra test_bsr_41.57 +test_bsr_3_target:1.58 + cmp/eq r2, r51.59 + bf test_bsr_3_fail1.60 + sts pr, r31.61 + cmp/eq r3, r51.62 + bf test_bsr_3_fail1.63 +1.64 +test_bsr_4: ! Exception in delay slot1.65 + add #1, r121.66 +1.67 + mova test_bsr_4_fail, r01.68 + add #1, r01.69 + expect_exc 0x000001A01.70 + mova test_bsr_4_rte, r01.71 + mov r0, r111.72 +test_bsr_4_fault_pc:1.73 + bsr test_bsr_4_fail1.74 + bt test_bsr_4_rte1.75 +test_bsr_4_rte:1.76 + sts pr, r11.77 + cmp/eq r1, r111.78 + bf test_bsr_4_fail1.79 + assert_exc_caught test_bsr_str_k test_bsr_4_fault_pc1.80 + bra test_bsr_51.81 + nop1.82 +test_bsr_4_fail:1.83 + fail test_bsr_str_k1.84 +1.85 +test_bsr_5:1.86 +1.87 +test_bsr_end:1.88 + mov.l @r15+, r111.89 + end_test test_bsr_str_k1.90 +1.91 +! Branch point used for tests that should never be reached (under correct1.92 +! operation. Returns immediately, which should hit the "no exception" test1.93 +test_bsr_fail:1.94 + rts1.95 + nop1.96 +1.97 +test_bsr_str_k:1.98 + .long test_bsr_str1.99 +test_bsr_str:1.100 + .string "BSR"1.101 +1.102 +1.103 \ No newline at end of file
.