1805 RegisterConstant itable_index, |
1805 RegisterConstant itable_index, |
1806 Register method_result, |
1806 Register method_result, |
1807 Register scan_temp, |
1807 Register scan_temp, |
1808 Label& no_such_interface); |
1808 Label& no_such_interface); |
1809 |
1809 |
|
1810 // Test sub_klass against super_klass, with fast and slow paths. |
|
1811 |
|
1812 // The fast path produces a tri-state answer: yes / no / maybe-slow. |
|
1813 // One of the three labels can be NULL, meaning take the fall-through. |
|
1814 // If super_check_offset is -1, the value is loaded up from super_klass. |
|
1815 // No registers are killed, except temp_reg. |
|
1816 void check_klass_subtype_fast_path(Register sub_klass, |
|
1817 Register super_klass, |
|
1818 Register temp_reg, |
|
1819 Label* L_success, |
|
1820 Label* L_failure, |
|
1821 Label* L_slow_path, |
|
1822 RegisterConstant super_check_offset = RegisterConstant(-1)); |
|
1823 |
|
1824 // The rest of the type check; must be wired to a corresponding fast path. |
|
1825 // It does not repeat the fast path logic, so don't use it standalone. |
|
1826 // The temp_reg and temp2_reg can be noreg, if no temps are available. |
|
1827 // Updates the sub's secondary super cache as necessary. |
|
1828 // If set_cond_codes, condition codes will be Z on success, NZ on failure. |
|
1829 void check_klass_subtype_slow_path(Register sub_klass, |
|
1830 Register super_klass, |
|
1831 Register temp_reg, |
|
1832 Register temp2_reg, |
|
1833 Label* L_success, |
|
1834 Label* L_failure, |
|
1835 bool set_cond_codes = false); |
|
1836 |
|
1837 // Simplified, combined version, good for typical uses. |
|
1838 // Falls through on failure. |
|
1839 void check_klass_subtype(Register sub_klass, |
|
1840 Register super_klass, |
|
1841 Register temp_reg, |
|
1842 Label& L_success); |
|
1843 |
1810 //---- |
1844 //---- |
1811 void set_word_if_not_zero(Register reg); // sets reg to 1 if not zero, otherwise 0 |
1845 void set_word_if_not_zero(Register reg); // sets reg to 1 if not zero, otherwise 0 |
1812 |
1846 |
1813 // Debugging |
1847 // Debugging |
1814 |
1848 |