()
| 1552 | } |
| 1553 | |
| 1554 | const fn tail_create_machine_env() -> MachineEnv { |
| 1555 | // Same as the SystemV ABI, except that %r6 and %r7 are preferred. |
| 1556 | MachineEnv { |
| 1557 | preferred_regs_by_class: [ |
| 1558 | PRegSet::empty() |
| 1559 | // no r0; can't use for addressing? |
| 1560 | // no r1; it is our spilltmp. |
| 1561 | .with(gpr_preg(2)) |
| 1562 | .with(gpr_preg(3)) |
| 1563 | .with(gpr_preg(4)) |
| 1564 | .with(gpr_preg(5)) |
| 1565 | .with(gpr_preg(6)) |
| 1566 | .with(gpr_preg(7)), |
| 1567 | PRegSet::empty() |
| 1568 | .with(vr_preg(0)) |
| 1569 | .with(vr_preg(1)) |
| 1570 | .with(vr_preg(2)) |
| 1571 | .with(vr_preg(3)) |
| 1572 | .with(vr_preg(4)) |
| 1573 | .with(vr_preg(5)) |
| 1574 | .with(vr_preg(6)) |
| 1575 | .with(vr_preg(7)) |
| 1576 | .with(vr_preg(16)) |
| 1577 | .with(vr_preg(17)) |
| 1578 | .with(vr_preg(18)) |
| 1579 | .with(vr_preg(19)) |
| 1580 | .with(vr_preg(20)) |
| 1581 | .with(vr_preg(21)) |
| 1582 | .with(vr_preg(22)) |
| 1583 | .with(vr_preg(23)) |
| 1584 | .with(vr_preg(24)) |
| 1585 | .with(vr_preg(25)) |
| 1586 | .with(vr_preg(26)) |
| 1587 | .with(vr_preg(27)) |
| 1588 | .with(vr_preg(28)) |
| 1589 | .with(vr_preg(29)) |
| 1590 | .with(vr_preg(30)) |
| 1591 | .with(vr_preg(31)), |
| 1592 | // Vector Regclass is unused |
| 1593 | PRegSet::empty(), |
| 1594 | ], |
| 1595 | non_preferred_regs_by_class: [ |
| 1596 | PRegSet::empty() |
| 1597 | .with(gpr_preg(8)) |
| 1598 | .with(gpr_preg(9)) |
| 1599 | .with(gpr_preg(10)) |
| 1600 | .with(gpr_preg(11)) |
| 1601 | .with(gpr_preg(12)) |
| 1602 | .with(gpr_preg(13)) |
| 1603 | .with(gpr_preg(14)), |
| 1604 | // no r15; it is the stack pointer. |
| 1605 | PRegSet::empty() |
| 1606 | .with(vr_preg(8)) |
| 1607 | .with(vr_preg(9)) |
| 1608 | .with(vr_preg(10)) |
| 1609 | .with(vr_preg(11)) |
| 1610 | .with(vr_preg(12)) |
| 1611 | .with(vr_preg(13)) |
no test coverage detected