equal
deleted
inserted
replaced
258 void align_address(int modulus); |
258 void align_address(int modulus); |
259 |
259 |
260 // |
260 // |
261 // Constants, loading constants, TOC support |
261 // Constants, loading constants, TOC support |
262 // |
262 // |
263 // Safepoint check factored out. |
|
264 void generate_safepoint_check(Label& slow_path, Register scratch = noreg, bool may_relocate = true); |
|
265 |
263 |
266 // Load generic address: d <- base(a) + index(a) + disp(a). |
264 // Load generic address: d <- base(a) + index(a) + disp(a). |
267 inline void load_address(Register d, const Address &a); |
265 inline void load_address(Register d, const Address &a); |
268 // Load absolute address (and try to optimize). |
266 // Load absolute address (and try to optimize). |
269 void load_absolute_address(Register d, address addr); |
267 void load_absolute_address(Register d, address addr); |
441 address get_PC(Register result); |
439 address get_PC(Register result); |
442 |
440 |
443 // Get current PC + offset. Offset given in bytes, must be even! |
441 // Get current PC + offset. Offset given in bytes, must be even! |
444 address get_PC(Register result, int64_t offset); |
442 address get_PC(Register result, int64_t offset); |
445 |
443 |
|
444 // Get size of instruction at pc (which must point to valid code). |
|
445 void instr_size(Register size, Register pc); |
|
446 |
446 // Accessing, and in particular modifying, a stack location is only safe if |
447 // Accessing, and in particular modifying, a stack location is only safe if |
447 // the stack pointer (Z_SP) is set such that the accessed stack location is |
448 // the stack pointer (Z_SP) is set such that the accessed stack location is |
448 // in the reserved range. |
449 // in the reserved range. |
449 // |
450 // |
450 // From a performance point of view, it is desirable not to change the SP |
451 // From a performance point of view, it is desirable not to change the SP |
638 // realized by one of the instructions stw, stwu, stwx, or stwux. |
639 // realized by one of the instructions stw, stwu, stwx, or stwux. |
639 static bool is_memory_serialization(int instruction, JavaThread* thread, void* ucontext); |
640 static bool is_memory_serialization(int instruction, JavaThread* thread, void* ucontext); |
640 |
641 |
641 // Support for serializing memory accesses between threads. |
642 // Support for serializing memory accesses between threads. |
642 void serialize_memory(Register thread, Register tmp1, Register tmp2); |
643 void serialize_memory(Register thread, Register tmp1, Register tmp2); |
|
644 |
|
645 // Check if safepoint requested and if so branch |
|
646 void safepoint_poll(Label& slow_path, Register temp_reg); |
643 |
647 |
644 // Stack overflow checking |
648 // Stack overflow checking |
645 void bang_stack_with_offset(int offset); |
649 void bang_stack_with_offset(int offset); |
646 |
650 |
647 // Check for reserved stack access in method being exited. If the reserved |
651 // Check for reserved stack access in method being exited. If the reserved |