1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 * 22 * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 27 /* All Rights Reserved */ 28 29 /* 30 * Portions of this source code were derived from Berkeley 4.3 BSD 31 * under license from the Regents of the University of California. 32 */ 33 34 #ifndef _SYS_DESDATA_H 35 #define _SYS_DESDATA_H 36 37 #pragma ident "%Z%%M% %I% %E% SMI" 38 39 #ifdef __cplusplus 40 extern "C" { 41 #endif 42 43 /* 44 * softdesdata.c, Data for software implementation of DES 45 */ 46 47 /* 48 * Lint can't handle static's in include files. 49 * Complains "defined but not used" and then "used but not defined" 50 */ 51 #ifdef __lint 52 #define static 53 #endif 54 55 /* EXPORT DELETE START */ 56 /* 57 * Permuted-choice 1 from the key bits 58 * to yield C and D. 59 * Note that bits 8,16... are left out: 60 * They are intended for a parity check. 61 * Table has been munged to be zero-origin 62 */ 63 64 const short PC1_C[] = { 65 57-1, 49-1, 41-1, 33-1, 25-1, 17-1, 9-1, 66 1-1, 58-1, 50-1, 42-1, 34-1, 26-1, 18-1, 67 10-1, 2-1, 59-1, 51-1, 43-1, 35-1, 27-1, 68 19-1, 11-1, 3-1, 60-1, 52-1, 44-1, 36-1, 69 }; 70 71 const short PC1_D[] = { 72 63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1, 73 7-1, 62-1, 54-1, 46-1, 38-1, 30-1, 22-1, 74 14-1, 6-1, 61-1, 53-1, 45-1, 37-1, 29-1, 75 21-1, 13-1, 5-1, 28-1, 20-1, 12-1, 4-1, 76 }; 77 78 /* 79 * Sequence of shifts used for the key schedule. 80 */ 81 const char shifts[] = { 82 1-1, 1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1, 83 1-1, 2-1, 2-1, 2-1, 2-1, 2-1, 2-1, 1-1, 84 }; 85 86 /* 87 * Permuted-choice 2, to pick out the bits from 88 * the CD array that generate the key schedule. 89 */ 90 const char PC2_C[] = { 91 14, 17, 11, 24, 1, 5, 92 3, 28, 15, 6, 21, 10, 93 23, 19, 12, 4, 26, 8, 94 16, 7, 27, 20, 13, 2, 95 }; 96 97 const char PC2_D[] = { 98 41-28, 52-28, 31-28, 37-28, 47-28, 55-28, 99 30-28, 40-28, 51-28, 45-28, 33-28, 48-28, 100 44-28, 49-28, 39-28, 56-28, 34-28, 53-28, 101 46-28, 42-28, 50-28, 36-28, 29-28, 32-28, 102 }; 103 104 /* 105 * Initial permutation 106 */ 107 const short IPtab[64] = { 108 40-1, 8-1, 48-1, 16-1, 56-1, 24-1, 64-1, 32-1, 109 39-1, 7-1, 47-1, 15-1, 55-1, 23-1, 63-1, 31-1, 110 38-1, 6-1, 46-1, 14-1, 54-1, 22-1, 62-1, 30-1, 111 37-1, 5-1, 45-1, 13-1, 53-1, 21-1, 61-1, 29-1, 112 36-1, 4-1, 44-1, 12-1, 52-1, 20-1, 60-1, 28-1, 113 35-1, 3-1, 43-1, 11-1, 51-1, 19-1, 59-1, 27-1, 114 34-1, 2-1, 42-1, 10-1, 50-1, 18-1, 58-1, 26-1, 115 33-1, 1-1, 41-1, 9-1, 49-1, 17-1, 57-1, 25-1, 116 }; 117 118 /* 119 * Final permutation 120 */ 121 const short FPtab[64] = { 122 58-1, 50-1, 42-1, 34-1, 26-1, 18-1, 10-1, 2-1, 123 60-1, 52-1, 44-1, 36-1, 28-1, 20-1, 12-1, 4-1, 124 62-1, 54-1, 46-1, 38-1, 30-1, 22-1, 14-1, 6-1, 125 64-1, 56-1, 48-1, 40-1, 32-1, 24-1, 16-1, 8-1, 126 57-1, 49-1, 41-1, 33-1, 25-1, 17-1, 9-1, 1-1, 127 59-1, 51-1, 43-1, 35-1, 27-1, 19-1, 11-1, 3-1, 128 61-1, 53-1, 45-1, 37-1, 29-1, 21-1, 13-1, 5-1, 129 63-1, 55-1, 47-1, 39-1, 31-1, 23-1, 15-1, 7-1, 130 }; 131 132 /* 133 * Mask bit selection table 134 */ 135 const uint32_t longtab[32] = { 136 0x80000000U, 0x40000000U, 0x20000000U, 0x10000000U, 137 0x8000000U, 0x4000000U, 0x2000000U, 0x1000000U, 138 0x800000U, 0x400000U, 0x200000U, 0x100000U, 139 0x80000U, 0x40000U, 0x20000U, 0x10000U, 140 0x8000U, 0x4000U, 0x2000U, 0x1000U, 141 0x800U, 0x400U, 0x200U, 0x100U, 142 0x80U, 0x40U, 0x20U, 0x10U, 143 0x8U, 0x4U, 0x2U, 0x1U, 144 }; 145 146 /* 147 * Table to expand 32 bit (4 bytes of 8 bits) R value 148 * to 48 bits (8 bytes of 6 bits) 149 */ 150 struct R_to_ER { 151 uint32_t l0, l1; 152 }; 153 154 const struct R_to_ER R_to_ER_tab[4][256] = { 155 {{ 0x00000000, 0x00000000, }, { 0x00022000, 0x00000000, }, 156 { 0x00040000, 0x00000000, }, { 0x00062000, 0x00000000, }, 157 { 0x00080000, 0x00000000, }, { 0x000a2000, 0x00000000, }, 158 { 0x000c0000, 0x00000000, }, { 0x000e2000, 0x00000000, }, 159 { 0x01100000, 0x00000000, }, { 0x01122000, 0x00000000, }, 160 { 0x01140000, 0x00000000, }, { 0x01162000, 0x00000000, }, 161 { 0x01180000, 0x00000000, }, { 0x011a2000, 0x00000000, }, 162 { 0x011c0000, 0x00000000, }, { 0x011e2000, 0x00000000, }, 163 { 0x02200000, 0x00000000, }, { 0x02222000, 0x00000000, }, 164 { 0x02240000, 0x00000000, }, { 0x02262000, 0x00000000, }, 165 { 0x02280000, 0x00000000, }, { 0x022a2000, 0x00000000, }, 166 { 0x022c0000, 0x00000000, }, { 0x022e2000, 0x00000000, }, 167 { 0x03300000, 0x00000000, }, { 0x03322000, 0x00000000, }, 168 { 0x03340000, 0x00000000, }, { 0x03362000, 0x00000000, }, 169 { 0x03380000, 0x00000000, }, { 0x033a2000, 0x00000000, }, 170 { 0x033c0000, 0x00000000, }, { 0x033e2000, 0x00000000, }, 171 { 0x04000000, 0x00000000, }, { 0x04022000, 0x00000000, }, 172 { 0x04040000, 0x00000000, }, { 0x04062000, 0x00000000, }, 173 { 0x04080000, 0x00000000, }, { 0x040a2000, 0x00000000, }, 174 { 0x040c0000, 0x00000000, }, { 0x040e2000, 0x00000000, }, 175 { 0x05100000, 0x00000000, }, { 0x05122000, 0x00000000, }, 176 { 0x05140000, 0x00000000, }, { 0x05162000, 0x00000000, }, 177 { 0x05180000, 0x00000000, }, { 0x051a2000, 0x00000000, }, 178 { 0x051c0000, 0x00000000, }, { 0x051e2000, 0x00000000, }, 179 { 0x06200000, 0x00000000, }, { 0x06222000, 0x00000000, }, 180 { 0x06240000, 0x00000000, }, { 0x06262000, 0x00000000, }, 181 { 0x06280000, 0x00000000, }, { 0x062a2000, 0x00000000, }, 182 { 0x062c0000, 0x00000000, }, { 0x062e2000, 0x00000000, }, 183 { 0x07300000, 0x00000000, }, { 0x07322000, 0x00000000, }, 184 { 0x07340000, 0x00000000, }, { 0x07362000, 0x00000000, }, 185 { 0x07380000, 0x00000000, }, { 0x073a2000, 0x00000000, }, 186 { 0x073c0000, 0x00000000, }, { 0x073e2000, 0x00000000, }, 187 { 0x08000000, 0x00000000, }, { 0x08022000, 0x00000000, }, 188 { 0x08040000, 0x00000000, }, { 0x08062000, 0x00000000, }, 189 { 0x08080000, 0x00000000, }, { 0x080a2000, 0x00000000, }, 190 { 0x080c0000, 0x00000000, }, { 0x080e2000, 0x00000000, }, 191 { 0x09100000, 0x00000000, }, { 0x09122000, 0x00000000, }, 192 { 0x09140000, 0x00000000, }, { 0x09162000, 0x00000000, }, 193 { 0x09180000, 0x00000000, }, { 0x091a2000, 0x00000000, }, 194 { 0x091c0000, 0x00000000, }, { 0x091e2000, 0x00000000, }, 195 { 0x0a200000, 0x00000000, }, { 0x0a222000, 0x00000000, }, 196 { 0x0a240000, 0x00000000, }, { 0x0a262000, 0x00000000, }, 197 { 0x0a280000, 0x00000000, }, { 0x0a2a2000, 0x00000000, }, 198 { 0x0a2c0000, 0x00000000, }, { 0x0a2e2000, 0x00000000, }, 199 { 0x0b300000, 0x00000000, }, { 0x0b322000, 0x00000000, }, 200 { 0x0b340000, 0x00000000, }, { 0x0b362000, 0x00000000, }, 201 { 0x0b380000, 0x00000000, }, { 0x0b3a2000, 0x00000000, }, 202 { 0x0b3c0000, 0x00000000, }, { 0x0b3e2000, 0x00000000, }, 203 { 0x0c000000, 0x00000000, }, { 0x0c022000, 0x00000000, }, 204 { 0x0c040000, 0x00000000, }, { 0x0c062000, 0x00000000, }, 205 { 0x0c080000, 0x00000000, }, { 0x0c0a2000, 0x00000000, }, 206 { 0x0c0c0000, 0x00000000, }, { 0x0c0e2000, 0x00000000, }, 207 { 0x0d100000, 0x00000000, }, { 0x0d122000, 0x00000000, }, 208 { 0x0d140000, 0x00000000, }, { 0x0d162000, 0x00000000, }, 209 { 0x0d180000, 0x00000000, }, { 0x0d1a2000, 0x00000000, }, 210 { 0x0d1c0000, 0x00000000, }, { 0x0d1e2000, 0x00000000, }, 211 { 0x0e200000, 0x00000000, }, { 0x0e222000, 0x00000000, }, 212 { 0x0e240000, 0x00000000, }, { 0x0e262000, 0x00000000, }, 213 { 0x0e280000, 0x00000000, }, { 0x0e2a2000, 0x00000000, }, 214 { 0x0e2c0000, 0x00000000, }, { 0x0e2e2000, 0x00000000, }, 215 { 0x0f300000, 0x00000000, }, { 0x0f322000, 0x00000000, }, 216 { 0x0f340000, 0x00000000, }, { 0x0f362000, 0x00000000, }, 217 { 0x0f380000, 0x00000000, }, { 0x0f3a2000, 0x00000000, }, 218 { 0x0f3c0000, 0x00000000, }, { 0x0f3e2000, 0x00000000, }, 219 { 0x10000000, 0x00000001, }, { 0x10022000, 0x00000001, }, 220 { 0x10040000, 0x00000001, }, { 0x10062000, 0x00000001, }, 221 { 0x10080000, 0x00000001, }, { 0x100a2000, 0x00000001, }, 222 { 0x100c0000, 0x00000001, }, { 0x100e2000, 0x00000001, }, 223 { 0x11100000, 0x00000001, }, { 0x11122000, 0x00000001, }, 224 { 0x11140000, 0x00000001, }, { 0x11162000, 0x00000001, }, 225 { 0x11180000, 0x00000001, }, { 0x111a2000, 0x00000001, }, 226 { 0x111c0000, 0x00000001, }, { 0x111e2000, 0x00000001, }, 227 { 0x12200000, 0x00000001, }, { 0x12222000, 0x00000001, }, 228 { 0x12240000, 0x00000001, }, { 0x12262000, 0x00000001, }, 229 { 0x12280000, 0x00000001, }, { 0x122a2000, 0x00000001, }, 230 { 0x122c0000, 0x00000001, }, { 0x122e2000, 0x00000001, }, 231 { 0x13300000, 0x00000001, }, { 0x13322000, 0x00000001, }, 232 { 0x13340000, 0x00000001, }, { 0x13362000, 0x00000001, }, 233 { 0x13380000, 0x00000001, }, { 0x133a2000, 0x00000001, }, 234 { 0x133c0000, 0x00000001, }, { 0x133e2000, 0x00000001, }, 235 { 0x14000000, 0x00000001, }, { 0x14022000, 0x00000001, }, 236 { 0x14040000, 0x00000001, }, { 0x14062000, 0x00000001, }, 237 { 0x14080000, 0x00000001, }, { 0x140a2000, 0x00000001, }, 238 { 0x140c0000, 0x00000001, }, { 0x140e2000, 0x00000001, }, 239 { 0x15100000, 0x00000001, }, { 0x15122000, 0x00000001, }, 240 { 0x15140000, 0x00000001, }, { 0x15162000, 0x00000001, }, 241 { 0x15180000, 0x00000001, }, { 0x151a2000, 0x00000001, }, 242 { 0x151c0000, 0x00000001, }, { 0x151e2000, 0x00000001, }, 243 { 0x16200000, 0x00000001, }, { 0x16222000, 0x00000001, }, 244 { 0x16240000, 0x00000001, }, { 0x16262000, 0x00000001, }, 245 { 0x16280000, 0x00000001, }, { 0x162a2000, 0x00000001, }, 246 { 0x162c0000, 0x00000001, }, { 0x162e2000, 0x00000001, }, 247 { 0x17300000, 0x00000001, }, { 0x17322000, 0x00000001, }, 248 { 0x17340000, 0x00000001, }, { 0x17362000, 0x00000001, }, 249 { 0x17380000, 0x00000001, }, { 0x173a2000, 0x00000001, }, 250 { 0x173c0000, 0x00000001, }, { 0x173e2000, 0x00000001, }, 251 { 0x18000000, 0x00000001, }, { 0x18022000, 0x00000001, }, 252 { 0x18040000, 0x00000001, }, { 0x18062000, 0x00000001, }, 253 { 0x18080000, 0x00000001, }, { 0x180a2000, 0x00000001, }, 254 { 0x180c0000, 0x00000001, }, { 0x180e2000, 0x00000001, }, 255 { 0x19100000, 0x00000001, }, { 0x19122000, 0x00000001, }, 256 { 0x19140000, 0x00000001, }, { 0x19162000, 0x00000001, }, 257 { 0x19180000, 0x00000001, }, { 0x191a2000, 0x00000001, }, 258 { 0x191c0000, 0x00000001, }, { 0x191e2000, 0x00000001, }, 259 { 0x1a200000, 0x00000001, }, { 0x1a222000, 0x00000001, }, 260 { 0x1a240000, 0x00000001, }, { 0x1a262000, 0x00000001, }, 261 { 0x1a280000, 0x00000001, }, { 0x1a2a2000, 0x00000001, }, 262 { 0x1a2c0000, 0x00000001, }, { 0x1a2e2000, 0x00000001, }, 263 { 0x1b300000, 0x00000001, }, { 0x1b322000, 0x00000001, }, 264 { 0x1b340000, 0x00000001, }, { 0x1b362000, 0x00000001, }, 265 { 0x1b380000, 0x00000001, }, { 0x1b3a2000, 0x00000001, }, 266 { 0x1b3c0000, 0x00000001, }, { 0x1b3e2000, 0x00000001, }, 267 { 0x1c000000, 0x00000001, }, { 0x1c022000, 0x00000001, }, 268 { 0x1c040000, 0x00000001, }, { 0x1c062000, 0x00000001, }, 269 { 0x1c080000, 0x00000001, }, { 0x1c0a2000, 0x00000001, }, 270 { 0x1c0c0000, 0x00000001, }, { 0x1c0e2000, 0x00000001, }, 271 { 0x1d100000, 0x00000001, }, { 0x1d122000, 0x00000001, }, 272 { 0x1d140000, 0x00000001, }, { 0x1d162000, 0x00000001, }, 273 { 0x1d180000, 0x00000001, }, { 0x1d1a2000, 0x00000001, }, 274 { 0x1d1c0000, 0x00000001, }, { 0x1d1e2000, 0x00000001, }, 275 { 0x1e200000, 0x00000001, }, { 0x1e222000, 0x00000001, }, 276 { 0x1e240000, 0x00000001, }, { 0x1e262000, 0x00000001, }, 277 { 0x1e280000, 0x00000001, }, { 0x1e2a2000, 0x00000001, }, 278 { 0x1e2c0000, 0x00000001, }, { 0x1e2e2000, 0x00000001, }, 279 { 0x1f300000, 0x00000001, }, { 0x1f322000, 0x00000001, }, 280 { 0x1f340000, 0x00000001, }, { 0x1f362000, 0x00000001, }, 281 { 0x1f380000, 0x00000001, }, { 0x1f3a2000, 0x00000001, }, 282 { 0x1f3c0000, 0x00000001, }, { 0x1f3e2000, 0x00000001, }, }, 283 284 {{ 0x00000000, 0x00000000, }, { 0x00000002, 0x20000000, }, 285 { 0x00000004, 0x00000000, }, { 0x00000006, 0x20000000, }, 286 { 0x00000008, 0x00000000, }, { 0x0000000a, 0x20000000, }, 287 { 0x0000000c, 0x00000000, }, { 0x0000000e, 0x20000000, }, 288 { 0x00000110, 0x00000000, }, { 0x00000112, 0x20000000, }, 289 { 0x00000114, 0x00000000, }, { 0x00000116, 0x20000000, }, 290 { 0x00000118, 0x00000000, }, { 0x0000011a, 0x20000000, }, 291 { 0x0000011c, 0x00000000, }, { 0x0000011e, 0x20000000, }, 292 { 0x00000220, 0x00000000, }, { 0x00000222, 0x20000000, }, 293 { 0x00000224, 0x00000000, }, { 0x00000226, 0x20000000, }, 294 { 0x00000228, 0x00000000, }, { 0x0000022a, 0x20000000, }, 295 { 0x0000022c, 0x00000000, }, { 0x0000022e, 0x20000000, }, 296 { 0x00000330, 0x00000000, }, { 0x00000332, 0x20000000, }, 297 { 0x00000334, 0x00000000, }, { 0x00000336, 0x20000000, }, 298 { 0x00000338, 0x00000000, }, { 0x0000033a, 0x20000000, }, 299 { 0x0000033c, 0x00000000, }, { 0x0000033e, 0x20000000, }, 300 { 0x00000400, 0x00000000, }, { 0x00000402, 0x20000000, }, 301 { 0x00000404, 0x00000000, }, { 0x00000406, 0x20000000, }, 302 { 0x00000408, 0x00000000, }, { 0x0000040a, 0x20000000, }, 303 { 0x0000040c, 0x00000000, }, { 0x0000040e, 0x20000000, }, 304 { 0x00000510, 0x00000000, }, { 0x00000512, 0x20000000, }, 305 { 0x00000514, 0x00000000, }, { 0x00000516, 0x20000000, }, 306 { 0x00000518, 0x00000000, }, { 0x0000051a, 0x20000000, }, 307 { 0x0000051c, 0x00000000, }, { 0x0000051e, 0x20000000, }, 308 { 0x00000620, 0x00000000, }, { 0x00000622, 0x20000000, }, 309 { 0x00000624, 0x00000000, }, { 0x00000626, 0x20000000, }, 310 { 0x00000628, 0x00000000, }, { 0x0000062a, 0x20000000, }, 311 { 0x0000062c, 0x00000000, }, { 0x0000062e, 0x20000000, }, 312 { 0x00000730, 0x00000000, }, { 0x00000732, 0x20000000, }, 313 { 0x00000734, 0x00000000, }, { 0x00000736, 0x20000000, }, 314 { 0x00000738, 0x00000000, }, { 0x0000073a, 0x20000000, }, 315 { 0x0000073c, 0x00000000, }, { 0x0000073e, 0x20000000, }, 316 { 0x00000800, 0x00000000, }, { 0x00000802, 0x20000000, }, 317 { 0x00000804, 0x00000000, }, { 0x00000806, 0x20000000, }, 318 { 0x00000808, 0x00000000, }, { 0x0000080a, 0x20000000, }, 319 { 0x0000080c, 0x00000000, }, { 0x0000080e, 0x20000000, }, 320 { 0x00000910, 0x00000000, }, { 0x00000912, 0x20000000, }, 321 { 0x00000914, 0x00000000, }, { 0x00000916, 0x20000000, }, 322 { 0x00000918, 0x00000000, }, { 0x0000091a, 0x20000000, }, 323 { 0x0000091c, 0x00000000, }, { 0x0000091e, 0x20000000, }, 324 { 0x00000a20, 0x00000000, }, { 0x00000a22, 0x20000000, }, 325 { 0x00000a24, 0x00000000, }, { 0x00000a26, 0x20000000, }, 326 { 0x00000a28, 0x00000000, }, { 0x00000a2a, 0x20000000, }, 327 { 0x00000a2c, 0x00000000, }, { 0x00000a2e, 0x20000000, }, 328 { 0x00000b30, 0x00000000, }, { 0x00000b32, 0x20000000, }, 329 { 0x00000b34, 0x00000000, }, { 0x00000b36, 0x20000000, }, 330 { 0x00000b38, 0x00000000, }, { 0x00000b3a, 0x20000000, }, 331 { 0x00000b3c, 0x00000000, }, { 0x00000b3e, 0x20000000, }, 332 { 0x00000c00, 0x00000000, }, { 0x00000c02, 0x20000000, }, 333 { 0x00000c04, 0x00000000, }, { 0x00000c06, 0x20000000, }, 334 { 0x00000c08, 0x00000000, }, { 0x00000c0a, 0x20000000, }, 335 { 0x00000c0c, 0x00000000, }, { 0x00000c0e, 0x20000000, }, 336 { 0x00000d10, 0x00000000, }, { 0x00000d12, 0x20000000, }, 337 { 0x00000d14, 0x00000000, }, { 0x00000d16, 0x20000000, }, 338 { 0x00000d18, 0x00000000, }, { 0x00000d1a, 0x20000000, }, 339 { 0x00000d1c, 0x00000000, }, { 0x00000d1e, 0x20000000, }, 340 { 0x00000e20, 0x00000000, }, { 0x00000e22, 0x20000000, }, 341 { 0x00000e24, 0x00000000, }, { 0x00000e26, 0x20000000, }, 342 { 0x00000e28, 0x00000000, }, { 0x00000e2a, 0x20000000, }, 343 { 0x00000e2c, 0x00000000, }, { 0x00000e2e, 0x20000000, }, 344 { 0x00000f30, 0x00000000, }, { 0x00000f32, 0x20000000, }, 345 { 0x00000f34, 0x00000000, }, { 0x00000f36, 0x20000000, }, 346 { 0x00000f38, 0x00000000, }, { 0x00000f3a, 0x20000000, }, 347 { 0x00000f3c, 0x00000000, }, { 0x00000f3e, 0x20000000, }, 348 { 0x00011000, 0x00000000, }, { 0x00011002, 0x20000000, }, 349 { 0x00011004, 0x00000000, }, { 0x00011006, 0x20000000, }, 350 { 0x00011008, 0x00000000, }, { 0x0001100a, 0x20000000, }, 351 { 0x0001100c, 0x00000000, }, { 0x0001100e, 0x20000000, }, 352 { 0x00011110, 0x00000000, }, { 0x00011112, 0x20000000, }, 353 { 0x00011114, 0x00000000, }, { 0x00011116, 0x20000000, }, 354 { 0x00011118, 0x00000000, }, { 0x0001111a, 0x20000000, }, 355 { 0x0001111c, 0x00000000, }, { 0x0001111e, 0x20000000, }, 356 { 0x00011220, 0x00000000, }, { 0x00011222, 0x20000000, }, 357 { 0x00011224, 0x00000000, }, { 0x00011226, 0x20000000, }, 358 { 0x00011228, 0x00000000, }, { 0x0001122a, 0x20000000, }, 359 { 0x0001122c, 0x00000000, }, { 0x0001122e, 0x20000000, }, 360 { 0x00011330, 0x00000000, }, { 0x00011332, 0x20000000, }, 361 { 0x00011334, 0x00000000, }, { 0x00011336, 0x20000000, }, 362 { 0x00011338, 0x00000000, }, { 0x0001133a, 0x20000000, }, 363 { 0x0001133c, 0x00000000, }, { 0x0001133e, 0x20000000, }, 364 { 0x00011400, 0x00000000, }, { 0x00011402, 0x20000000, }, 365 { 0x00011404, 0x00000000, }, { 0x00011406, 0x20000000, }, 366 { 0x00011408, 0x00000000, }, { 0x0001140a, 0x20000000, }, 367 { 0x0001140c, 0x00000000, }, { 0x0001140e, 0x20000000, }, 368 { 0x00011510, 0x00000000, }, { 0x00011512, 0x20000000, }, 369 { 0x00011514, 0x00000000, }, { 0x00011516, 0x20000000, }, 370 { 0x00011518, 0x00000000, }, { 0x0001151a, 0x20000000, }, 371 { 0x0001151c, 0x00000000, }, { 0x0001151e, 0x20000000, }, 372 { 0x00011620, 0x00000000, }, { 0x00011622, 0x20000000, }, 373 { 0x00011624, 0x00000000, }, { 0x00011626, 0x20000000, }, 374 { 0x00011628, 0x00000000, }, { 0x0001162a, 0x20000000, }, 375 { 0x0001162c, 0x00000000, }, { 0x0001162e, 0x20000000, }, 376 { 0x00011730, 0x00000000, }, { 0x00011732, 0x20000000, }, 377 { 0x00011734, 0x00000000, }, { 0x00011736, 0x20000000, }, 378 { 0x00011738, 0x00000000, }, { 0x0001173a, 0x20000000, }, 379 { 0x0001173c, 0x00000000, }, { 0x0001173e, 0x20000000, }, 380 { 0x00011800, 0x00000000, }, { 0x00011802, 0x20000000, }, 381 { 0x00011804, 0x00000000, }, { 0x00011806, 0x20000000, }, 382 { 0x00011808, 0x00000000, }, { 0x0001180a, 0x20000000, }, 383 { 0x0001180c, 0x00000000, }, { 0x0001180e, 0x20000000, }, 384 { 0x00011910, 0x00000000, }, { 0x00011912, 0x20000000, }, 385 { 0x00011914, 0x00000000, }, { 0x00011916, 0x20000000, }, 386 { 0x00011918, 0x00000000, }, { 0x0001191a, 0x20000000, }, 387 { 0x0001191c, 0x00000000, }, { 0x0001191e, 0x20000000, }, 388 { 0x00011a20, 0x00000000, }, { 0x00011a22, 0x20000000, }, 389 { 0x00011a24, 0x00000000, }, { 0x00011a26, 0x20000000, }, 390 { 0x00011a28, 0x00000000, }, { 0x00011a2a, 0x20000000, }, 391 { 0x00011a2c, 0x00000000, }, { 0x00011a2e, 0x20000000, }, 392 { 0x00011b30, 0x00000000, }, { 0x00011b32, 0x20000000, }, 393 { 0x00011b34, 0x00000000, }, { 0x00011b36, 0x20000000, }, 394 { 0x00011b38, 0x00000000, }, { 0x00011b3a, 0x20000000, }, 395 { 0x00011b3c, 0x00000000, }, { 0x00011b3e, 0x20000000, }, 396 { 0x00011c00, 0x00000000, }, { 0x00011c02, 0x20000000, }, 397 { 0x00011c04, 0x00000000, }, { 0x00011c06, 0x20000000, }, 398 { 0x00011c08, 0x00000000, }, { 0x00011c0a, 0x20000000, }, 399 { 0x00011c0c, 0x00000000, }, { 0x00011c0e, 0x20000000, }, 400 { 0x00011d10, 0x00000000, }, { 0x00011d12, 0x20000000, }, 401 { 0x00011d14, 0x00000000, }, { 0x00011d16, 0x20000000, }, 402 { 0x00011d18, 0x00000000, }, { 0x00011d1a, 0x20000000, }, 403 { 0x00011d1c, 0x00000000, }, { 0x00011d1e, 0x20000000, }, 404 { 0x00011e20, 0x00000000, }, { 0x00011e22, 0x20000000, }, 405 { 0x00011e24, 0x00000000, }, { 0x00011e26, 0x20000000, }, 406 { 0x00011e28, 0x00000000, }, { 0x00011e2a, 0x20000000, }, 407 { 0x00011e2c, 0x00000000, }, { 0x00011e2e, 0x20000000, }, 408 { 0x00011f30, 0x00000000, }, { 0x00011f32, 0x20000000, }, 409 { 0x00011f34, 0x00000000, }, { 0x00011f36, 0x20000000, }, 410 { 0x00011f38, 0x00000000, }, { 0x00011f3a, 0x20000000, }, 411 { 0x00011f3c, 0x00000000, }, { 0x00011f3e, 0x20000000, }, }, 412 413 {{ 0x00000000, 0x00000000, }, { 0x00000000, 0x00022000, }, 414 { 0x00000000, 0x00040000, }, { 0x00000000, 0x00062000, }, 415 { 0x00000000, 0x00080000, }, { 0x00000000, 0x000a2000, }, 416 { 0x00000000, 0x000c0000, }, { 0x00000000, 0x000e2000, }, 417 { 0x00000000, 0x01100000, }, { 0x00000000, 0x01122000, }, 418 { 0x00000000, 0x01140000, }, { 0x00000000, 0x01162000, }, 419 { 0x00000000, 0x01180000, }, { 0x00000000, 0x011a2000, }, 420 { 0x00000000, 0x011c0000, }, { 0x00000000, 0x011e2000, }, 421 { 0x00000000, 0x02200000, }, { 0x00000000, 0x02222000, }, 422 { 0x00000000, 0x02240000, }, { 0x00000000, 0x02262000, }, 423 { 0x00000000, 0x02280000, }, { 0x00000000, 0x022a2000, }, 424 { 0x00000000, 0x022c0000, }, { 0x00000000, 0x022e2000, }, 425 { 0x00000000, 0x03300000, }, { 0x00000000, 0x03322000, }, 426 { 0x00000000, 0x03340000, }, { 0x00000000, 0x03362000, }, 427 { 0x00000000, 0x03380000, }, { 0x00000000, 0x033a2000, }, 428 { 0x00000000, 0x033c0000, }, { 0x00000000, 0x033e2000, }, 429 { 0x00000000, 0x04000000, }, { 0x00000000, 0x04022000, }, 430 { 0x00000000, 0x04040000, }, { 0x00000000, 0x04062000, }, 431 { 0x00000000, 0x04080000, }, { 0x00000000, 0x040a2000, }, 432 { 0x00000000, 0x040c0000, }, { 0x00000000, 0x040e2000, }, 433 { 0x00000000, 0x05100000, }, { 0x00000000, 0x05122000, }, 434 { 0x00000000, 0x05140000, }, { 0x00000000, 0x05162000, }, 435 { 0x00000000, 0x05180000, }, { 0x00000000, 0x051a2000, }, 436 { 0x00000000, 0x051c0000, }, { 0x00000000, 0x051e2000, }, 437 { 0x00000000, 0x06200000, }, { 0x00000000, 0x06222000, }, 438 { 0x00000000, 0x06240000, }, { 0x00000000, 0x06262000, }, 439 { 0x00000000, 0x06280000, }, { 0x00000000, 0x062a2000, }, 440 { 0x00000000, 0x062c0000, }, { 0x00000000, 0x062e2000, }, 441 { 0x00000000, 0x07300000, }, { 0x00000000, 0x07322000, }, 442 { 0x00000000, 0x07340000, }, { 0x00000000, 0x07362000, }, 443 { 0x00000000, 0x07380000, }, { 0x00000000, 0x073a2000, }, 444 { 0x00000000, 0x073c0000, }, { 0x00000000, 0x073e2000, }, 445 { 0x00000000, 0x08000000, }, { 0x00000000, 0x08022000, }, 446 { 0x00000000, 0x08040000, }, { 0x00000000, 0x08062000, }, 447 { 0x00000000, 0x08080000, }, { 0x00000000, 0x080a2000, }, 448 { 0x00000000, 0x080c0000, }, { 0x00000000, 0x080e2000, }, 449 { 0x00000000, 0x09100000, }, { 0x00000000, 0x09122000, }, 450 { 0x00000000, 0x09140000, }, { 0x00000000, 0x09162000, }, 451 { 0x00000000, 0x09180000, }, { 0x00000000, 0x091a2000, }, 452 { 0x00000000, 0x091c0000, }, { 0x00000000, 0x091e2000, }, 453 { 0x00000000, 0x0a200000, }, { 0x00000000, 0x0a222000, }, 454 { 0x00000000, 0x0a240000, }, { 0x00000000, 0x0a262000, }, 455 { 0x00000000, 0x0a280000, }, { 0x00000000, 0x0a2a2000, }, 456 { 0x00000000, 0x0a2c0000, }, { 0x00000000, 0x0a2e2000, }, 457 { 0x00000000, 0x0b300000, }, { 0x00000000, 0x0b322000, }, 458 { 0x00000000, 0x0b340000, }, { 0x00000000, 0x0b362000, }, 459 { 0x00000000, 0x0b380000, }, { 0x00000000, 0x0b3a2000, }, 460 { 0x00000000, 0x0b3c0000, }, { 0x00000000, 0x0b3e2000, }, 461 { 0x00000000, 0x0c000000, }, { 0x00000000, 0x0c022000, }, 462 { 0x00000000, 0x0c040000, }, { 0x00000000, 0x0c062000, }, 463 { 0x00000000, 0x0c080000, }, { 0x00000000, 0x0c0a2000, }, 464 { 0x00000000, 0x0c0c0000, }, { 0x00000000, 0x0c0e2000, }, 465 { 0x00000000, 0x0d100000, }, { 0x00000000, 0x0d122000, }, 466 { 0x00000000, 0x0d140000, }, { 0x00000000, 0x0d162000, }, 467 { 0x00000000, 0x0d180000, }, { 0x00000000, 0x0d1a2000, }, 468 { 0x00000000, 0x0d1c0000, }, { 0x00000000, 0x0d1e2000, }, 469 { 0x00000000, 0x0e200000, }, { 0x00000000, 0x0e222000, }, 470 { 0x00000000, 0x0e240000, }, { 0x00000000, 0x0e262000, }, 471 { 0x00000000, 0x0e280000, }, { 0x00000000, 0x0e2a2000, }, 472 { 0x00000000, 0x0e2c0000, }, { 0x00000000, 0x0e2e2000, }, 473 { 0x00000000, 0x0f300000, }, { 0x00000000, 0x0f322000, }, 474 { 0x00000000, 0x0f340000, }, { 0x00000000, 0x0f362000, }, 475 { 0x00000000, 0x0f380000, }, { 0x00000000, 0x0f3a2000, }, 476 { 0x00000000, 0x0f3c0000, }, { 0x00000000, 0x0f3e2000, }, 477 { 0x00000001, 0x10000000, }, { 0x00000001, 0x10022000, }, 478 { 0x00000001, 0x10040000, }, { 0x00000001, 0x10062000, }, 479 { 0x00000001, 0x10080000, }, { 0x00000001, 0x100a2000, }, 480 { 0x00000001, 0x100c0000, }, { 0x00000001, 0x100e2000, }, 481 { 0x00000001, 0x11100000, }, { 0x00000001, 0x11122000, }, 482 { 0x00000001, 0x11140000, }, { 0x00000001, 0x11162000, }, 483 { 0x00000001, 0x11180000, }, { 0x00000001, 0x111a2000, }, 484 { 0x00000001, 0x111c0000, }, { 0x00000001, 0x111e2000, }, 485 { 0x00000001, 0x12200000, }, { 0x00000001, 0x12222000, }, 486 { 0x00000001, 0x12240000, }, { 0x00000001, 0x12262000, }, 487 { 0x00000001, 0x12280000, }, { 0x00000001, 0x122a2000, }, 488 { 0x00000001, 0x122c0000, }, { 0x00000001, 0x122e2000, }, 489 { 0x00000001, 0x13300000, }, { 0x00000001, 0x13322000, }, 490 { 0x00000001, 0x13340000, }, { 0x00000001, 0x13362000, }, 491 { 0x00000001, 0x13380000, }, { 0x00000001, 0x133a2000, }, 492 { 0x00000001, 0x133c0000, }, { 0x00000001, 0x133e2000, }, 493 { 0x00000001, 0x14000000, }, { 0x00000001, 0x14022000, }, 494 { 0x00000001, 0x14040000, }, { 0x00000001, 0x14062000, }, 495 { 0x00000001, 0x14080000, }, { 0x00000001, 0x140a2000, }, 496 { 0x00000001, 0x140c0000, }, { 0x00000001, 0x140e2000, }, 497 { 0x00000001, 0x15100000, }, { 0x00000001, 0x15122000, }, 498 { 0x00000001, 0x15140000, }, { 0x00000001, 0x15162000, }, 499 { 0x00000001, 0x15180000, }, { 0x00000001, 0x151a2000, }, 500 { 0x00000001, 0x151c0000, }, { 0x00000001, 0x151e2000, }, 501 { 0x00000001, 0x16200000, }, { 0x00000001, 0x16222000, }, 502 { 0x00000001, 0x16240000, }, { 0x00000001, 0x16262000, }, 503 { 0x00000001, 0x16280000, }, { 0x00000001, 0x162a2000, }, 504 { 0x00000001, 0x162c0000, }, { 0x00000001, 0x162e2000, }, 505 { 0x00000001, 0x17300000, }, { 0x00000001, 0x17322000, }, 506 { 0x00000001, 0x17340000, }, { 0x00000001, 0x17362000, }, 507 { 0x00000001, 0x17380000, }, { 0x00000001, 0x173a2000, }, 508 { 0x00000001, 0x173c0000, }, { 0x00000001, 0x173e2000, }, 509 { 0x00000001, 0x18000000, }, { 0x00000001, 0x18022000, }, 510 { 0x00000001, 0x18040000, }, { 0x00000001, 0x18062000, }, 511 { 0x00000001, 0x18080000, }, { 0x00000001, 0x180a2000, }, 512 { 0x00000001, 0x180c0000, }, { 0x00000001, 0x180e2000, }, 513 { 0x00000001, 0x19100000, }, { 0x00000001, 0x19122000, }, 514 { 0x00000001, 0x19140000, }, { 0x00000001, 0x19162000, }, 515 { 0x00000001, 0x19180000, }, { 0x00000001, 0x191a2000, }, 516 { 0x00000001, 0x191c0000, }, { 0x00000001, 0x191e2000, }, 517 { 0x00000001, 0x1a200000, }, { 0x00000001, 0x1a222000, }, 518 { 0x00000001, 0x1a240000, }, { 0x00000001, 0x1a262000, }, 519 { 0x00000001, 0x1a280000, }, { 0x00000001, 0x1a2a2000, }, 520 { 0x00000001, 0x1a2c0000, }, { 0x00000001, 0x1a2e2000, }, 521 { 0x00000001, 0x1b300000, }, { 0x00000001, 0x1b322000, }, 522 { 0x00000001, 0x1b340000, }, { 0x00000001, 0x1b362000, }, 523 { 0x00000001, 0x1b380000, }, { 0x00000001, 0x1b3a2000, }, 524 { 0x00000001, 0x1b3c0000, }, { 0x00000001, 0x1b3e2000, }, 525 { 0x00000001, 0x1c000000, }, { 0x00000001, 0x1c022000, }, 526 { 0x00000001, 0x1c040000, }, { 0x00000001, 0x1c062000, }, 527 { 0x00000001, 0x1c080000, }, { 0x00000001, 0x1c0a2000, }, 528 { 0x00000001, 0x1c0c0000, }, { 0x00000001, 0x1c0e2000, }, 529 { 0x00000001, 0x1d100000, }, { 0x00000001, 0x1d122000, }, 530 { 0x00000001, 0x1d140000, }, { 0x00000001, 0x1d162000, }, 531 { 0x00000001, 0x1d180000, }, { 0x00000001, 0x1d1a2000, }, 532 { 0x00000001, 0x1d1c0000, }, { 0x00000001, 0x1d1e2000, }, 533 { 0x00000001, 0x1e200000, }, { 0x00000001, 0x1e222000, }, 534 { 0x00000001, 0x1e240000, }, { 0x00000001, 0x1e262000, }, 535 { 0x00000001, 0x1e280000, }, { 0x00000001, 0x1e2a2000, }, 536 { 0x00000001, 0x1e2c0000, }, { 0x00000001, 0x1e2e2000, }, 537 { 0x00000001, 0x1f300000, }, { 0x00000001, 0x1f322000, }, 538 { 0x00000001, 0x1f340000, }, { 0x00000001, 0x1f362000, }, 539 { 0x00000001, 0x1f380000, }, { 0x00000001, 0x1f3a2000, }, 540 { 0x00000001, 0x1f3c0000, }, { 0x00000001, 0x1f3e2000, }, }, 541 542 {{ 0x00000000, 0x00000000, }, { 0x20000000, 0x00000002, }, 543 { 0x00000000, 0x00000004, }, { 0x20000000, 0x00000006, }, 544 { 0x00000000, 0x00000008, }, { 0x20000000, 0x0000000a, }, 545 { 0x00000000, 0x0000000c, }, { 0x20000000, 0x0000000e, }, 546 { 0x00000000, 0x00000110, }, { 0x20000000, 0x00000112, }, 547 { 0x00000000, 0x00000114, }, { 0x20000000, 0x00000116, }, 548 { 0x00000000, 0x00000118, }, { 0x20000000, 0x0000011a, }, 549 { 0x00000000, 0x0000011c, }, { 0x20000000, 0x0000011e, }, 550 { 0x00000000, 0x00000220, }, { 0x20000000, 0x00000222, }, 551 { 0x00000000, 0x00000224, }, { 0x20000000, 0x00000226, }, 552 { 0x00000000, 0x00000228, }, { 0x20000000, 0x0000022a, }, 553 { 0x00000000, 0x0000022c, }, { 0x20000000, 0x0000022e, }, 554 { 0x00000000, 0x00000330, }, { 0x20000000, 0x00000332, }, 555 { 0x00000000, 0x00000334, }, { 0x20000000, 0x00000336, }, 556 { 0x00000000, 0x00000338, }, { 0x20000000, 0x0000033a, }, 557 { 0x00000000, 0x0000033c, }, { 0x20000000, 0x0000033e, }, 558 { 0x00000000, 0x00000400, }, { 0x20000000, 0x00000402, }, 559 { 0x00000000, 0x00000404, }, { 0x20000000, 0x00000406, }, 560 { 0x00000000, 0x00000408, }, { 0x20000000, 0x0000040a, }, 561 { 0x00000000, 0x0000040c, }, { 0x20000000, 0x0000040e, }, 562 { 0x00000000, 0x00000510, }, { 0x20000000, 0x00000512, }, 563 { 0x00000000, 0x00000514, }, { 0x20000000, 0x00000516, }, 564 { 0x00000000, 0x00000518, }, { 0x20000000, 0x0000051a, }, 565 { 0x00000000, 0x0000051c, }, { 0x20000000, 0x0000051e, }, 566 { 0x00000000, 0x00000620, }, { 0x20000000, 0x00000622, }, 567 { 0x00000000, 0x00000624, }, { 0x20000000, 0x00000626, }, 568 { 0x00000000, 0x00000628, }, { 0x20000000, 0x0000062a, }, 569 { 0x00000000, 0x0000062c, }, { 0x20000000, 0x0000062e, }, 570 { 0x00000000, 0x00000730, }, { 0x20000000, 0x00000732, }, 571 { 0x00000000, 0x00000734, }, { 0x20000000, 0x00000736, }, 572 { 0x00000000, 0x00000738, }, { 0x20000000, 0x0000073a, }, 573 { 0x00000000, 0x0000073c, }, { 0x20000000, 0x0000073e, }, 574 { 0x00000000, 0x00000800, }, { 0x20000000, 0x00000802, }, 575 { 0x00000000, 0x00000804, }, { 0x20000000, 0x00000806, }, 576 { 0x00000000, 0x00000808, }, { 0x20000000, 0x0000080a, }, 577 { 0x00000000, 0x0000080c, }, { 0x20000000, 0x0000080e, }, 578 { 0x00000000, 0x00000910, }, { 0x20000000, 0x00000912, }, 579 { 0x00000000, 0x00000914, }, { 0x20000000, 0x00000916, }, 580 { 0x00000000, 0x00000918, }, { 0x20000000, 0x0000091a, }, 581 { 0x00000000, 0x0000091c, }, { 0x20000000, 0x0000091e, }, 582 { 0x00000000, 0x00000a20, }, { 0x20000000, 0x00000a22, }, 583 { 0x00000000, 0x00000a24, }, { 0x20000000, 0x00000a26, }, 584 { 0x00000000, 0x00000a28, }, { 0x20000000, 0x00000a2a, }, 585 { 0x00000000, 0x00000a2c, }, { 0x20000000, 0x00000a2e, }, 586 { 0x00000000, 0x00000b30, }, { 0x20000000, 0x00000b32, }, 587 { 0x00000000, 0x00000b34, }, { 0x20000000, 0x00000b36, }, 588 { 0x00000000, 0x00000b38, }, { 0x20000000, 0x00000b3a, }, 589 { 0x00000000, 0x00000b3c, }, { 0x20000000, 0x00000b3e, }, 590 { 0x00000000, 0x00000c00, }, { 0x20000000, 0x00000c02, }, 591 { 0x00000000, 0x00000c04, }, { 0x20000000, 0x00000c06, }, 592 { 0x00000000, 0x00000c08, }, { 0x20000000, 0x00000c0a, }, 593 { 0x00000000, 0x00000c0c, }, { 0x20000000, 0x00000c0e, }, 594 { 0x00000000, 0x00000d10, }, { 0x20000000, 0x00000d12, }, 595 { 0x00000000, 0x00000d14, }, { 0x20000000, 0x00000d16, }, 596 { 0x00000000, 0x00000d18, }, { 0x20000000, 0x00000d1a, }, 597 { 0x00000000, 0x00000d1c, }, { 0x20000000, 0x00000d1e, }, 598 { 0x00000000, 0x00000e20, }, { 0x20000000, 0x00000e22, }, 599 { 0x00000000, 0x00000e24, }, { 0x20000000, 0x00000e26, }, 600 { 0x00000000, 0x00000e28, }, { 0x20000000, 0x00000e2a, }, 601 { 0x00000000, 0x00000e2c, }, { 0x20000000, 0x00000e2e, }, 602 { 0x00000000, 0x00000f30, }, { 0x20000000, 0x00000f32, }, 603 { 0x00000000, 0x00000f34, }, { 0x20000000, 0x00000f36, }, 604 { 0x00000000, 0x00000f38, }, { 0x20000000, 0x00000f3a, }, 605 { 0x00000000, 0x00000f3c, }, { 0x20000000, 0x00000f3e, }, 606 { 0x00000000, 0x00011000, }, { 0x20000000, 0x00011002, }, 607 { 0x00000000, 0x00011004, }, { 0x20000000, 0x00011006, }, 608 { 0x00000000, 0x00011008, }, { 0x20000000, 0x0001100a, }, 609 { 0x00000000, 0x0001100c, }, { 0x20000000, 0x0001100e, }, 610 { 0x00000000, 0x00011110, }, { 0x20000000, 0x00011112, }, 611 { 0x00000000, 0x00011114, }, { 0x20000000, 0x00011116, }, 612 { 0x00000000, 0x00011118, }, { 0x20000000, 0x0001111a, }, 613 { 0x00000000, 0x0001111c, }, { 0x20000000, 0x0001111e, }, 614 { 0x00000000, 0x00011220, }, { 0x20000000, 0x00011222, }, 615 { 0x00000000, 0x00011224, }, { 0x20000000, 0x00011226, }, 616 { 0x00000000, 0x00011228, }, { 0x20000000, 0x0001122a, }, 617 { 0x00000000, 0x0001122c, }, { 0x20000000, 0x0001122e, }, 618 { 0x00000000, 0x00011330, }, { 0x20000000, 0x00011332, }, 619 { 0x00000000, 0x00011334, }, { 0x20000000, 0x00011336, }, 620 { 0x00000000, 0x00011338, }, { 0x20000000, 0x0001133a, }, 621 { 0x00000000, 0x0001133c, }, { 0x20000000, 0x0001133e, }, 622 { 0x00000000, 0x00011400, }, { 0x20000000, 0x00011402, }, 623 { 0x00000000, 0x00011404, }, { 0x20000000, 0x00011406, }, 624 { 0x00000000, 0x00011408, }, { 0x20000000, 0x0001140a, }, 625 { 0x00000000, 0x0001140c, }, { 0x20000000, 0x0001140e, }, 626 { 0x00000000, 0x00011510, }, { 0x20000000, 0x00011512, }, 627 { 0x00000000, 0x00011514, }, { 0x20000000, 0x00011516, }, 628 { 0x00000000, 0x00011518, }, { 0x20000000, 0x0001151a, }, 629 { 0x00000000, 0x0001151c, }, { 0x20000000, 0x0001151e, }, 630 { 0x00000000, 0x00011620, }, { 0x20000000, 0x00011622, }, 631 { 0x00000000, 0x00011624, }, { 0x20000000, 0x00011626, }, 632 { 0x00000000, 0x00011628, }, { 0x20000000, 0x0001162a, }, 633 { 0x00000000, 0x0001162c, }, { 0x20000000, 0x0001162e, }, 634 { 0x00000000, 0x00011730, }, { 0x20000000, 0x00011732, }, 635 { 0x00000000, 0x00011734, }, { 0x20000000, 0x00011736, }, 636 { 0x00000000, 0x00011738, }, { 0x20000000, 0x0001173a, }, 637 { 0x00000000, 0x0001173c, }, { 0x20000000, 0x0001173e, }, 638 { 0x00000000, 0x00011800, }, { 0x20000000, 0x00011802, }, 639 { 0x00000000, 0x00011804, }, { 0x20000000, 0x00011806, }, 640 { 0x00000000, 0x00011808, }, { 0x20000000, 0x0001180a, }, 641 { 0x00000000, 0x0001180c, }, { 0x20000000, 0x0001180e, }, 642 { 0x00000000, 0x00011910, }, { 0x20000000, 0x00011912, }, 643 { 0x00000000, 0x00011914, }, { 0x20000000, 0x00011916, }, 644 { 0x00000000, 0x00011918, }, { 0x20000000, 0x0001191a, }, 645 { 0x00000000, 0x0001191c, }, { 0x20000000, 0x0001191e, }, 646 { 0x00000000, 0x00011a20, }, { 0x20000000, 0x00011a22, }, 647 { 0x00000000, 0x00011a24, }, { 0x20000000, 0x00011a26, }, 648 { 0x00000000, 0x00011a28, }, { 0x20000000, 0x00011a2a, }, 649 { 0x00000000, 0x00011a2c, }, { 0x20000000, 0x00011a2e, }, 650 { 0x00000000, 0x00011b30, }, { 0x20000000, 0x00011b32, }, 651 { 0x00000000, 0x00011b34, }, { 0x20000000, 0x00011b36, }, 652 { 0x00000000, 0x00011b38, }, { 0x20000000, 0x00011b3a, }, 653 { 0x00000000, 0x00011b3c, }, { 0x20000000, 0x00011b3e, }, 654 { 0x00000000, 0x00011c00, }, { 0x20000000, 0x00011c02, }, 655 { 0x00000000, 0x00011c04, }, { 0x20000000, 0x00011c06, }, 656 { 0x00000000, 0x00011c08, }, { 0x20000000, 0x00011c0a, }, 657 { 0x00000000, 0x00011c0c, }, { 0x20000000, 0x00011c0e, }, 658 { 0x00000000, 0x00011d10, }, { 0x20000000, 0x00011d12, }, 659 { 0x00000000, 0x00011d14, }, { 0x20000000, 0x00011d16, }, 660 { 0x00000000, 0x00011d18, }, { 0x20000000, 0x00011d1a, }, 661 { 0x00000000, 0x00011d1c, }, { 0x20000000, 0x00011d1e, }, 662 { 0x00000000, 0x00011e20, }, { 0x20000000, 0x00011e22, }, 663 { 0x00000000, 0x00011e24, }, { 0x20000000, 0x00011e26, }, 664 { 0x00000000, 0x00011e28, }, { 0x20000000, 0x00011e2a, }, 665 { 0x00000000, 0x00011e2c, }, { 0x20000000, 0x00011e2e, }, 666 { 0x00000000, 0x00011f30, }, { 0x20000000, 0x00011f32, }, 667 { 0x00000000, 0x00011f34, }, { 0x20000000, 0x00011f36, }, 668 { 0x00000000, 0x00011f38, }, { 0x20000000, 0x00011f3a, }, 669 { 0x00000000, 0x00011f3c, }, { 0x20000000, 0x00011f3e, }, } 670 }; 671 672 /* 673 * The 8 selection functions. 674 * 8 functions to map 6 bits to 64 bits 675 */ 676 const uint32_t S_tab[8][64] = { 677 { 678 0xe0000000U, 0x00000000U, 0x40000000U, 0xf0000000U, 679 0xd0000000U, 0x70000000U, 0x10000000U, 0x40000000U, 680 0x20000000U, 0xe0000000U, 0xf0000000U, 0x20000000U, 681 0xb0000000U, 0xd0000000U, 0x80000000U, 0x10000000U, 682 0x30000000U, 0xa0000000U, 0xa0000000U, 0x60000000U, 683 0x60000000U, 0xc0000000U, 0xc0000000U, 0xb0000000U, 684 0x50000000U, 0x90000000U, 0x90000000U, 0x50000000U, 685 0x00000000U, 0x30000000U, 0x70000000U, 0x80000000U, 686 0x40000000U, 0xf0000000U, 0x10000000U, 0xc0000000U, 687 0xe0000000U, 0x80000000U, 0x80000000U, 0x20000000U, 688 0xd0000000U, 0x40000000U, 0x60000000U, 0x90000000U, 689 0x20000000U, 0x10000000U, 0xb0000000U, 0x70000000U, 690 0xf0000000U, 0x50000000U, 0xc0000000U, 0xb0000000U, 691 0x90000000U, 0x30000000U, 0x70000000U, 0xe0000000U, 692 0x30000000U, 0xa0000000U, 0xa0000000U, 0x00000000U, 693 0x50000000U, 0x60000000U, 0x00000000U, 0xd0000000U, 694 }, 695 { 696 0x0f000000U, 0x03000000U, 0x01000000U, 0x0d000000U, 697 0x08000000U, 0x04000000U, 0x0e000000U, 0x07000000U, 698 0x06000000U, 0x0f000000U, 0x0b000000U, 0x02000000U, 699 0x03000000U, 0x08000000U, 0x04000000U, 0x0e000000U, 700 0x09000000U, 0x0c000000U, 0x07000000U, 0x00000000U, 701 0x02000000U, 0x01000000U, 0x0d000000U, 0x0a000000U, 702 0x0c000000U, 0x06000000U, 0x00000000U, 0x09000000U, 703 0x05000000U, 0x0b000000U, 0x0a000000U, 0x05000000U, 704 0x00000000U, 0x0d000000U, 0x0e000000U, 0x08000000U, 705 0x07000000U, 0x0a000000U, 0x0b000000U, 0x01000000U, 706 0x0a000000U, 0x03000000U, 0x04000000U, 0x0f000000U, 707 0x0d000000U, 0x04000000U, 0x01000000U, 0x02000000U, 708 0x05000000U, 0x0b000000U, 0x08000000U, 0x06000000U, 709 0x0c000000U, 0x07000000U, 0x06000000U, 0x0c000000U, 710 0x09000000U, 0x00000000U, 0x03000000U, 0x05000000U, 711 0x02000000U, 0x0e000000U, 0x0f000000U, 0x09000000U, 712 }, 713 { 714 0x00a00000U, 0x00d00000U, 0x00000000U, 0x00700000U, 715 0x00900000U, 0x00000000U, 0x00e00000U, 0x00900000U, 716 0x00600000U, 0x00300000U, 0x00300000U, 0x00400000U, 717 0x00f00000U, 0x00600000U, 0x00500000U, 0x00a00000U, 718 0x00100000U, 0x00200000U, 0x00d00000U, 0x00800000U, 719 0x00c00000U, 0x00500000U, 0x00700000U, 0x00e00000U, 720 0x00b00000U, 0x00c00000U, 0x00400000U, 0x00b00000U, 721 0x00200000U, 0x00f00000U, 0x00800000U, 0x00100000U, 722 0x00d00000U, 0x00100000U, 0x00600000U, 0x00a00000U, 723 0x00400000U, 0x00d00000U, 0x00900000U, 0x00000000U, 724 0x00800000U, 0x00600000U, 0x00f00000U, 0x00900000U, 725 0x00300000U, 0x00800000U, 0x00000000U, 0x00700000U, 726 0x00b00000U, 0x00400000U, 0x00100000U, 0x00f00000U, 727 0x00200000U, 0x00e00000U, 0x00c00000U, 0x00300000U, 728 0x00500000U, 0x00b00000U, 0x00a00000U, 0x00500000U, 729 0x00e00000U, 0x00200000U, 0x00700000U, 0x00c00000U, 730 }, 731 { 732 0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U, 733 0x000e0000U, 0x000b0000U, 0x00030000, 0x00050000U, 734 0x00000000U, 0x00060000U, 0x00060000, 0x000f0000U, 735 0x00090000U, 0x00000000U, 0x000a0000, 0x00030000U, 736 0x00010000U, 0x00040000U, 0x00020000, 0x00070000U, 737 0x00080000U, 0x00020000U, 0x00050000, 0x000c0000U, 738 0x000b0000U, 0x00010000U, 0x000c0000, 0x000a0000U, 739 0x00040000U, 0x000e0000U, 0x000f0000, 0x00090000U, 740 0x000a0000U, 0x00030000U, 0x00060000, 0x000f0000U, 741 0x00090000U, 0x00000000U, 0x00000000, 0x00060000U, 742 0x000c0000U, 0x000a0000U, 0x000b0000, 0x00010000U, 743 0x00070000U, 0x000d0000U, 0x000d0000, 0x00080000U, 744 0x000f0000U, 0x00090000U, 0x00010000, 0x00040000U, 745 0x00030000U, 0x00050000U, 0x000e0000, 0x000b0000U, 746 0x00050000U, 0x000c0000U, 0x00020000, 0x00070000U, 747 0x00080000U, 0x00020000U, 0x00040000, 0x000e0000U, 748 }, 749 { 750 0x00002000U, 0x0000e000U, 0x0000c000U, 0x0000b000U, 751 0x00004000U, 0x00002000U, 0x00001000U, 0x0000c000U, 752 0x00007000U, 0x00004000U, 0x0000a000U, 0x00007000U, 753 0x0000b000U,