Changeset ac08cd9 in mainline for uspace/app/pcc/cc/ccom/arch/amd64/external.c
- Timestamp:
- 2011-08-20T18:31:45Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6b9355a
- Parents:
- c8f70eb (diff), 6ab014d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/pcc/cc/ccom/arch/amd64/external.c
rc8f70eb rac08cd9 1 1 #include "pass2.h" 2 3 // TODO: replace with file generated by ccom_mkext4 5 2 static int op0[] = { -1 }; 6 3 static int op1[] = { -1 }; 7 static int op2[] = { -1 };4 static int op2[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 8 5 static int op3[] = { -1 }; 9 static int op4[] = { -1 };10 static int op5[] = { -1 };11 static int op6[] = { -1 };12 static int op7[] = { -1 };13 static int op8[] = { -1 };14 static int op9[] = { -1 };15 static int op10[] = { -1 };16 static int op11[] = { -1 };17 static int op12[] = { -1 };18 static int op13[] = { -1 };19 static int op14[] = { -1 };20 static int op15[] = { -1 };21 static int op16[] = { -1 };22 static int op17[] = { -1 };23 static int op18[] = { -1 };24 static int op19[] = { -1 };25 static int op20[] = { -1 };6 static int op4[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 7 static int op5[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 8 static int op6[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 9 static int op7[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 10 static int op8[] = { 193, 194, 195, 196, 197, 198, 199, 200, 201, 218, 220, -1 }; 11 static int op9[] = { 219, 220, -1 }; 12 static int op10[] = { 70, 71, 72, 73, 74, 75, 76, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 220, -1 }; 13 static int op11[] = { 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 220, -1 }; 14 static int op12[] = { 146, 147, 148, 149, 150, 151, 152, 153, 220, -1 }; 15 static int op13[] = { 154, 155, 156, 157, 158, 159, 220, -1 }; 16 static int op14[] = { 160, 161, 162, 163, 164, 165, 220, -1 }; 17 static int op15[] = { 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 182, 183, 184, 185, 186, 187, 188, 189, 190, 220, -1 }; 18 static int op16[] = { 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 220, -1 }; 19 static int op17[] = { 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 220, -1 }; 20 static int op18[] = { 95, 96, 97, 98, 99, 100, 101, 102, 220, -1 }; 21 static int op19[] = { 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 220, -1 }; 22 static int op20[] = { 208, 209, 210, 211, 219, 220, -1 }; 26 23 static int op21[] = { -1 }; 27 24 static int op22[] = { -1 }; 28 static int op23[] = { -1 };29 static int op24[] = { -1 };30 static int op25[] = { -1 };31 static int op26[] = { -1 };32 static int op27[] = { -1 };33 static int op28[] = { -1 };34 static int op29[] = { -1 };35 static int op30[] = { -1 };36 static int op31[] = { -1 };37 static int op32[] = { -1 };38 static int op33[] = { -1 };39 static int op34[] = { -1 };40 static int op35[] = { -1 };41 static int op36[] = { -1 };42 static int op37[] = { -1 };43 static int op38[] = { -1 };44 static int op39[] = { -1 };45 static int op40[] = { -1 };46 static int op41[] = { -1 };47 static int op42[] = { -1 };48 static int op43[] = { -1 };49 static int op44[] = { -1 };50 static int op45[] = { -1 };51 static int op46[] = { -1 };52 static int op47[] = { -1 };53 static int op48[] = { -1 };54 static int op49[] = { -1 };55 static int op50[] = { -1 };56 static int op51[] = { -1 };57 static int op52[] = { -1 };58 static int op53[] = { -1 };59 static int op54[] = { -1 };25 static int op23[] = { 166, 167, 168, 169, 170, 171, 214, 219, 220, -1 }; 26 static int op24[] = { 202, 203, 204, 205, 206, 207, 219, 220, -1 }; 27 static int op25[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 28 static int op26[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 29 static int op27[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 30 static int op28[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 31 static int op29[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 32 static int op30[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 33 static int op31[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 34 static int op32[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 35 static int op33[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 36 static int op34[] = { 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 220, -1 }; 37 static int op35[] = { 220, -1 }; 38 static int op36[] = { 217, 219, 220, -1 }; 39 static int op37[] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 219, 220, -1 }; 40 static int op38[] = { 1, 2, 219, 220, -1 }; 41 static int op39[] = { 220, -1 }; 42 static int op40[] = { 220, -1 }; 43 static int op41[] = { 48, 50, 52, 54, 56, 58, 60, 62, 220, -1 }; 44 static int op42[] = { 49, 51, 53, 55, 57, 59, 61, 63, 219, 220, -1 }; 45 static int op43[] = { 220, -1 }; 46 static int op44[] = { 219, 220, -1 }; 47 static int op45[] = { 67, 68, 69, 220, -1 }; 48 static int op46[] = { 64, 65, 66, 219, 220, -1 }; 49 static int op47[] = { 218, 220, -1 }; 50 static int op48[] = { 220, -1 }; 51 static int op49[] = { 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 215, -1 }; 52 static int op50[] = { 145, 216, -1 }; 53 static int op51[] = { 212, 219, 220, -1 }; 54 static int op52[] = { 219, 220, -1 }; 55 static int op53[] = { 220, -1 }; 56 static int op54[] = { 191, 192, 219, 220, -1 }; 60 57 static int op55[] = { -1 }; 61 static int op56[] = { -1 };62 static int op57[] = { -1 };63 static int op58[] = { -1 };58 static int op56[] = { 220, -1 }; 59 static int op57[] = { 219, 220, -1 }; 60 static int op58[] = { 213, 219, 220, -1 }; 64 61 65 62 int *qtable[] = { … … 124 121 op58, 125 122 }; 126 int tempregs[] = { -1 };127 int permregs[] = { -1 };123 int tempregs[] = { 0, 1, 2, 4, 5, 8, 9, 10, 11, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1 }; 124 int permregs[] = { 3, 12, 13, 14, 15, -1 }; 128 125 bittype validregs[] = { 129 0x 7fffffffff,126 0xffffffff3f, 130 127 }; 131 128 static int amap[MAXREGS][NUMCLASS] = { 132 /* 0 */{ 0x0,0x0,0x0,0x0 }, 133 /* 1 */{ 0x0,0x0,0x0,0x0 }, 134 /* 2 */{ 0x0,0x0,0x0,0x0 }, 135 /* 3 */{ 0x0,0x0,0x0,0x0 }, 136 /* 4 */{ 0x0,0x0,0x0,0x0 }, 137 /* 5 */{ 0x0,0x0,0x0,0x0 }, 138 /* 6 */{ 0x0,0x0,0x0,0x0 }, 139 /* 7 */{ 0x0,0x0,0x0,0x0 }, 140 /* 8 */{ 0x0,0x0,0x0,0x0 }, 141 /* 9 */{ 0x0,0x0,0x0,0x0 }, 142 /* 10 */{ 0x0,0x0,0x0,0x0 }, 143 /* 11 */{ 0x0,0x0,0x0,0x0 }, 144 /* 12 */{ 0x0,0x0,0x0,0x0 }, 145 /* 13 */{ 0x0,0x0,0x0,0x0 }, 146 /* 14 */{ 0x0,0x0,0x0,0x0 }, 147 /* 15 */{ 0x0,0x0,0x0,0x0 }, 148 /* 16 */{ 0x0,0x0,0x0,0x0 }, 149 /* 17 */{ 0x0,0x0,0x0,0x0 }, 150 /* 18 */{ 0x0,0x0,0x0,0x0 }, 151 /* 19 */{ 0x0,0x0,0x0,0x0 }, 152 /* 20 */{ 0x0,0x0,0x0,0x0 }, 153 /* 21 */{ 0x0,0x0,0x0,0x0 }, 154 /* 22 */{ 0x0,0x0,0x0,0x0 }, 155 /* 23 */{ 0x0,0x0,0x0,0x0 }, 156 /* 24 */{ 0x0,0x0,0x0,0x0 }, 157 /* 25 */{ 0x0,0x0,0x0,0x0 }, 158 /* 26 */{ 0x0,0x0,0x0,0x0 }, 159 /* 27 */{ 0x0,0x0,0x0,0x0 }, 160 /* 28 */{ 0x0,0x0,0x0,0x0 }, 161 /* 29 */{ 0x0,0x0,0x0,0x0 }, 162 /* 30 */{ 0x0,0x0,0x0,0x0 }, 163 /* 31 */{ 0x0,0x0,0x0,0x0 }, 164 /* 32 */{ 0x0,0x0,0x0,0x0 }, 165 /* 33 */{ 0x0,0x0,0x0,0x0 }, 166 /* 34 */{ 0x0,0x0,0x0,0x0 }, 167 /* 35 */{ 0x0,0x0,0x0,0x0 }, 168 /* 36 */{ 0x0,0x0,0x0,0x0 }, 169 /* 37 */{ 0x0,0x0,0x0,0x0 }, 170 /* 38 */{ 0x0,0x0,0x0,0x0 } 129 /* 0 */{ 0x1,0x0,0x0 }, 130 /* 1 */{ 0x2,0x0,0x0 }, 131 /* 2 */{ 0x4,0x0,0x0 }, 132 /* 3 */{ 0x8,0x0,0x0 }, 133 /* 4 */{ 0x10,0x0,0x0 }, 134 /* 5 */{ 0x20,0x0,0x0 }, 135 /* 6 */{ 0x0,0x0,0x0 }, 136 /* 7 */{ 0x0,0x0,0x0 }, 137 /* 8 */{ 0x40,0x0,0x0 }, 138 /* 9 */{ 0x80,0x0,0x0 }, 139 /* 10 */{ 0x100,0x0,0x0 }, 140 /* 11 */{ 0x200,0x0,0x0 }, 141 /* 12 */{ 0x400,0x0,0x0 }, 142 /* 13 */{ 0x800,0x0,0x0 }, 143 /* 14 */{ 0x1000,0x0,0x0 }, 144 /* 15 */{ 0x2000,0x0,0x0 }, 145 /* 16 */{ 0x0,0x1,0x0 }, 146 /* 17 */{ 0x0,0x2,0x0 }, 147 /* 18 */{ 0x0,0x4,0x0 }, 148 /* 19 */{ 0x0,0x8,0x0 }, 149 /* 20 */{ 0x0,0x10,0x0 }, 150 /* 21 */{ 0x0,0x20,0x0 }, 151 /* 22 */{ 0x0,0x40,0x0 }, 152 /* 23 */{ 0x0,0x80,0x0 }, 153 /* 24 */{ 0x0,0x100,0x0 }, 154 /* 25 */{ 0x0,0x200,0x0 }, 155 /* 26 */{ 0x0,0x400,0x0 }, 156 /* 27 */{ 0x0,0x800,0x0 }, 157 /* 28 */{ 0x0,0x1000,0x0 }, 158 /* 29 */{ 0x0,0x2000,0x0 }, 159 /* 30 */{ 0x0,0x4000,0x0 }, 160 /* 31 */{ 0x0,0x8000,0x0 }, 161 /* 32 */{ 0x0,0x0,0x1 }, 162 /* 33 */{ 0x0,0x0,0x2 }, 163 /* 34 */{ 0x0,0x0,0x4 }, 164 /* 35 */{ 0x0,0x0,0x8 }, 165 /* 36 */{ 0x0,0x0,0x10 }, 166 /* 37 */{ 0x0,0x0,0x20 }, 167 /* 38 */{ 0x0,0x0,0x40 }, 168 /* 39 */{ 0x0,0x0,0x80 }, 171 169 }; 172 170 int … … 175 173 return amap[regnum][class-1]; 176 174 } 177 static int rmap[NUMCLASS][15] = { 178 { 0, 1, 2, 3, 4, 5, }, 179 { 8, 9, 10, 11, 12, 13, 14, 15, }, 180 { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, }, 181 { 31, 32, 33, 34, 35, 36, 37, 38, }, 175 static int rmap[NUMCLASS][16] = { 176 { 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, }, 177 { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, }, 178 { 32, 33, 34, 35, 36, 37, 38, 39, }, 182 179 }; 183 180 … … 187 184 return rmap[class-1][color]; 188 185 } 189 int regK[] = { 0, 0, 0, 0, 0, 0, 0, 0 };186 int regK[] = { 0, 14, 16, 8, 0, 0, 0, 0 }; 190 187 int 191 188 classmask(int class) 192 189 { 193 if(class == CLASSA) return 0x 0;194 if(class == CLASSB) return 0x 0;195 if(class == CLASSC) return 0x 0;190 if(class == CLASSA) return 0x3fff; 191 if(class == CLASSB) return 0xffff; 192 if(class == CLASSC) return 0xff; 196 193 if(class == CLASSD) return 0x0; 197 194 if(class == CLASSE) return 0x0; … … 200 197 } 201 198 static bittype ovlarr[MAXREGS][1] = { 202 { 0x1 f0301, },203 { 0x 1e10c02, },204 { 0x e223004, },205 { 0x 3244c008, },206 { 0x 54880010, },207 { 0x 69100020, },199 { 0x1, }, 200 { 0x2, }, 201 { 0x4, }, 202 { 0x8, }, 203 { 0x10, }, 204 { 0x20, }, 208 205 { 0x40, }, 209 206 { 0x80, }, 210 { 0x1 f0101, },211 { 0x 1f0201, },212 { 0x 1e10402, },213 { 0x 1e10802, },214 { 0x e221004, },215 { 0x e222004, },216 { 0x 32444008, },217 { 0x 32448008, },218 { 0x1 ff0f03, },219 { 0x e3f3305, },220 { 0x 325fc309, },221 { 0x 549f0311, },222 { 0x 691f0321, },223 { 0x fe33c06, },224 { 0x 33e5cc0a, },225 { 0x 55e90c12, },226 { 0x 69f10c22, },227 { 0x 3e66f00c, },228 { 0x 5eaa3014, },229 { 0x 6f323024, },230 { 0x 76ccc018, },231 { 0x 7b54c028, },232 { 0x 7d980030, },207 { 0x100, }, 208 { 0x200, }, 209 { 0x400, }, 210 { 0x800, }, 211 { 0x1000, }, 212 { 0x2000, }, 213 { 0x4000, }, 214 { 0x8000, }, 215 { 0x10000, }, 216 { 0x20000, }, 217 { 0x40000, }, 218 { 0x80000, }, 219 { 0x100000, }, 220 { 0x200000, }, 221 { 0x400000, }, 222 { 0x800000, }, 223 { 0x1000000, }, 224 { 0x2000000, }, 225 { 0x4000000, }, 226 { 0x8000000, }, 227 { 0x10000000, }, 228 { 0x20000000, }, 229 { 0x40000000, }, 233 230 { 0x80000000, }, 234 231 { 0x1, }, … … 239 236 { 0x20, }, 240 237 { 0x40, }, 238 { 0x80, }, 241 239 }; 242 240 int
Note:
See TracChangeset
for help on using the changeset viewer.