Parent Directory | Revision Log
0.3.1
1 | dpavlin | 2 | /* |
2 | * $Id: test_clo_clz.S,v 1.1 2004/08/22 21:51:32 debug Exp $ | ||
3 | * | ||
4 | * Instructions: 'clo' (32-bit count leading ones) | ||
5 | * and 'clz' (32-bit count leading zeroes) | ||
6 | */ | ||
7 | |||
8 | .rdata | ||
9 | .align 3 | ||
10 | $NL: .ascii "\n" | ||
11 | |||
12 | .text | ||
13 | .align 4 | ||
14 | .globl testmain | ||
15 | .ent testmain | ||
16 | testmain: | ||
17 | /* Save the return address: */ | ||
18 | addiu $29,$29,-16 | ||
19 | sd $31,0($29) | ||
20 | |||
21 | |||
22 | li $6, 0x0 | ||
23 | clo $4, $6 | ||
24 | addiu $5, $0, 8 | ||
25 | jal printhex | ||
26 | dla $4, $NL | ||
27 | jal printstr | ||
28 | |||
29 | |||
30 | li $6, 0x1 | ||
31 | clo $4, $6 | ||
32 | addiu $5, $0, 8 | ||
33 | jal printhex | ||
34 | dla $4, $NL | ||
35 | jal printstr | ||
36 | |||
37 | |||
38 | li $6, 0x1234 | ||
39 | clo $4, $6 | ||
40 | addiu $5, $0, 8 | ||
41 | jal printhex | ||
42 | dla $4, $NL | ||
43 | jal printstr | ||
44 | |||
45 | |||
46 | li $6, 0x12345678 | ||
47 | clo $4, $6 | ||
48 | addiu $5, $0, 8 | ||
49 | jal printhex | ||
50 | dla $4, $NL | ||
51 | jal printstr | ||
52 | |||
53 | |||
54 | li $6, 0x87654321 | ||
55 | clo $4, $6 | ||
56 | addiu $5, $0, 8 | ||
57 | jal printhex | ||
58 | dla $4, $NL | ||
59 | jal printstr | ||
60 | |||
61 | |||
62 | li $6, 0x44441100 | ||
63 | clo $4, $6 | ||
64 | addiu $5, $0, 8 | ||
65 | jal printhex | ||
66 | dla $4, $NL | ||
67 | jal printstr | ||
68 | |||
69 | |||
70 | li $6, 0x0 | ||
71 | clz $4, $6 | ||
72 | addiu $5, $0, 8 | ||
73 | jal printhex | ||
74 | dla $4, $NL | ||
75 | jal printstr | ||
76 | |||
77 | |||
78 | li $6, 0x1 | ||
79 | clz $4, $6 | ||
80 | addiu $5, $0, 8 | ||
81 | jal printhex | ||
82 | dla $4, $NL | ||
83 | jal printstr | ||
84 | |||
85 | |||
86 | li $6, 0x1234 | ||
87 | clz $4, $6 | ||
88 | addiu $5, $0, 8 | ||
89 | jal printhex | ||
90 | dla $4, $NL | ||
91 | jal printstr | ||
92 | |||
93 | |||
94 | li $6, 0x12345678 | ||
95 | clz $4, $6 | ||
96 | addiu $5, $0, 8 | ||
97 | jal printhex | ||
98 | dla $4, $NL | ||
99 | jal printstr | ||
100 | |||
101 | |||
102 | li $6, 0x87654321 | ||
103 | clz $4, $6 | ||
104 | addiu $5, $0, 8 | ||
105 | jal printhex | ||
106 | dla $4, $NL | ||
107 | jal printstr | ||
108 | |||
109 | |||
110 | li $6, 0x44441100 | ||
111 | clz $4, $6 | ||
112 | addiu $5, $0, 8 | ||
113 | jal printhex | ||
114 | dla $4, $NL | ||
115 | jal printstr | ||
116 | |||
117 | |||
118 | /* Return value: */ | ||
119 | li $2, 0x1212fefe | ||
120 | |||
121 | /* Restore the return address: */ | ||
122 | ld $31,0($29) | ||
123 | addiu $29,$29,16 | ||
124 | |||
125 | /* ... and return. */ | ||
126 | jr $31 | ||
127 | |||
128 | .end testmain | ||
129 |
ViewVC Help | |
Powered by ViewVC 1.1.26 |