Commit bc1a872
Aman Khalid
Enable fake hot/cold splitting on ARM64 (#70708)
This commit contains fixes for various bugs exposed by enabling fake
hot/cold splitting on ARM64:
- Branches between hot/cold sections are now always long.
- The pseudoinstruction for loading a constant from the cold section
did not support loading 16-byte data into vector registers, as it
temporarily loaded the constant into an 8-byte integer register. Now,
16-byte constants are loaded directly into vector registers via an
`ld1` instruction.
- Asserts/NYIs blocking hot/cold splitting on ARM64 have been removed.
Fake hot/cold splitting requires we fake unwind info by treating each
split function as one hot section. A more architecture-agnostic
approach for this has been applied. To facilitate this approach, the
fake-splitting implementation has been revised to place the hot
and cold sections contiguously in memory (immediately followed
by the read-only data section on ARM64).1 parent f310367 commit bc1a872
File tree
10 files changed
+330
-242
lines changed- src/coreclr/jit
10 files changed
+330
-242
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3199 | 3199 | | |
3200 | 3200 | | |
3201 | 3201 | | |
3202 | | - | |
3203 | | - | |
| 3202 | + | |
| 3203 | + | |
3204 | 3204 | | |
3205 | | - | |
| 3205 | + | |
3206 | 3206 | | |
3207 | 3207 | | |
3208 | 3208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7660 | 7660 | | |
7661 | 7661 | | |
7662 | 7662 | | |
7663 | | - | |
| 7663 | + | |
7664 | 7664 | | |
7665 | 7665 | | |
7666 | 7666 | | |
| |||
8017 | 8017 | | |
8018 | 8018 | | |
8019 | 8019 | | |
8020 | | - | |
8021 | | - | |
8022 | | - | |
8023 | | - | |
8024 | 8020 | | |
8025 | 8021 | | |
8026 | 8022 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1122 | 1122 | | |
1123 | 1123 | | |
1124 | 1124 | | |
1125 | | - | |
| 1125 | + | |
1126 | 1126 | | |
1127 | 1127 | | |
1128 | | - | |
1129 | | - | |
1130 | 1128 | | |
1131 | | - | |
1132 | | - | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
1133 | 1132 | | |
1134 | | - | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
1135 | 1136 | | |
1136 | 1137 | | |
1137 | | - | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
1138 | 1158 | | |
1139 | 1159 | | |
1140 | 1160 | | |
1141 | 1161 | | |
1142 | | - | |
1143 | | - | |
1144 | | - | |
1145 | | - | |
1146 | | - | |
1147 | 1162 | | |
1148 | | - | |
1149 | | - | |
1150 | | - | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
1151 | 1170 | | |
1152 | | - | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
1153 | 1183 | | |
1154 | 1184 | | |
1155 | 1185 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4561 | 4561 | | |
4562 | 4562 | | |
4563 | 4563 | | |
4564 | | - | |
4565 | 4564 | | |
4566 | 4565 | | |
4567 | 4566 | | |
| |||
6350 | 6349 | | |
6351 | 6350 | | |
6352 | 6351 | | |
6353 | | - | |
6354 | | - | |
6355 | | - | |
6356 | | - | |
6357 | | - | |
6358 | | - | |
6359 | | - | |
6360 | | - | |
6361 | | - | |
6362 | | - | |
6363 | | - | |
6364 | | - | |
6365 | | - | |
6366 | | - | |
6367 | | - | |
6368 | | - | |
6369 | | - | |
6370 | | - | |
6371 | | - | |
6372 | | - | |
6373 | | - | |
6374 | | - | |
6375 | | - | |
6376 | | - | |
6377 | | - | |
6378 | | - | |
6379 | | - | |
6380 | | - | |
6381 | | - | |
6382 | | - | |
6383 | | - | |
6384 | | - | |
6385 | | - | |
6386 | | - | |
6387 | 6352 | | |
6388 | 6353 | | |
6389 | 6354 | | |
6390 | 6355 | | |
6391 | 6356 | | |
6392 | 6357 | | |
6393 | | - | |
| 6358 | + | |
6394 | 6359 | | |
6395 | 6360 | | |
6396 | 6361 | | |
| |||
6399 | 6364 | | |
6400 | 6365 | | |
6401 | 6366 | | |
6402 | | - | |
6403 | | - | |
6404 | 6367 | | |
6405 | 6368 | | |
6406 | 6369 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
997 | 997 | | |
998 | 998 | | |
999 | 999 | | |
1000 | | - | |
| 1000 | + | |
1001 | 1001 | | |
1002 | 1002 | | |
1003 | 1003 | | |
| |||
0 commit comments