nkeynes@393: .section .text nkeynes@393: .include "sh4/inc.s" nkeynes@393: nkeynes@393: .global _test_sub nkeynes@393: _test_sub: nkeynes@393: start_test nkeynes@393: nkeynes@393: test_sub_1: ! test subing 0+0 = 0 nkeynes@393: add #1, r12 nkeynes@393: xor r0,r0 nkeynes@393: xor r1,r1 nkeynes@393: xor r2,r2 nkeynes@393: sett nkeynes@393: sub r0,r1 nkeynes@393: bf test_sub_1_fail nkeynes@393: cmp/eq r1, r2 nkeynes@393: bt test_sub_2 nkeynes@393: test_sub_1_fail: nkeynes@393: fail test_sub_str_k nkeynes@393: nkeynes@393: test_sub_2: ! test 0+ constant 1 = 1 nkeynes@393: add #1, r12 nkeynes@393: xor r0, r0 nkeynes@393: xor r1, r1 nkeynes@393: mov.l test_sub_2_input, r0 nkeynes@393: mov.l test_sub_2_result, r2 nkeynes@393: clrt nkeynes@393: sub r0, r1 nkeynes@393: bt test_sub_2_fail nkeynes@393: cmp/eq r1, r2 nkeynes@393: bt test_sub_3 nkeynes@393: test_sub_2_fail: nkeynes@393: fail test_sub_str_k nkeynes@393: bra test_sub_3 nkeynes@393: nop nkeynes@393: nkeynes@393: .align 4 nkeynes@393: test_sub_2_input: nkeynes@393: .long 0x00000001 nkeynes@393: test_sub_2_result: nkeynes@393: .long 0xFFFFFFFF nkeynes@393: nkeynes@393: test_sub_3: ! test 0 + constant -1 = -1 nkeynes@393: add #1, r12 nkeynes@393: mov.l test_sub_3_input_1, r0 nkeynes@393: mov r0, r1 nkeynes@393: mov.l test_sub_3_input_2, r1 nkeynes@393: sett nkeynes@393: sub r0, r1 nkeynes@393: bf test_sub_3_fail nkeynes@393: mov.l test_sub_3_result, r2 nkeynes@393: cmp/eq r1, r2 nkeynes@393: bt test_sub_4 nkeynes@393: test_sub_3_fail: nkeynes@393: fail test_sub_str_k nkeynes@393: bra test_sub_4 nkeynes@393: nop nkeynes@393: nkeynes@393: .align 4 nkeynes@393: test_sub_3_input_1: nkeynes@393: .long 0xFFFFFF84 nkeynes@393: test_sub_3_input_2: nkeynes@393: .long 0x43217000 nkeynes@393: test_sub_3_result: nkeynes@393: .long 0x4321707C nkeynes@393: nkeynes@393: test_sub_4: ! Test 0 result nkeynes@393: add #1, r12 nkeynes@393: mov.l test_sub_4_op1, r2 nkeynes@393: mov.l test_sub_4_op2, r1 nkeynes@393: mov r2, r3 nkeynes@393: sub r1, r3 nkeynes@393: mov.l test_sub_4_result_1, r0 nkeynes@393: cmp/eq r0, r3 nkeynes@393: bf test_sub_4_fail nkeynes@393: mov r2, r3 nkeynes@393: sub r3, r1 nkeynes@393: mov.l test_sub_4_result_2, r2 nkeynes@393: cmp/eq r1, r2 nkeynes@393: bt test_sub_5 nkeynes@393: test_sub_4_fail: nkeynes@393: fail test_sub_str_k nkeynes@393: bra test_sub_5 nkeynes@393: nop nkeynes@393: test_sub_4_op1: nkeynes@393: .long 0x00000001 nkeynes@393: test_sub_4_op2: nkeynes@393: .long 0xFFFFFFFF nkeynes@393: test_sub_4_result_1: nkeynes@393: .long 0x00000002 nkeynes@393: test_sub_4_result_2: nkeynes@393: .long 0xFFFFFFFE nkeynes@393: nkeynes@393: test_sub_5: nkeynes@393: add #1, r12 nkeynes@393: mov.l test_sub_5_op, r2 nkeynes@393: sett nkeynes@393: sub r2, r2 nkeynes@393: bf test_sub_5_fail nkeynes@393: tst r2, r2 nkeynes@393: bt test_sub_end nkeynes@393: test_sub_5_fail: nkeynes@393: fail test_sub_str_k nkeynes@393: bra test_sub_end nkeynes@393: nop nkeynes@393: nkeynes@393: test_sub_5_op: nkeynes@393: .long 0xABCD1234 nkeynes@393: nkeynes@393: test_sub_end: nkeynes@393: end_test test_sub_str_k nkeynes@393: nkeynes@393: test_sub_str: nkeynes@393: .string "SUB" nkeynes@393: nkeynes@393: .align 4 nkeynes@393: test_sub_str_k: nkeynes@393: .long test_sub_str nkeynes@393: