| ... | @@ -1517,7 +1517,7 @@ const S390x = extern struct { | ... | @@ -1517,7 +1517,7 @@ const S390x = extern struct { |
| 1517 | | 1517 | |
| 1518 | /// This is an `extern struct` so that inline assembly in `current` can use field offsets. | 1518 | /// This is an `extern struct` so that inline assembly in `current` can use field offsets. |
| 1519 | const Sparc = extern struct { | 1519 | const Sparc = extern struct { |
| 1520 | g: [8]Gpr, | 1520 | g: [8]Gpr align(8), // Align to make `std` safe on 32-bit. |
| 1521 | o: [8]Gpr, | 1521 | o: [8]Gpr, |
| 1522 | l: [8]Gpr, | 1522 | l: [8]Gpr, |
| 1523 | i: [8]Gpr, | 1523 | i: [8]Gpr, |
| ... | @@ -1530,63 +1530,63 @@ const Sparc = extern struct { | ... | @@ -1530,63 +1530,63 @@ const Sparc = extern struct { |
| 1530 | | 1530 | |
| 1531 | var ctx: Sparc = undefined; | 1531 | var ctx: Sparc = undefined; |
| 1532 | asm volatile (if (Gpr == u64) | 1532 | asm volatile (if (Gpr == u64) |
| 1533 | \\ stx %g0, [%l0 + 0] | 1533 | \\ stx %%g0, [%%l0 + 0] |
| 1534 | \\ stx %g1, [%l0 + 8] | 1534 | \\ stx %%g1, [%%l0 + 8] |
| 1535 | \\ stx %g2, [%l0 + 16] | 1535 | \\ stx %%g2, [%%l0 + 16] |
| 1536 | \\ stx %g3, [%l0 + 24] | 1536 | \\ stx %%g3, [%%l0 + 24] |
| 1537 | \\ stx %g4, [%l0 + 32] | 1537 | \\ stx %%g4, [%%l0 + 32] |
| 1538 | \\ stx %g5, [%l0 + 40] | 1538 | \\ stx %%g5, [%%l0 + 40] |
| 1539 | \\ stx %g6, [%l0 + 48] | 1539 | \\ stx %%g6, [%%l0 + 48] |
| 1540 | \\ stx %g7, [%l0 + 56] | 1540 | \\ stx %%g7, [%%l0 + 56] |
| 1541 | \\ stx %o0, [%l0 + 64] | 1541 | \\ stx %%o0, [%%l0 + 64] |
| 1542 | \\ stx %o1, [%l0 + 72] | 1542 | \\ stx %%o1, [%%l0 + 72] |
| 1543 | \\ stx %o2, [%l0 + 80] | 1543 | \\ stx %%o2, [%%l0 + 80] |
| 1544 | \\ stx %o3, [%l0 + 88] | 1544 | \\ stx %%o3, [%%l0 + 88] |
| 1545 | \\ stx %o4, [%l0 + 96] | 1545 | \\ stx %%o4, [%%l0 + 96] |
| 1546 | \\ stx %o5, [%l0 + 104] | 1546 | \\ stx %%o5, [%%l0 + 104] |
| 1547 | \\ stx %o6, [%l0 + 112] | 1547 | \\ stx %%o6, [%%l0 + 112] |
| 1548 | \\ stx %o7, [%l0 + 120] | 1548 | \\ stx %%o7, [%%l0 + 120] |
| 1549 | \\ stx %l0, [%l0 + 128] | 1549 | \\ stx %%l0, [%%l0 + 128] |
| 1550 | \\ stx %l1, [%l0 + 136] | 1550 | \\ stx %%l1, [%%l0 + 136] |
| 1551 | \\ stx %l2, [%l0 + 144] | 1551 | \\ stx %%l2, [%%l0 + 144] |
| 1552 | \\ stx %l3, [%l0 + 152] | 1552 | \\ stx %%l3, [%%l0 + 152] |
| 1553 | \\ stx %l4, [%l0 + 160] | 1553 | \\ stx %%l4, [%%l0 + 160] |
| 1554 | \\ stx %l5, [%l0 + 168] | 1554 | \\ stx %%l5, [%%l0 + 168] |
| 1555 | \\ stx %l6, [%l0 + 176] | 1555 | \\ stx %%l6, [%%l0 + 176] |
| 1556 | \\ stx %l7, [%l0 + 184] | 1556 | \\ stx %%l7, [%%l0 + 184] |
| 1557 | \\ stx %i0, [%l0 + 192] | 1557 | \\ stx %%i0, [%%l0 + 192] |
| 1558 | \\ stx %i1, [%l0 + 200] | 1558 | \\ stx %%i1, [%%l0 + 200] |
| 1559 | \\ stx %i2, [%l0 + 208] | 1559 | \\ stx %%i2, [%%l0 + 208] |
| 1560 | \\ stx %i3, [%l0 + 216] | 1560 | \\ stx %%i3, [%%l0 + 216] |
| 1561 | \\ stx %i4, [%l0 + 224] | 1561 | \\ stx %%i4, [%%l0 + 224] |
| 1562 | \\ stx %i5, [%l0 + 232] | 1562 | \\ stx %%i5, [%%l0 + 232] |
| 1563 | \\ stx %i6, [%l0 + 240] | 1563 | \\ stx %%i6, [%%l0 + 240] |
| 1564 | \\ stx %i7, [%l0 + 248] | 1564 | \\ stx %%i7, [%%l0 + 248] |
| 1565 | \\ call 1f | 1565 | \\ call 1f |
| 1566 | \\ nop | 1566 | \\ nop |
| 1567 | \\1: | 1567 | \\1: |
| 1568 | \\ stx %o7, [%l0 + 256] | 1568 | \\ stx %%o7, [%%l0 + 256] |
| 1569 | else | 1569 | else |
| 1570 | \\ std %g0, [%l0 + 0] | 1570 | \\ std %%g0, [%%l0 + 0] |
| 1571 | \\ std %g2, [%l0 + 8] | 1571 | \\ std %%g2, [%%l0 + 8] |
| 1572 | \\ std %g4, [%l0 + 16] | 1572 | \\ std %%g4, [%%l0 + 16] |
| 1573 | \\ std %g6, [%l0 + 24] | 1573 | \\ std %%g6, [%%l0 + 24] |
| 1574 | \\ std %o0, [%l0 + 32] | 1574 | \\ std %%o0, [%%l0 + 32] |
| 1575 | \\ std %o2, [%l0 + 40] | 1575 | \\ std %%o2, [%%l0 + 40] |
| 1576 | \\ std %o4, [%l0 + 48] | 1576 | \\ std %%o4, [%%l0 + 48] |
| 1577 | \\ std %o6, [%l0 + 56] | 1577 | \\ std %%o6, [%%l0 + 56] |
| 1578 | \\ std %l0, [%l0 + 64] | 1578 | \\ std %%l0, [%%l0 + 64] |
| 1579 | \\ std %l2, [%l0 + 72] | 1579 | \\ std %%l2, [%%l0 + 72] |
| 1580 | \\ std %l4, [%l0 + 80] | 1580 | \\ std %%l4, [%%l0 + 80] |
| 1581 | \\ std %l6, [%l0 + 88] | 1581 | \\ std %%l6, [%%l0 + 88] |
| 1582 | \\ std %i0, [%l0 + 96] | 1582 | \\ std %%i0, [%%l0 + 96] |
| 1583 | \\ std %i2, [%l0 + 104] | 1583 | \\ std %%i2, [%%l0 + 104] |
| 1584 | \\ std %i4, [%l0 + 112] | 1584 | \\ std %%i4, [%%l0 + 112] |
| 1585 | \\ std %i6, [%l0 + 120] | 1585 | \\ std %%i6, [%%l0 + 120] |
| 1586 | \\ call 1f | 1586 | \\ call 1f |
| 1587 | \\ nop | 1587 | \\ nop |
| 1588 | \\1: | 1588 | \\1: |
| 1589 | \\ st %o7, [%l0 + 128] | 1589 | \\ st %%o7, [%%l0 + 128] |
| 1590 | : | 1590 | : |
| 1591 | : [ctx] "{l0}" (&ctx), | 1591 | : [ctx] "{l0}" (&ctx), |
| 1592 | : .{ .o7 = true, .memory = true }); | 1592 | : .{ .o7 = true, .memory = true }); |