Home | History | Annotate | Line # | Download | only in iwmmxt
      1  1.1  christos # Intel(r) Wireless MMX(tm) technology testcase for WSLL
      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 wsll
     10  1.1  christos wsll:
     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 Halfword Logical Shift Left
     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, 0x11111104
     22  1.1  christos 	mvi_h_gr   r3, 0x11111111
     23  1.1  christos 	mvi_h_gr   r4, 0
     24  1.1  christos 	mvi_h_gr   r5, 0
     25  1.1  christos 
     26  1.1  christos 	tmcrr	   wr0, r0, r1
     27  1.1  christos 	tmcrr	   wr1, r2, r3
     28  1.1  christos 	tmcrr	   wr2, r4, r5
     29  1.1  christos 
     30  1.1  christos 	wsllh      wr2, wr0, wr1
     31  1.1  christos 	
     32  1.1  christos 	tmrrc	   r0, r1, wr0
     33  1.1  christos 	tmrrc	   r2, r3, wr1
     34  1.1  christos 	tmrrc	   r4, r5, wr2
     35  1.1  christos 	
     36  1.1  christos 	test_h_gr  r0, 0x12345678
     37  1.1  christos 	test_h_gr  r1, 0x9abcdef0
     38  1.1  christos 	test_h_gr  r2, 0x11111104
     39  1.1  christos 	test_h_gr  r3, 0x11111111
     40  1.1  christos 	test_h_gr  r4, 0x23406780
     41  1.1  christos 	test_h_gr  r5, 0xabc0ef00
     42  1.1  christos 		
     43  1.1  christos 	# Test Halfword Aritc Shift Left by CG register
     44  1.1  christos 		
     45  1.1  christos 	mvi_h_gr   r0, 0x12345678
     46  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     47  1.1  christos 	mvi_h_gr   r2, 0x11111104
     48  1.1  christos 	mvi_h_gr   r3, 0
     49  1.1  christos 	mvi_h_gr   r4, 0
     50  1.1  christos 
     51  1.1  christos 	tmcrr	   wr0,   r0, r1
     52  1.1  christos 	tmcr	   wcgr1, r2
     53  1.1  christos 	tmcrr	   wr1,   r3, r4
     54  1.1  christos 
     55  1.1  christos 	wsllhg     wr1, wr0, wcgr1
     56  1.1  christos 	
     57  1.1  christos 	tmrrc	   r0, r1, wr0
     58  1.1  christos 	tmrc	   r2, wcgr1
     59  1.1  christos 	tmrrc	   r3, r4, wr1
     60  1.1  christos 	
     61  1.1  christos 	test_h_gr  r0, 0x12345678
     62  1.1  christos 	test_h_gr  r1, 0x9abcdef0
     63  1.1  christos 	test_h_gr  r2, 0x11111104
     64  1.1  christos 	test_h_gr  r3, 0x23406780
     65  1.1  christos 	test_h_gr  r4, 0xabc0ef00
     66  1.1  christos 		
     67  1.1  christos 	# Test Word Logical Shift Left
     68  1.1  christos 		
     69  1.1  christos 	mvi_h_gr   r0, 0x12345678
     70  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     71  1.1  christos 	mvi_h_gr   r2, 0x11111104
     72  1.1  christos 	mvi_h_gr   r3, 0x11111111
     73  1.1  christos 	mvi_h_gr   r4, 0
     74  1.1  christos 	mvi_h_gr   r5, 0
     75  1.1  christos 
     76  1.1  christos 	tmcrr	   wr0, r0, r1
     77  1.1  christos 	tmcrr	   wr1, r2, r3
     78  1.1  christos 	tmcrr	   wr2, r4, r5
     79  1.1  christos 
     80  1.1  christos 	wsllw      wr2, wr0, wr1
     81  1.1  christos 	
     82  1.1  christos 	tmrrc	   r0, r1, wr0
     83  1.1  christos 	tmrrc	   r2, r3, wr1
     84  1.1  christos 	tmrrc	   r4, r5, wr2
     85  1.1  christos 	
     86  1.1  christos 	test_h_gr  r0, 0x12345678
     87  1.1  christos 	test_h_gr  r1, 0x9abcdef0
     88  1.1  christos 	test_h_gr  r2, 0x11111104
     89  1.1  christos 	test_h_gr  r3, 0x11111111
     90  1.1  christos 	test_h_gr  r4, 0x23456780
     91  1.1  christos 	test_h_gr  r5, 0xabcdef00
     92  1.1  christos 		
     93  1.1  christos 	# Test Word Logical Shift Left by CG register
     94  1.1  christos 		
     95  1.1  christos 	mvi_h_gr   r0, 0x12345678
     96  1.1  christos 	mvi_h_gr   r1, 0x9abcdef0
     97  1.1  christos 	mvi_h_gr   r2, 0x11111104
     98  1.1  christos 	mvi_h_gr   r3, 0
     99  1.1  christos 	mvi_h_gr   r4, 0
    100  1.1  christos 
    101  1.1  christos 	tmcrr	   wr0,   r0, r1
    102  1.1  christos 	tmcr	   wcgr2, r2
    103  1.1  christos 	tmcrr	   wr1,   r3, r4
    104  1.1  christos 
    105  1.1  christos 	wsllwg     wr1, wr0, wcgr2
    106  1.1  christos 	
    107  1.1  christos 	tmrrc	   r0, r1, wr0
    108  1.1  christos 	tmrc	   r2, wcgr2
    109  1.1  christos 	tmrrc	   r3, r4, wr1
    110  1.1  christos 	
    111  1.1  christos 	test_h_gr  r0, 0x12345678
    112  1.1  christos 	test_h_gr  r1, 0x9abcdef0
    113  1.1  christos 	test_h_gr  r2, 0x11111104
    114  1.1  christos 	test_h_gr  r3, 0x23456780
    115  1.1  christos 	test_h_gr  r4, 0xabcdef00
    116  1.1  christos 		
    117  1.1  christos 	# Test Double Word Logical Shift Left
    118  1.1  christos 		
    119  1.1  christos 	mvi_h_gr   r0, 0x12345678
    120  1.1  christos 	mvi_h_gr   r1, 0x9abcdefc
    121  1.1  christos 	mvi_h_gr   r2, 0x11111104
    122  1.1  christos 	mvi_h_gr   r3, 0x11111111
    123  1.1  christos 	mvi_h_gr   r4, 0
    124  1.1  christos 	mvi_h_gr   r5, 0
    125  1.1  christos 
    126  1.1  christos 	tmcrr	   wr0, r0, r1
    127  1.1  christos 	tmcrr	   wr1, r2, r3
    128  1.1  christos 	tmcrr	   wr2, r4, r5
    129  1.1  christos 
    130  1.1  christos 	wslld      wr2, wr0, wr1
    131  1.1  christos 	
    132  1.1  christos 	tmrrc	   r0, r1, wr0
    133  1.1  christos 	tmrrc	   r2, r3, wr1
    134  1.1  christos 	tmrrc	   r4, r5, wr2
    135  1.1  christos 	
    136  1.1  christos 	test_h_gr  r0, 0x12345678
    137  1.1  christos 	test_h_gr  r1, 0x9abcdefc
    138  1.1  christos 	test_h_gr  r2, 0x11111104
    139  1.1  christos 	test_h_gr  r3, 0x11111111
    140  1.1  christos 	test_h_gr  r4, 0x23456780
    141  1.1  christos 	test_h_gr  r5, 0xabcdefc1
    142  1.1  christos 		
    143  1.1  christos 	# Test Double Word Logical Shift Left by CG register
    144  1.1  christos 		
    145  1.1  christos 	mvi_h_gr   r0, 0x12345678
    146  1.1  christos 	mvi_h_gr   r1, 0x9abcdefc
    147  1.1  christos 	mvi_h_gr   r2, 0x11111104
    148  1.1  christos 	mvi_h_gr   r3, 0
    149  1.1  christos 	mvi_h_gr   r4, 0
    150  1.1  christos 
    151  1.1  christos 	tmcrr	   wr0,   r0, r1
    152  1.1  christos 	tmcr	   wcgr3, r2
    153  1.1  christos 	tmcrr	   wr1,   r3, r4
    154  1.1  christos 
    155  1.1  christos 	wslldg     wr1, wr0, wcgr3
    156  1.1  christos 	
    157  1.1  christos 	tmrrc	   r0, r1, wr0
    158  1.1  christos 	tmrc	   r2, wcgr3
    159  1.1  christos 	tmrrc	   r3, r4, wr1
    160  1.1  christos 	
    161  1.1  christos 	test_h_gr  r0, 0x12345678
    162  1.1  christos 	test_h_gr  r1, 0x9abcdefc
    163  1.1  christos 	test_h_gr  r2, 0x11111104
    164  1.1  christos 	test_h_gr  r3, 0x23456780
    165  1.1  christos 	test_h_gr  r4, 0xabcdefc1
    166  1.1  christos 		
    167  1.1  christos 	pass
    168