nkeynes@364: .section .text nkeynes@364: .include "sh4/inc.s" nkeynes@364: ! nkeynes@364: ! Test cmp/xx nkeynes@364: nkeynes@364: .global _test_cmpstr nkeynes@364: _test_cmpstr: nkeynes@364: start_test nkeynes@364: mov.l r11, @-r15 nkeynes@364: mov.l r10, @-r15 nkeynes@364: nkeynes@364: test_cmpstr_1: ! CMP/STR r2,r2 nkeynes@364: add #1, r12 nkeynes@364: mova test_cmpstr_str, r0 nkeynes@364: cmp/str r0, r0 nkeynes@364: bt test_cmpstr_2 nkeynes@364: fail test_cmpstr_str_k nkeynes@364: nkeynes@364: test_cmpstr_2: nkeynes@364: mova test_cmpstr_data, r0 nkeynes@364: mov r0, r11 nkeynes@364: mov #6, r10 nkeynes@364: nkeynes@364: test_cmpstr_2_loop: nkeynes@364: add #1, r12 nkeynes@364: mov.l @r11+, r2 nkeynes@364: mov.l @r11+, r3 nkeynes@364: mov.l @r11+, r4 nkeynes@364: cmp/str r2, r3 nkeynes@364: movt r0 nkeynes@364: cmp/eq r0, r4 nkeynes@364: bt test_cmpstr_2_ok nkeynes@364: fail test_cmpstr_str_k nkeynes@364: test_cmpstr_2_ok: nkeynes@364: dt r10 nkeynes@364: bf test_cmpstr_2_loop nkeynes@364: nkeynes@364: test_cmpstr_end: nkeynes@364: mov.l @r15+, r10 nkeynes@364: mov.l @r15+, r11 nkeynes@364: end_test test_cmpstr_str_k nkeynes@364: nkeynes@364: test_cmpstr_data: nkeynes@364: .long 0x81828384 nkeynes@364: .long 0x82838485 nkeynes@364: .long 0x00000000 nkeynes@364: nkeynes@364: .long 0x01040302 nkeynes@364: .long 0x02010304 nkeynes@364: .long 0x00000001 nkeynes@364: nkeynes@364: .long 0xAA55AA55 nkeynes@364: .long 0x55AA55AA nkeynes@364: .long 0x00000000 nkeynes@364: nkeynes@364: .long 0x12345678 nkeynes@364: .long 0x12345678 nkeynes@364: .long 0x00000001 nkeynes@364: nkeynes@364: .long 0xABCD01DC nkeynes@364: .long 0xABCD01DD nkeynes@364: .long 0x00000001 nkeynes@364: nkeynes@364: .long 0x12003423 nkeynes@364: .long 0x12342300 nkeynes@364: .long 0x00000001 nkeynes@364: nkeynes@364: test_cmpstr_str_k: nkeynes@364: .long test_cmpstr_str nkeynes@364: test_cmpstr_str: nkeynes@364: .string "CMP/STR" nkeynes@364: