Search
lxdream.org :: lxdream/test/sh4/div1.s
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/div1.s
changeset 384:c9d5c194984b
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@384
     1
.section .text
nkeynes@384
     2
.include "sh4/inc.s"
nkeynes@384
     3
!
nkeynes@384
     4
! Test DIV1 operation
nkeynes@384
     5
!
nkeynes@384
     6
.global _test_div1
nkeynes@384
     7
_test_div1:
nkeynes@384
     8
	start_test
nkeynes@384
     9
	mov.l r11, @-r15
nkeynes@384
    10
	mov.l r10, @-r15
nkeynes@384
    11
nkeynes@384
    12
	mova test_div1_data, r0
nkeynes@384
    13
	mov r0, r11
nkeynes@384
    14
	mov #12, r10	
nkeynes@384
    15
test_div1_loop:	
nkeynes@384
    16
	add #1, r12
nkeynes@384
    17
	
nkeynes@384
    18
	mov.l @r11+, r4
nkeynes@384
    19
	mov.l @r11+, r5
nkeynes@384
    20
	mov.l @r11+, r6
nkeynes@384
    21
nkeynes@384
    22
	stc sr, r2
nkeynes@384
    23
	mov.l test_div1_sr_mask, r0
nkeynes@384
    24
	not r0, r1
nkeynes@384
    25
	and r1, r2
nkeynes@384
    26
	or r6, r2
nkeynes@384
    27
	ldc r2, sr
nkeynes@384
    28
	mov r4, r3
nkeynes@384
    29
	
nkeynes@384
    30
	div1 r4, r5
nkeynes@384
    31
nkeynes@384
    32
	stc sr, r2
nkeynes@384
    33
	and r0, r2
nkeynes@384
    34
	cmp/eq r3, r4
nkeynes@384
    35
	bf test_div1_fail
nkeynes@384
    36
	mov.l @r11+, r3
nkeynes@384
    37
	cmp/eq r3, r5
nkeynes@384
    38
	bf test_div1_fail
nkeynes@384
    39
	mov.l @r11+, r3
nkeynes@384
    40
	cmp/eq r3, r2
nkeynes@384
    41
	bt test_div1_next
nkeynes@384
    42
test_div1_fail:
nkeynes@384
    43
	fail test_div1_str_k
nkeynes@384
    44
nkeynes@384
    45
test_div1_next:	
nkeynes@384
    46
	dt r10
nkeynes@384
    47
	bf test_div1_loop	
nkeynes@384
    48
nkeynes@384
    49
test_div1_end:
nkeynes@384
    50
	mov.l @r15+, r10
nkeynes@384
    51
	mov.l @r15+, r11
nkeynes@384
    52
	end_test test_div1_str_k
nkeynes@384
    53
nkeynes@384
    54
test_div1_data:
nkeynes@384
    55
	.long 0x12345678
nkeynes@384
    56
	.long 0x01234123
nkeynes@384
    57
	.long 0x00000001
nkeynes@384
    58
	.long 0xF0122BCF
nkeynes@384
    59
	.long 0x00000100
nkeynes@384
    60
nkeynes@384
    61
	.long 0x11223344
nkeynes@384
    62
	.long 0xF0122BCF
nkeynes@384
    63
	.long 0x00000100
nkeynes@384
    64
	.long 0xF1468AE2
nkeynes@384
    65
	.long 0x00000100
nkeynes@384
    66
nkeynes@384
    67
	.long 0x20103040
nkeynes@384
    68
	.long 0xF1468AE2
nkeynes@384
    69
	.long 0x00000101
nkeynes@384
    70
	.long 0x029D4605
nkeynes@384
    71
	.long 0x00000001
nkeynes@384
    72
nkeynes@384
    73
	.long 0x01231231
nkeynes@384
    74
	.long 0x029D4605
nkeynes@384
    75
	.long 0x00000000
nkeynes@384
    76
	.long 0x041779D9
nkeynes@384
    77
	.long 0x00000001
nkeynes@384
    78
nkeynes@384
    79
	.long 0xF1234123
nkeynes@384
    80
	.long 0x13434454
nkeynes@384
    81
	.long 0x00000100
nkeynes@384
    82
	.long 0x17A9C9CB
nkeynes@384
    83
	.long 0x00000100
nkeynes@384
    84
nkeynes@384
    85
	.long 0x65432123
nkeynes@384
    86
	.long 0x12312312
nkeynes@384
    87
	.long 0x00000101
nkeynes@384
    88
	.long 0x89A56748
nkeynes@384
    89
	.long 0x00000001
nkeynes@384
    90
nkeynes@384
    91
! and now the m=1 cases
nkeynes@384
    92
	.long 0x12345678
nkeynes@384
    93
	.long 0x01234123
nkeynes@384
    94
	.long 0x00000301
nkeynes@384
    95
	.long 0xF0122BCF
nkeynes@384
    96
	.long 0x00000200
nkeynes@384
    97
nkeynes@384
    98
	.long 0x11223344
nkeynes@384
    99
	.long 0xF0122BCF
nkeynes@384
   100
	.long 0x00000200
nkeynes@384
   101
	.long 0xF1468AE2
nkeynes@384
   102
	.long 0x00000200
nkeynes@384
   103
nkeynes@384
   104
	.long 0x20103040
nkeynes@384
   105
	.long 0xF1468AE2
nkeynes@384
   106
	.long 0x00000201
nkeynes@384
   107
	.long 0x029D4605
nkeynes@384
   108
	.long 0x00000301
nkeynes@384
   109
nkeynes@384
   110
	.long 0x01231231
nkeynes@384
   111
	.long 0x029D4605
nkeynes@384
   112
	.long 0x00000300
nkeynes@384
   113
	.long 0x041779D9
nkeynes@384
   114
	.long 0x00000301
nkeynes@384
   115
nkeynes@384
   116
	.long 0xF1234123
nkeynes@384
   117
	.long 0x13434454
nkeynes@384
   118
	.long 0x00000200
nkeynes@384
   119
	.long 0x17A9C9CB
nkeynes@384
   120
	.long 0x00000200
nkeynes@384
   121
nkeynes@384
   122
	.long 0x65432123
nkeynes@384
   123
	.long 0x12312312
nkeynes@384
   124
	.long 0x00000201
nkeynes@384
   125
	.long 0x89A56748
nkeynes@384
   126
	.long 0x00000301
nkeynes@384
   127
	
nkeynes@384
   128
test_div1_data_end:
nkeynes@384
   129
	
nkeynes@384
   130
test_div1_sr_mask:
nkeynes@384
   131
	.long 0x00000301
nkeynes@384
   132
nkeynes@384
   133
test_div1_str_k:
nkeynes@384
   134
	.long test_div1_str
nkeynes@384
   135
test_div1_str:
nkeynes@384
   136
	.string "DIV1"
nkeynes@384
   137
	
.