1301 // biased locking exit case failed.
1302 void biased_locking_exit(Address mark_addr, Register temp_reg, Label& done, bool allow_delay_slot_filling = false);
1303
1304 // allocation
1305 void eden_allocate(
1306 Register obj, // result: pointer to object after successful allocation
1307 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
1308 int con_size_in_bytes, // object size in bytes if known at compile time
1309 Register t1, // temp register
1310 Register t2, // temp register
1311 Label& slow_case // continuation point if fast allocation fails
1312 );
1313 void tlab_allocate(
1314 Register obj, // result: pointer to object after successful allocation
1315 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
1316 int con_size_in_bytes, // object size in bytes if known at compile time
1317 Register t1, // temp register
1318 Label& slow_case // continuation point if fast allocation fails
1319 );
1320 void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case);
1321 void incr_allocated_bytes(RegisterOrConstant size_in_bytes,
1322 Register t1, Register t2);
1323
1324 // interface method calling
1325 void lookup_interface_method(Register recv_klass,
1326 Register intf_klass,
1327 RegisterOrConstant itable_index,
1328 Register method_result,
1329 Register temp_reg, Register temp2_reg,
1330 Label& no_such_interface);
1331
1332 // virtual method calling
1333 void lookup_virtual_method(Register recv_klass,
1334 RegisterOrConstant vtable_index,
1335 Register method_result);
1336
1337 // Test sub_klass against super_klass, with fast and slow paths.
1338
1339 // The fast path produces a tri-state answer: yes / no / maybe-slow.
1340 // One of the three labels can be NULL, meaning take the fall-through.
|
1301 // biased locking exit case failed.
1302 void biased_locking_exit(Address mark_addr, Register temp_reg, Label& done, bool allow_delay_slot_filling = false);
1303
1304 // allocation
1305 void eden_allocate(
1306 Register obj, // result: pointer to object after successful allocation
1307 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
1308 int con_size_in_bytes, // object size in bytes if known at compile time
1309 Register t1, // temp register
1310 Register t2, // temp register
1311 Label& slow_case // continuation point if fast allocation fails
1312 );
1313 void tlab_allocate(
1314 Register obj, // result: pointer to object after successful allocation
1315 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
1316 int con_size_in_bytes, // object size in bytes if known at compile time
1317 Register t1, // temp register
1318 Label& slow_case // continuation point if fast allocation fails
1319 );
1320 void tlab_refill(Label& retry_tlab, Label& try_eden, Label& slow_case);
1321 void zero_memory(Register base, Register index);
1322 void incr_allocated_bytes(RegisterOrConstant size_in_bytes,
1323 Register t1, Register t2);
1324
1325 // interface method calling
1326 void lookup_interface_method(Register recv_klass,
1327 Register intf_klass,
1328 RegisterOrConstant itable_index,
1329 Register method_result,
1330 Register temp_reg, Register temp2_reg,
1331 Label& no_such_interface);
1332
1333 // virtual method calling
1334 void lookup_virtual_method(Register recv_klass,
1335 RegisterOrConstant vtable_index,
1336 Register method_result);
1337
1338 // Test sub_klass against super_klass, with fast and slow paths.
1339
1340 // The fast path produces a tri-state answer: yes / no / maybe-slow.
1341 // One of the three labels can be NULL, meaning take the fall-through.
|