nkeynes@393 | 1 | .section .text
|
nkeynes@393 | 2 | .include "sh4/inc.s"
|
nkeynes@393 | 3 |
|
nkeynes@393 | 4 | .global _test_sub
|
nkeynes@393 | 5 | _test_sub:
|
nkeynes@393 | 6 | start_test
|
nkeynes@393 | 7 |
|
nkeynes@393 | 8 | test_sub_1: ! test subing 0+0 = 0
|
nkeynes@393 | 9 | add #1, r12
|
nkeynes@393 | 10 | xor r0,r0
|
nkeynes@393 | 11 | xor r1,r1
|
nkeynes@393 | 12 | xor r2,r2
|
nkeynes@393 | 13 | sett
|
nkeynes@393 | 14 | sub r0,r1
|
nkeynes@393 | 15 | bf test_sub_1_fail
|
nkeynes@393 | 16 | cmp/eq r1, r2
|
nkeynes@393 | 17 | bt test_sub_2
|
nkeynes@393 | 18 | test_sub_1_fail:
|
nkeynes@393 | 19 | fail test_sub_str_k
|
nkeynes@393 | 20 |
|
nkeynes@393 | 21 | test_sub_2: ! test 0+ constant 1 = 1
|
nkeynes@393 | 22 | add #1, r12
|
nkeynes@393 | 23 | xor r0, r0
|
nkeynes@393 | 24 | xor r1, r1
|
nkeynes@393 | 25 | mov.l test_sub_2_input, r0
|
nkeynes@393 | 26 | mov.l test_sub_2_result, r2
|
nkeynes@393 | 27 | clrt
|
nkeynes@393 | 28 | sub r0, r1
|
nkeynes@393 | 29 | bt test_sub_2_fail
|
nkeynes@393 | 30 | cmp/eq r1, r2
|
nkeynes@393 | 31 | bt test_sub_3
|
nkeynes@393 | 32 | test_sub_2_fail:
|
nkeynes@393 | 33 | fail test_sub_str_k
|
nkeynes@393 | 34 | bra test_sub_3
|
nkeynes@393 | 35 | nop
|
nkeynes@393 | 36 |
|
nkeynes@393 | 37 | .align 4
|
nkeynes@393 | 38 | test_sub_2_input:
|
nkeynes@393 | 39 | .long 0x00000001
|
nkeynes@393 | 40 | test_sub_2_result:
|
nkeynes@393 | 41 | .long 0xFFFFFFFF
|
nkeynes@393 | 42 |
|
nkeynes@393 | 43 | test_sub_3: ! test 0 + constant -1 = -1
|
nkeynes@393 | 44 | add #1, r12
|
nkeynes@393 | 45 | mov.l test_sub_3_input_1, r0
|
nkeynes@393 | 46 | mov r0, r1
|
nkeynes@393 | 47 | mov.l test_sub_3_input_2, r1
|
nkeynes@393 | 48 | sett
|
nkeynes@393 | 49 | sub r0, r1
|
nkeynes@393 | 50 | bf test_sub_3_fail
|
nkeynes@393 | 51 | mov.l test_sub_3_result, r2
|
nkeynes@393 | 52 | cmp/eq r1, r2
|
nkeynes@393 | 53 | bt test_sub_4
|
nkeynes@393 | 54 | test_sub_3_fail:
|
nkeynes@393 | 55 | fail test_sub_str_k
|
nkeynes@393 | 56 | bra test_sub_4
|
nkeynes@393 | 57 | nop
|
nkeynes@393 | 58 |
|
nkeynes@393 | 59 | .align 4
|
nkeynes@393 | 60 | test_sub_3_input_1:
|
nkeynes@393 | 61 | .long 0xFFFFFF84
|
nkeynes@393 | 62 | test_sub_3_input_2:
|
nkeynes@393 | 63 | .long 0x43217000
|
nkeynes@393 | 64 | test_sub_3_result:
|
nkeynes@393 | 65 | .long 0x4321707C
|
nkeynes@393 | 66 |
|
nkeynes@393 | 67 | test_sub_4: ! Test 0 result
|
nkeynes@393 | 68 | add #1, r12
|
nkeynes@393 | 69 | mov.l test_sub_4_op1, r2
|
nkeynes@393 | 70 | mov.l test_sub_4_op2, r1
|
nkeynes@393 | 71 | mov r2, r3
|
nkeynes@393 | 72 | sub r1, r3
|
nkeynes@393 | 73 | mov.l test_sub_4_result_1, r0
|
nkeynes@393 | 74 | cmp/eq r0, r3
|
nkeynes@393 | 75 | bf test_sub_4_fail
|
nkeynes@393 | 76 | mov r2, r3
|
nkeynes@393 | 77 | sub r3, r1
|
nkeynes@393 | 78 | mov.l test_sub_4_result_2, r2
|
nkeynes@393 | 79 | cmp/eq r1, r2
|
nkeynes@393 | 80 | bt test_sub_5
|
nkeynes@393 | 81 | test_sub_4_fail:
|
nkeynes@393 | 82 | fail test_sub_str_k
|
nkeynes@393 | 83 | bra test_sub_5
|
nkeynes@393 | 84 | nop
|
nkeynes@393 | 85 | test_sub_4_op1:
|
nkeynes@393 | 86 | .long 0x00000001
|
nkeynes@393 | 87 | test_sub_4_op2:
|
nkeynes@393 | 88 | .long 0xFFFFFFFF
|
nkeynes@393 | 89 | test_sub_4_result_1:
|
nkeynes@393 | 90 | .long 0x00000002
|
nkeynes@393 | 91 | test_sub_4_result_2:
|
nkeynes@393 | 92 | .long 0xFFFFFFFE
|
nkeynes@393 | 93 |
|
nkeynes@393 | 94 | test_sub_5:
|
nkeynes@393 | 95 | add #1, r12
|
nkeynes@393 | 96 | mov.l test_sub_5_op, r2
|
nkeynes@393 | 97 | sett
|
nkeynes@393 | 98 | sub r2, r2
|
nkeynes@393 | 99 | bf test_sub_5_fail
|
nkeynes@393 | 100 | tst r2, r2
|
nkeynes@393 | 101 | bt test_sub_end
|
nkeynes@393 | 102 | test_sub_5_fail:
|
nkeynes@393 | 103 | fail test_sub_str_k
|
nkeynes@393 | 104 | bra test_sub_end
|
nkeynes@393 | 105 | nop
|
nkeynes@393 | 106 |
|
nkeynes@393 | 107 | test_sub_5_op:
|
nkeynes@393 | 108 | .long 0xABCD1234
|
nkeynes@393 | 109 |
|
nkeynes@393 | 110 | test_sub_end:
|
nkeynes@393 | 111 | end_test test_sub_str_k
|
nkeynes@393 | 112 |
|
nkeynes@393 | 113 | test_sub_str:
|
nkeynes@393 | 114 | .string "SUB"
|
nkeynes@393 | 115 |
|
nkeynes@393 | 116 | .align 4
|
nkeynes@393 | 117 | test_sub_str_k:
|
nkeynes@393 | 118 | .long test_sub_str
|
nkeynes@393 | 119 | |