Changeset 104401 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- Apr 23, 2024 9:28:09 AM (10 months ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-template.mac
r102130 r104401 1699 1699 ;* Near RET * 1700 1700 ;********************************************************************************************************************************* 1701 1702 ;; 1703 ; Macro for emitting various retn Iw variants 1704 ; 1705 ; @param 1 Number of bytes to pop 1706 ; 1707 %ifnmacro retn_iw_macro 1708 %macro retn_iw_macro 1 1709 1710 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i %+ %1 %+ __ud2 1711 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i %+ %1 %+ __ud2, BS3_PBC_NEAR 1712 ret %1 1713 .again: ud2 1714 jmp .again 1715 AssertCompile(.again - BS3_LAST_LABEL == 3) 1716 BS3_PROC_END_CMN bs3CpuBasic2_retn_i %+ %1 %+ __ud2 1717 1718 %if TMPL_BITS == 64 1719 1720 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i %+ %1 %+ _rexw__ud2 1721 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i %+ %1 %+ _rexw__ud2, BS3_PBC_NEAR 1722 db 048h ; REX.W 1723 ret %1 1724 .again: ud2 1725 jmp .again 1726 AssertCompile(.again - BS3_LAST_LABEL == 4) 1727 BS3_PROC_END_CMN bs3CpuBasic2_retn_i %+ %1 %+ _rexw__ud2 1728 1729 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i %+ %1 %+ _opsize_rexw__ud2 1730 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i %+ %1 %+ _opsize_rexw__ud2, BS3_PBC_NEAR 1731 db 66h, 048h 1732 ret %1 1733 .again: ud2 1734 jmp .again 1735 AssertCompile(.again - BS3_LAST_LABEL == 5) 1736 BS3_PROC_END_CMN bs3CpuBasic2_retn_i %+ %1 %+ _opsize_rexw__ud2 1737 1738 %endif 1739 1740 %endmacro ; retn_iw_macro 1741 %endif 1742 1743 1744 ;; 1745 ; Macro for emitting various retn Iw variants with an opsize prefix. 1746 ; 1747 ; @param 1 Number of bytes to pop 1748 ; 1749 %ifnmacro retn_iw_opsize_macro 1750 %macro retn_iw_opsize_macro 1 1751 1752 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i %+ %1 %+ _opsize__ud2 1753 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i %+ %1 %+ _opsize__ud2, BS3_PBC_NEAR 1754 db 66h 1755 ret %1 1756 .again: ud2 1757 jmp .again 1758 AssertCompile(.again - BS3_LAST_LABEL == 4) 1759 BS3_PROC_END_CMN bs3CpuBasic2_retn_i %+ %1 %+ _opsize__ud2 1760 1761 %if TMPL_BITS == 64 1762 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i %+ %1 %+ _rexw_opsize__ud2 1763 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i %+ %1 %+ _rexw_opsize__ud2, BS3_PBC_NEAR 1764 db 048h, 66h 1765 ret %1 1766 .again: ud2 1767 jmp .again 1768 AssertCompile(.again - BS3_LAST_LABEL == 5) 1769 BS3_PROC_END_CMN bs3CpuBasic2_retn_i %+ %1 %+ _rexw_opsize__ud2 1770 %endif 1771 1772 %endmacro ; retn_iw_opsize_macro 1773 %endif 1774 1775 1776 ; The no pop variant 1701 1777 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn__ud2 1702 1778 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn__ud2, BS3_PBC_NEAR … … 1706 1782 BS3_PROC_END_CMN bs3CpuBasic2_retn__ud2 1707 1783 1708 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i24__ud2 1709 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i24__ud2, BS3_PBC_NEAR 1710 ret 24 1711 .again: ud2 1712 jmp .again 1713 AssertCompile(.again - BS3_LAST_LABEL == 3) 1714 BS3_PROC_END_CMN bs3CpuBasic2_retn_i24__ud2 1715 1716 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i0__ud2 1717 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i0__ud2, BS3_PBC_NEAR 1718 ret 0 1719 .again: ud2 1720 jmp .again 1721 AssertCompile(.again - BS3_LAST_LABEL == 3) 1722 BS3_PROC_END_CMN bs3CpuBasic2_retn_i0__ud2 1723 1724 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i760__ud2 1725 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i760__ud2, BS3_PBC_NEAR 1726 ret 760 1727 .again: ud2 1728 jmp .again 1729 AssertCompile(.again - BS3_LAST_LABEL == 3) 1730 BS3_PROC_END_CMN bs3CpuBasic2_retn_i760__ud2 1784 retn_iw_macro 0 1785 retn_iw_macro 24 1786 retn_iw_macro 760 1787 retn_iw_macro 5193 1731 1788 1732 1789 %if TMPL_BITS == 64 1733 1790 1791 ; The no pop variant 1734 1792 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_rexw__ud2 1735 1793 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_rexw__ud2, BS3_PBC_NEAR … … 1740 1798 BS3_PROC_END_CMN bs3CpuBasic2_retn_rexw__ud2 1741 1799 1742 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i24_rexw__ud21743 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i24_rexw__ud2, BS3_PBC_NEAR1744 db 048h ; REX.W1745 ret 241746 .again: ud21747 jmp .again1748 AssertCompile(.again - BS3_LAST_LABEL == 4)1749 BS3_PROC_END_CMN bs3CpuBasic2_retn_i24_rexw__ud21750 1751 1800 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_opsize_rexw__ud2 1752 1801 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_opsize_rexw__ud2, BS3_PBC_NEAR … … 1755 1804 .again: ud2 1756 1805 jmp .again 1806 AssertCompile(.again - BS3_LAST_LABEL == 3) 1757 1807 BS3_PROC_END_CMN bs3CpuBasic2_retn_opsize_rexw__ud2 1758 1759 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i24_opsize_rexw__ud21760 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i24_opsize_rexw__ud2, BS3_PBC_NEAR1761 db 66h, 048h1762 ret 241763 .again: ud21764 jmp .again1765 AssertCompile(.again - BS3_LAST_LABEL == 5)1766 BS3_PROC_END_CMN bs3CpuBasic2_retn_i24_opsize_rexw__ud21767 1808 1768 1809 %endif … … 1773 1814 int3 1774 1815 1816 ; The no pop variant 1775 1817 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_opsize__ud2 1776 1818 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_opsize__ud2, BS3_PBC_NEAR … … 1781 1823 BS3_PROC_END_CMN bs3CpuBasic2_retn_opsize__ud2 1782 1824 1783 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i24_opsize__ud21784 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i24_opsize__ud2, BS3_PBC_NEAR1785 db 66h1786 ret 241787 .again: ud21788 jmp .again1789 AssertCompile(.again - BS3_LAST_LABEL == 4)1790 BS3_PROC_END_CMN bs3CpuBasic2_retn_i24_opsize__ud21791 1792 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i0_opsize__ud21793 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i0_opsize__ud2, BS3_PBC_NEAR1794 db 66h1795 ret 01796 .again: ud21797 jmp .again1798 AssertCompile(.again - BS3_LAST_LABEL == 4)1799 BS3_PROC_END_CMN bs3CpuBasic2_retn_i0_opsize__ud21800 1801 1825 %if TMPL_BITS == 64 1826 1827 ; The no pop variant 1802 1828 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_rexw_opsize__ud2 1803 1829 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_rexw_opsize__ud2, BS3_PBC_NEAR … … 1807 1833 jmp .again 1808 1834 BS3_PROC_END_CMN bs3CpuBasic2_retn_rexw_opsize__ud2 1809 1810 BS3_CPUBAS2_UD_OFF bs3CpuBasic2_retn_i24_rexw_opsize__ud2 1811 BS3_PROC_BEGIN_CMN bs3CpuBasic2_retn_i24_rexw_opsize__ud2, BS3_PBC_NEAR 1812 db 048h, 66h 1813 ret 24 1814 .again: ud2 1815 jmp .again 1816 AssertCompile(.again - BS3_LAST_LABEL == 5) 1817 BS3_PROC_END_CMN bs3CpuBasic2_retn_i24_rexw_opsize__ud2 1818 %endif 1835 %endif 1836 1837 retn_iw_opsize_macro 0 1838 retn_iw_opsize_macro 24 1839 retn_iw_opsize_macro 760 1840 retn_iw_opsize_macro 5193 1819 1841 1820 1842 ; End of opsize tests. -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-x0.c
r104400 r104401 4652 4652 PROTO_ALL(bs3CpuBasic2_retn_i24_opsize__ud2); 4653 4653 PROTO_ALL(bs3CpuBasic2_retn_i760__ud2); 4654 PROTO_ALL(bs3CpuBasic2_retn_i5193__ud2); 4655 PROTO_ALL(bs3CpuBasic2_retn_i5193_opsize__ud2); 4654 4656 PROTO_ALL(bs3CpuBasic2_retn_i0__ud2); 4655 4657 PROTO_ALL(bs3CpuBasic2_retn_i0_opsize__ud2); 4656 4658 FNBS3FAR bs3CpuBasic2_retn_rexw__ud2_c64; 4657 4659 FNBS3FAR bs3CpuBasic2_retn_i24_rexw__ud2_c64; 4660 FNBS3FAR bs3CpuBasic2_retn_i5193_rexw__ud2_c64; 4658 4661 FNBS3FAR bs3CpuBasic2_retn_opsize_rexw__ud2_c64; 4659 4662 FNBS3FAR bs3CpuBasic2_retn_rexw_opsize__ud2_c64; 4660 4663 FNBS3FAR bs3CpuBasic2_retn_i24_opsize_rexw__ud2_c64; 4661 4664 FNBS3FAR bs3CpuBasic2_retn_i24_rexw_opsize__ud2_c64; 4665 FNBS3FAR bs3CpuBasic2_retn_i5193_opsize_rexw__ud2_c64; 4666 FNBS3FAR bs3CpuBasic2_retn_i5193_rexw_opsize__ud2_c64; 4662 4667 PROTO_ALL(bs3CpuBasic2_retn_opsize_end); 4663 4668 #undef PROTO_ALL … … 4731 4736 const s_aTests[] = 4732 4737 { 4733 { false, 0, bs3CpuBasic2_retn__ud2_c16, }, 4734 { true, 0, bs3CpuBasic2_retn_opsize__ud2_c16, }, 4735 { false, 24, bs3CpuBasic2_retn_i24__ud2_c16, }, 4736 { true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c16, }, 4737 { false, 0, bs3CpuBasic2_retn_i0__ud2_c16, }, 4738 { true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c16, }, 4739 { false,760, bs3CpuBasic2_retn_i760__ud2_c16, }, 4738 { false, 0, bs3CpuBasic2_retn__ud2_c16, }, 4739 { true, 0, bs3CpuBasic2_retn_opsize__ud2_c16, }, 4740 { false, 24, bs3CpuBasic2_retn_i24__ud2_c16, }, 4741 { true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c16, }, 4742 { false, 0, bs3CpuBasic2_retn_i0__ud2_c16, }, 4743 { true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c16, }, 4744 { false, 760, bs3CpuBasic2_retn_i760__ud2_c16, }, 4745 { false, 5193, bs3CpuBasic2_retn_i5193__ud2_c16, }, 4746 { true, 5193, bs3CpuBasic2_retn_i5193_opsize__ud2_c16, }, 4740 4747 }; 4741 4748 … … 4793 4800 const s_aTests[] = 4794 4801 { 4795 { 32, false, 0, bs3CpuBasic2_retn__ud2_c32, }, 4796 { 32, true, 0, bs3CpuBasic2_retn_opsize__ud2_c32, }, 4797 { 32, false, 24, bs3CpuBasic2_retn_i24__ud2_c32, }, 4798 { 32, true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c32, }, 4799 { 32, false, 0, bs3CpuBasic2_retn_i0__ud2_c32, }, 4800 { 32, true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c32, }, 4801 { 32, false,760, bs3CpuBasic2_retn_i760__ud2_c32, }, 4802 { 32, false, 0, bs3CpuBasic2_retn__ud2_c32, }, 4803 { 32, true, 0, bs3CpuBasic2_retn_opsize__ud2_c32, }, 4804 { 32, false, 24, bs3CpuBasic2_retn_i24__ud2_c32, }, 4805 { 32, true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c32, }, 4806 { 32, false, 0, bs3CpuBasic2_retn_i0__ud2_c32, }, 4807 { 32, true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c32, }, 4808 { 32, false, 760, bs3CpuBasic2_retn_i760__ud2_c32, }, 4809 { 32, false, 5193, bs3CpuBasic2_retn_i5193__ud2_c32, }, 4810 { 32, true, 5193, bs3CpuBasic2_retn_i5193_opsize__ud2_c32, }, 4802 4811 }; 4803 4812 … … 4877 4886 const s_aTests[] = 4878 4887 { 4879 { 32, false, 0, bs3CpuBasic2_retn__ud2_c64, }, 4880 { 32, false, 0, bs3CpuBasic2_retn_rexw__ud2_c64, }, 4881 { 32, true, 0, bs3CpuBasic2_retn_opsize__ud2_c64, }, 4882 { 32, false, 0, bs3CpuBasic2_retn_opsize_rexw__ud2_c64, }, 4883 { 32, true, 0, bs3CpuBasic2_retn_rexw_opsize__ud2_c64, }, 4884 { 32, false, 24, bs3CpuBasic2_retn_i24__ud2_c64, }, 4885 { 32, false, 24, bs3CpuBasic2_retn_i24_rexw__ud2_c64, }, 4886 { 32, true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c64, }, 4887 { 32, false, 24, bs3CpuBasic2_retn_i24_opsize_rexw__ud2_c64, }, 4888 { 32, true, 24, bs3CpuBasic2_retn_i24_rexw_opsize__ud2_c64, }, 4889 { 32, false, 0, bs3CpuBasic2_retn_i0__ud2_c64, }, 4890 { 32, true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c64, }, 4891 { 32, false,760, bs3CpuBasic2_retn_i760__ud2_c64, }, 4888 { 32, false, 0, bs3CpuBasic2_retn__ud2_c64, }, 4889 { 32, false, 0, bs3CpuBasic2_retn_rexw__ud2_c64, }, 4890 { 32, true, 0, bs3CpuBasic2_retn_opsize__ud2_c64, }, 4891 { 32, false, 0, bs3CpuBasic2_retn_opsize_rexw__ud2_c64, }, 4892 { 32, true, 0, bs3CpuBasic2_retn_rexw_opsize__ud2_c64, }, 4893 { 32, false, 24, bs3CpuBasic2_retn_i24__ud2_c64, }, 4894 { 32, false, 24, bs3CpuBasic2_retn_i24_rexw__ud2_c64, }, 4895 { 32, true, 24, bs3CpuBasic2_retn_i24_opsize__ud2_c64, }, 4896 { 32, false, 24, bs3CpuBasic2_retn_i24_opsize_rexw__ud2_c64, }, 4897 { 32, true, 24, bs3CpuBasic2_retn_i24_rexw_opsize__ud2_c64, }, 4898 { 32, false, 0, bs3CpuBasic2_retn_i0__ud2_c64, }, 4899 { 32, true, 0, bs3CpuBasic2_retn_i0_opsize__ud2_c64, }, 4900 { 32, false, 760, bs3CpuBasic2_retn_i760__ud2_c64, }, 4901 { 32, false, 5193, bs3CpuBasic2_retn_i5193__ud2_c64, }, 4902 { 32, false, 5193, bs3CpuBasic2_retn_i5193_rexw__ud2_c64, }, 4903 { 32, true, 5193, bs3CpuBasic2_retn_i5193_opsize__ud2_c64, }, 4904 { 32, false, 5193, bs3CpuBasic2_retn_i5193_opsize_rexw__ud2_c64, }, 4905 { 32, true, 5193, bs3CpuBasic2_retn_i5193_rexw_opsize__ud2_c64, }, 4892 4906 }; 4893 4907 BS3CPUVENDOR const enmCpuVendor = Bs3GetCpuVendor();
Note:
See TracChangeset
for help on using the changeset viewer.