1403 int extra_slot_offset = 0); 1404 // Address of Gargs and argument_offset. 1405 Address argument_address(RegisterOrConstant arg_slot, 1406 Register temp_reg = noreg, 1407 int extra_slot_offset = 0); 1408 1409 // Stack overflow checking 1410 1411 // Note: this clobbers G3_scratch 1412 void bang_stack_with_offset(int offset) { 1413 // stack grows down, caller passes positive offset 1414 assert(offset > 0, "must bang with negative offset"); 1415 set((-offset)+STACK_BIAS, G3_scratch); 1416 st(G0, SP, G3_scratch); 1417 } 1418 1419 // Writes to stack successive pages until offset reached to check for 1420 // stack overflow + shadow pages. Clobbers tsp and scratch registers. 1421 void bang_stack_size(Register Rsize, Register Rtsp, Register Rscratch); 1422 1423 virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset); 1424 1425 void verify_tlab(); 1426 1427 Condition negate_condition(Condition cond); 1428 1429 // Helper functions for statistics gathering. 1430 // Conditionally (non-atomically) increments passed counter address, preserving condition codes. 1431 void cond_inc(Condition cond, address counter_addr, Register Rtemp1, Register Rtemp2); 1432 // Unconditional increment. 1433 void inc_counter(address counter_addr, Register Rtmp1, Register Rtmp2); 1434 void inc_counter(int* counter_addr, Register Rtmp1, Register Rtmp2); 1435 1436 // Compare char[] arrays aligned to 4 bytes. 1437 void char_arrays_equals(Register ary1, Register ary2, 1438 Register limit, Register result, 1439 Register chr1, Register chr2, Label& Ldone); 1440 // Use BIS for zeroing 1441 void bis_zeroing(Register to, Register count, Register temp, Label& Ldone); 1442 | 1403 int extra_slot_offset = 0); 1404 // Address of Gargs and argument_offset. 1405 Address argument_address(RegisterOrConstant arg_slot, 1406 Register temp_reg = noreg, 1407 int extra_slot_offset = 0); 1408 1409 // Stack overflow checking 1410 1411 // Note: this clobbers G3_scratch 1412 void bang_stack_with_offset(int offset) { 1413 // stack grows down, caller passes positive offset 1414 assert(offset > 0, "must bang with negative offset"); 1415 set((-offset)+STACK_BIAS, G3_scratch); 1416 st(G0, SP, G3_scratch); 1417 } 1418 1419 // Writes to stack successive pages until offset reached to check for 1420 // stack overflow + shadow pages. Clobbers tsp and scratch registers. 1421 void bang_stack_size(Register Rsize, Register Rtsp, Register Rscratch); 1422 1423 // Check for reserved stack access in method being exited (for the compilers) 1424 void reserved_stack_check(); 1425 1426 virtual RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset); 1427 1428 void verify_tlab(); 1429 1430 Condition negate_condition(Condition cond); 1431 1432 // Helper functions for statistics gathering. 1433 // Conditionally (non-atomically) increments passed counter address, preserving condition codes. 1434 void cond_inc(Condition cond, address counter_addr, Register Rtemp1, Register Rtemp2); 1435 // Unconditional increment. 1436 void inc_counter(address counter_addr, Register Rtmp1, Register Rtmp2); 1437 void inc_counter(int* counter_addr, Register Rtmp1, Register Rtmp2); 1438 1439 // Compare char[] arrays aligned to 4 bytes. 1440 void char_arrays_equals(Register ary1, Register ary2, 1441 Register limit, Register result, 1442 Register chr1, Register chr2, Label& Ldone); 1443 // Use BIS for zeroing 1444 void bis_zeroing(Register to, Register count, Register temp, Label& Ldone); 1445 |