Search
lxdream.org :: lxdream/test/sh4/sub.s
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/sub.s
changeset 393:5e5335b61373
author nkeynes
date Fri Feb 08 00:06:56 2008 +0000 (16 years ago)
permissions -rw-r--r--
last change Fix LDS/STS to FPUL/FPSCR to check the FPU disabled bit. Fixes
the linux 2.4.0-test8 kernel boot
(this wasn't exactly very well documented in the original manual)
file annotate diff log raw
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
	
.