Home | History | Annotate | Line # | Download | only in iwmmxt
      1  1.1  christos # Intel(r) Wireless MMX(tm) technology testcase for WALIGNR
      2  1.1  christos # mach: xscale
      3  1.1  christos # as: -mcpu=xscale+iwmmxt
      4  1.1  christos 
      5  1.1  christos 	.include "testutils.inc"
      6  1.1  christos 
      7  1.1  christos 	start
      8  1.1  christos 
      9  1.1  christos 	.global walignr
     10  1.1  christos walignr:
     11  1.1  christos 	# Enable access to CoProcessors 0 & 1 before
     12  1.1  christos         # we attempt these instructions.
     13  1.1  christos 
     14  1.1  christos 	mvi_h_gr   r1, 3
     15  1.1  christos 	mcr        p15, 0, r1, cr15, cr1, 0
     16  1.1  christos 
     17  1.1  christos 	# Test 0 byte align
     18  1.1  christos 	
     19  1.1  christos 	mvi_h_gr   r0, 0x12345678
     20  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     21  1.1  christos 	mvi_h_gr   r2, 0x11111111
     22  1.1  christos 	mvi_h_gr   r3, 0x00000000
     23  1.1  christos 	mvi_h_gr   r4, 0
     24  1.1  christos 	mvi_h_gr   r5, 0
     25  1.1  christos 	mvi_h_gr   r6, 3
     26  1.1  christos 
     27  1.1  christos 	tmcrr	   wr0, r0, r1
     28  1.1  christos 	tmcrr	   wr1, r2, r3
     29  1.1  christos 	tmcrr	   wr2, r4, r5
     30  1.1  christos 	tmcr	   wcgr0, r6
     31  1.1  christos 
     32  1.1  christos 	walignr0   wr2, wr0, wr1
     33  1.1  christos 	
     34  1.1  christos 	tmrrc	   r0, r1, wr0
     35  1.1  christos 	tmrrc	   r2, r3, wr1
     36  1.1  christos 	tmrrc	   r4, r5, wr2
     37  1.1  christos 	tmrc	   r6, wcgr0
     38  1.1  christos 	
     39  1.1  christos 	test_h_gr  r0, 0x12345678
     40  1.1  christos 	test_h_gr  r1, 0x9abcdef0
     41  1.1  christos 	test_h_gr  r2, 0x11111111
     42  1.1  christos 	test_h_gr  r3, 0x00000000
     43  1.1  christos 	test_h_gr  r4, 0xbcdef012
     44  1.1  christos 	test_h_gr  r5, 0x1111119a
     45  1.1  christos 	test_h_gr  r6, 3
     46  1.1  christos 
     47  1.1  christos 	# Test 1 byte align
     48  1.1  christos 	
     49  1.1  christos 	mvi_h_gr   r0, 0x12345678
     50  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     51  1.1  christos 	mvi_h_gr   r2, 0x11111111
     52  1.1  christos 	mvi_h_gr   r3, 0x00000000
     53  1.1  christos 	mvi_h_gr   r4, 0
     54  1.1  christos 	mvi_h_gr   r5, 0
     55  1.1  christos 	mvi_h_gr   r6, 4
     56  1.1  christos 
     57  1.1  christos 	tmcrr	   wr0, r0, r1
     58  1.1  christos 	tmcrr	   wr1, r2, r3
     59  1.1  christos 	tmcrr	   wr2, r4, r5
     60  1.1  christos 	tmcr	   wcgr1, r6
     61  1.1  christos 
     62  1.1  christos 	walignr1   wr2, wr0, wr1
     63  1.1  christos 	
     64  1.1  christos 	tmrrc	   r0, r1, wr0
     65  1.1  christos 	tmrrc	   r2, r3, wr1
     66  1.1  christos 	tmrrc	   r4, r5, wr2
     67  1.1  christos 	tmrc	   r6, wcgr1
     68  1.1  christos 	
     69  1.1  christos 	test_h_gr  r0, 0x12345678
     70  1.1  christos 	test_h_gr  r1, 0x9abcdef0
     71  1.1  christos 	test_h_gr  r2, 0x11111111
     72  1.1  christos 	test_h_gr  r3, 0x00000000
     73  1.1  christos 	test_h_gr  r4, 0x9abcdef0
     74  1.1  christos 	test_h_gr  r5, 0x11111111
     75  1.1  christos 	test_h_gr  r6, 4
     76  1.1  christos 
     77  1.1  christos 	# Test 2 byte align
     78  1.1  christos 	
     79  1.1  christos 	mvi_h_gr   r0, 0x12345678
     80  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     81  1.1  christos 	mvi_h_gr   r2, 0x11111111
     82  1.1  christos 	mvi_h_gr   r3, 0x00000000
     83  1.1  christos 	mvi_h_gr   r4, 0
     84  1.1  christos 	mvi_h_gr   r5, 0
     85  1.1  christos 	mvi_h_gr   r6, 2
     86  1.1  christos 
     87  1.1  christos 	tmcrr	   wr0, r0, r1
     88  1.1  christos 	tmcrr	   wr1, r2, r3
     89  1.1  christos 	tmcrr	   wr2, r4, r5
     90  1.1  christos 	tmcr	   wcgr2, r6
     91  1.1  christos 
     92  1.1  christos 	walignr2   wr2, wr0, wr1
     93  1.1  christos 	
     94  1.1  christos 	tmrrc	   r0, r1, wr0
     95  1.1  christos 	tmrrc	   r2, r3, wr1
     96  1.1  christos 	tmrrc	   r4, r5, wr2
     97  1.1  christos 	tmrc	   r6, wcgr2
     98  1.1  christos 	
     99  1.1  christos 	test_h_gr  r0, 0x12345678
    100  1.1  christos 	test_h_gr  r1, 0x9abcdef0
    101  1.1  christos 	test_h_gr  r2, 0x11111111
    102  1.1  christos 	test_h_gr  r3, 0x00000000
    103  1.1  christos 	test_h_gr  r4, 0xdef01234
    104  1.1  christos 	test_h_gr  r5, 0x11119abc
    105  1.1  christos 	test_h_gr  r6, 2
    106  1.1  christos 
    107  1.1  christos 	# Test 3 byte align
    108  1.1  christos 	
    109  1.1  christos 	mvi_h_gr   r0, 0x12345678
    110  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
    111  1.1  christos 	mvi_h_gr   r2, 0x11111111
    112  1.1  christos 	mvi_h_gr   r3, 0x00000000
    113  1.1  christos 	mvi_h_gr   r4, 0
    114  1.1  christos 	mvi_h_gr   r5, 0
    115  1.1  christos 	mvi_h_gr   r6, 5
    116  1.1  christos 
    117  1.1  christos 	tmcrr	   wr0, r0, r1
    118  1.1  christos 	tmcrr	   wr1, r2, r3
    119  1.1  christos 	tmcrr	   wr2, r4, r5
    120  1.1  christos 	tmcr	   wcgr3, r6
    121  1.1  christos 
    122  1.1  christos 	walignr3   wr2, wr0, wr1
    123  1.1  christos 	
    124  1.1  christos 	tmrrc	   r0, r1, wr0
    125  1.1  christos 	tmrrc	   r2, r3, wr1
    126  1.1  christos 	tmrrc	   r4, r5, wr2
    127  1.1  christos 	tmrc	   r6, wcgr3
    128  1.1  christos 	
    129  1.1  christos 	test_h_gr  r0, 0x12345678
    130  1.1  christos 	test_h_gr  r1, 0x9abcdef0
    131  1.1  christos 	test_h_gr  r2, 0x11111111
    132  1.1  christos 	test_h_gr  r3, 0x00000000
    133  1.1  christos 	test_h_gr  r4, 0x119abcde
    134  1.1  christos 	test_h_gr  r5, 0x00111111
    135  1.1  christos 	test_h_gr  r6, 5
    136  1.1  christos 
    137  1.1  christos 	pass
    138