equal
deleted
inserted
replaced
210 _disp (disp) { |
210 _disp (disp) { |
211 assert(!index->is_valid() == (scale == Address::no_scale), |
211 assert(!index->is_valid() == (scale == Address::no_scale), |
212 "inconsistent address"); |
212 "inconsistent address"); |
213 } |
213 } |
214 |
214 |
215 Address(Register base, RegisterConstant index, ScaleFactor scale = times_1, int disp = 0) |
215 Address(Register base, RegisterOrConstant index, ScaleFactor scale = times_1, int disp = 0) |
216 : _base (base), |
216 : _base (base), |
217 _index(index.register_or_noreg()), |
217 _index(index.register_or_noreg()), |
218 _scale(scale), |
218 _scale(scale), |
219 _disp (disp + (index.constant_or_zero() * scale_size(scale))) { |
219 _disp (disp + (index.constant_or_zero() * scale_size(scale))) { |
220 if (!index.is_register()) scale = Address::no_scale; |
220 if (!index.is_register()) scale = Address::no_scale; |
254 _disp(in_bytes(disp)) { |
254 _disp(in_bytes(disp)) { |
255 assert(!index->is_valid() == (scale == Address::no_scale), |
255 assert(!index->is_valid() == (scale == Address::no_scale), |
256 "inconsistent address"); |
256 "inconsistent address"); |
257 } |
257 } |
258 |
258 |
259 Address(Register base, RegisterConstant index, ScaleFactor scale, ByteSize disp) |
259 Address(Register base, RegisterOrConstant index, ScaleFactor scale, ByteSize disp) |
260 : _base (base), |
260 : _base (base), |
261 _index(index.register_or_noreg()), |
261 _index(index.register_or_noreg()), |
262 _scale(scale), |
262 _scale(scale), |
263 _disp (in_bytes(disp) + (index.constant_or_zero() * scale_size(scale))) { |
263 _disp (in_bytes(disp) + (index.constant_or_zero() * scale_size(scale))) { |
264 if (!index.is_register()) scale = Address::no_scale; |
264 if (!index.is_register()) scale = Address::no_scale; |
1800 void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case); |
1800 void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case); |
1801 |
1801 |
1802 // interface method calling |
1802 // interface method calling |
1803 void lookup_interface_method(Register recv_klass, |
1803 void lookup_interface_method(Register recv_klass, |
1804 Register intf_klass, |
1804 Register intf_klass, |
1805 RegisterConstant itable_index, |
1805 RegisterOrConstant 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. |
1810 // Test sub_klass against super_klass, with fast and slow paths. |
1817 Register super_klass, |
1817 Register super_klass, |
1818 Register temp_reg, |
1818 Register temp_reg, |
1819 Label* L_success, |
1819 Label* L_success, |
1820 Label* L_failure, |
1820 Label* L_failure, |
1821 Label* L_slow_path, |
1821 Label* L_slow_path, |
1822 RegisterConstant super_check_offset = RegisterConstant(-1)); |
1822 RegisterOrConstant super_check_offset = RegisterOrConstant(-1)); |
1823 |
1823 |
1824 // The rest of the type check; must be wired to a corresponding fast path. |
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. |
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. |
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. |
1827 // Updates the sub's secondary super cache as necessary. |
1881 |
1881 |
1882 // Writes to stack successive pages until offset reached to check for |
1882 // Writes to stack successive pages until offset reached to check for |
1883 // stack overflow + shadow pages. Also, clobbers tmp |
1883 // stack overflow + shadow pages. Also, clobbers tmp |
1884 void bang_stack_size(Register size, Register tmp); |
1884 void bang_stack_size(Register size, Register tmp); |
1885 |
1885 |
1886 virtual RegisterConstant delayed_value(intptr_t* delayed_value_addr, |
1886 virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, |
1887 Register tmp, |
1887 Register tmp, |
1888 int offset); |
1888 int offset); |
1889 |
1889 |
1890 // Support for serializing memory accesses between threads |
1890 // Support for serializing memory accesses between threads |
1891 void serialize_memory(Register thread, Register tmp); |
1891 void serialize_memory(Register thread, Register tmp); |
1892 |
1892 |
1893 void verify_tlab(); |
1893 void verify_tlab(); |