Commit dfa252e
[Wasm RyuJit]: don't skip top-level catchrets when marking try resumption (dotnet#129205)
In FlowGraphTryRegions::Build, the BBJ_EHCATCHRET check sat below the
early bailout on hasTryIndex, so the catchret of an outer catch was
never marking its try region as requiring runtime resumption.
Also: ensure loops that partially contain trys have their wasm-interval
lengths extended to encompass any throw helpers associated with the try.
Also: fix some random extra argument added to a the overflow helper in
some cases. This is all platform and has been in the code forever. On
native it is somewhat harmless to pass unexpected extra args (especially
if register args). On Wasm it is not.
Reminder that for Wasm control flow we can always move the end of a Wasm
loop later; the extent just delineates where you can branch back to the
loop head, not the actual extent of the loop. Likewise we can always
move the start of a block earlier.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 823cbf0 commit dfa252e
3 files changed
Lines changed: 85 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1300 | 1300 | | |
1301 | 1301 | | |
1302 | 1302 | | |
1303 | | - | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
1304 | 1306 | | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
1305 | 1335 | | |
1306 | 1336 | | |
1307 | 1337 | | |
| |||
1411 | 1441 | | |
1412 | 1442 | | |
1413 | 1443 | | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
1414 | 1484 | | |
1415 | 1485 | | |
1416 | 1486 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7744 | 7744 | | |
7745 | 7745 | | |
7746 | 7746 | | |
| 7747 | + | |
| 7748 | + | |
| 7749 | + | |
| 7750 | + | |
| 7751 | + | |
| 7752 | + | |
| 7753 | + | |
| 7754 | + | |
| 7755 | + | |
| 7756 | + | |
| 7757 | + | |
| 7758 | + | |
| 7759 | + | |
7747 | 7760 | | |
7748 | 7761 | | |
7749 | 7762 | | |
| |||
7825 | 7838 | | |
7826 | 7839 | | |
7827 | 7840 | | |
7828 | | - | |
7829 | | - | |
7830 | | - | |
7831 | | - | |
7832 | | - | |
7833 | | - | |
7834 | | - | |
7835 | | - | |
7836 | | - | |
7837 | | - | |
7838 | | - | |
7839 | | - | |
7840 | | - | |
7841 | 7841 | | |
7842 | 7842 | | |
7843 | 7843 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18366 | 18366 | | |
18367 | 18367 | | |
18368 | 18368 | | |
18369 | | - | |
| 18369 | + | |
18370 | 18370 | | |
18371 | 18371 | | |
18372 | 18372 | | |
| |||
0 commit comments