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