Search
lxdream.org :: lxdream/test/sh4/tas.s
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/tas.s
changeset 399:23e51a2b4f99
author nkeynes
date Tue Nov 20 08:31:34 2007 +0000 (16 years ago)
permissions -rw-r--r--
last change Fix TRAPA (translator) and add test case
file annotate diff log raw
nkeynes@399
     1
.section .text
nkeynes@399
     2
.include "sh4/inc.s"
nkeynes@399
     3
nkeynes@399
     4
.global _test_tas
nkeynes@399
     5
_test_tas:
nkeynes@399
     6
	start_test
nkeynes@399
     7
	
nkeynes@399
     8
test_tas_1:
nkeynes@399
     9
	add #1, r12
nkeynes@399
    10
nkeynes@399
    11
	mova test_tas_1_data, r0  ! test with byte == 0
nkeynes@399
    12
	mov r0, r4
nkeynes@399
    13
	mov r4, r5
nkeynes@399
    14
	tas.b @r4
nkeynes@399
    15
	bf test_tas_1_fail
nkeynes@399
    16
	cmp/eq r4, r5
nkeynes@399
    17
	bf test_tas_1_fail
nkeynes@399
    18
	mov #0x40, r1
nkeynes@399
    19
	shll r1
nkeynes@399
    20
	mov.l test_tas_1_data, r3
nkeynes@399
    21
	cmp/eq r1, r3
nkeynes@399
    22
	bt test_tas_2
nkeynes@399
    23
nkeynes@399
    24
test_tas_1_fail:
nkeynes@399
    25
	fail test_tas_str_k
nkeynes@399
    26
	bra test_tas_2
nkeynes@399
    27
	nop
nkeynes@399
    28
test_tas_1_data:
nkeynes@399
    29
	.long 0x00000000
nkeynes@399
    30
	
nkeynes@399
    31
test_tas_2:	
nkeynes@399
    32
	add #1, r12
nkeynes@399
    33
nkeynes@399
    34
	mova test_tas_2_data, r0  ! test with byte == 0x80
nkeynes@399
    35
	mov r0, r4
nkeynes@399
    36
	mov r4, r5
nkeynes@399
    37
	tas.b @r4                  ! follow up test with byte == 0x00000080
nkeynes@399
    38
	bt test_tas_2_fail
nkeynes@399
    39
	cmp/eq r4, r5
nkeynes@399
    40
	bf test_tas_2_fail
nkeynes@399
    41
	mov.l @r4, r3
nkeynes@399
    42
	mov #0x40, r1
nkeynes@399
    43
	shll r1
nkeynes@399
    44
	cmp/eq r1, r3
nkeynes@399
    45
	bt test_tas_3
nkeynes@399
    46
test_tas_2_fail:
nkeynes@399
    47
	fail test_tas_str_k
nkeynes@399
    48
	bra test_tas_3
nkeynes@399
    49
	nop
nkeynes@399
    50
test_tas_2_data:
nkeynes@399
    51
	.long 0x00000080
nkeynes@399
    52
nkeynes@399
    53
test_tas_3:	 ! Test with byte = 0x45 (ensure existing bits aren't changed)
nkeynes@399
    54
	add #1, r12
nkeynes@399
    55
	mova test_tas_3_data, r0
nkeynes@399
    56
	mov r0, r4
nkeynes@399
    57
	mov.l test_tas_3_result, r1
nkeynes@399
    58
	mov r4, r5
nkeynes@399
    59
	tas.b @r4
nkeynes@399
    60
	bt test_tas_3_fail
nkeynes@399
    61
	cmp/eq r4,r5
nkeynes@399
    62
	bf test_tas_3_fail
nkeynes@399
    63
	mov.l test_tas_3_data, r3
nkeynes@399
    64
	cmp/eq r1, r3
nkeynes@399
    65
	bt test_tas_4
nkeynes@399
    66
	
nkeynes@399
    67
test_tas_3_fail:
nkeynes@399
    68
	fail test_tas_str_k
nkeynes@399
    69
	bra test_tas_4
nkeynes@399
    70
	nop
nkeynes@399
    71
test_tas_3_data:
nkeynes@399
    72
	.long 0x00000045
nkeynes@399
    73
test_tas_3_result:
nkeynes@399
    74
	.long 0x000000C5
nkeynes@399
    75
nkeynes@399
    76
test_tas_4:	 ! Test that it's really a byte op
nkeynes@399
    77
	add #1, r12
nkeynes@399
    78
	mova test_tas_4_data, r0
nkeynes@399
    79
	mov r0, r4
nkeynes@399
    80
	mov.l test_tas_4_result, r1
nkeynes@399
    81
	add #1, r4
nkeynes@399
    82
	mov r4, r5
nkeynes@399
    83
	tas.b @r4
nkeynes@399
    84
	bf test_tas_4_fail
nkeynes@399
    85
	cmp/eq r4, r5
nkeynes@399
    86
	mov.l test_tas_4_data, r3
nkeynes@399
    87
	cmp/eq r1, r3
nkeynes@399
    88
	bt test_tas_end
nkeynes@399
    89
test_tas_4_fail:
nkeynes@399
    90
	fail test_tas_str_k
nkeynes@399
    91
	bra test_tas_end
nkeynes@399
    92
	nop
nkeynes@399
    93
test_tas_4_data:
nkeynes@399
    94
	.long 0xAB9C00ED
nkeynes@399
    95
test_tas_4_result:
nkeynes@399
    96
	.long 0xAB9C80ED
nkeynes@399
    97
		
nkeynes@399
    98
test_tas_end:
nkeynes@399
    99
	end_test test_tas_str_k
nkeynes@399
   100
nkeynes@399
   101
test_tas_str:
nkeynes@399
   102
	.string "TAS"
nkeynes@399
   103
nkeynes@399
   104
.align 4	
nkeynes@399
   105
test_tas_str_k:	
nkeynes@399
   106
	.long test_tas_str
nkeynes@399
   107
	
.