equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. |
3 * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
75 address entry_point, // the entry point |
75 address entry_point, // the entry point |
76 int number_of_arguments, // the number of arguments (w/o thread) to pop after the call |
76 int number_of_arguments, // the number of arguments (w/o thread) to pop after the call |
77 bool check_exceptions // whether to check for pending exceptions after return |
77 bool check_exceptions // whether to check for pending exceptions after return |
78 ); |
78 ); |
79 |
79 |
80 // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
|
81 // The implementation is only non-empty for the InterpreterMacroAssembler, |
|
82 // as only the interpreter handles PopFrame and ForceEarlyReturn requests. |
|
83 virtual void check_and_handle_popframe(Register java_thread); |
|
84 virtual void check_and_handle_earlyret(Register java_thread); |
|
85 |
|
86 void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions = true); |
80 void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions = true); |
87 |
81 |
88 // Maximum size of class area in Metaspace when compressed |
82 // Maximum size of class area in Metaspace when compressed |
89 uint64_t use_XOR_for_compressed_class_base; |
83 uint64_t use_XOR_for_compressed_class_base; |
90 |
84 |
94 = (operand_valid_for_logical_immediate(false /*is32*/, |
88 = (operand_valid_for_logical_immediate(false /*is32*/, |
95 (uint64_t)Universe::narrow_klass_base()) |
89 (uint64_t)Universe::narrow_klass_base()) |
96 && ((uint64_t)Universe::narrow_klass_base() |
90 && ((uint64_t)Universe::narrow_klass_base() |
97 > (1u << log2_intptr(CompressedClassSpaceSize)))); |
91 > (1u << log2_intptr(CompressedClassSpaceSize)))); |
98 } |
92 } |
|
93 |
|
94 // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
|
95 // The implementation is only non-empty for the InterpreterMacroAssembler, |
|
96 // as only the interpreter handles PopFrame and ForceEarlyReturn requests. |
|
97 virtual void check_and_handle_popframe(Register java_thread); |
|
98 virtual void check_and_handle_earlyret(Register java_thread); |
99 |
99 |
100 // Biased locking support |
100 // Biased locking support |
101 // lock_reg and obj_reg must be loaded up with the appropriate values. |
101 // lock_reg and obj_reg must be loaded up with the appropriate values. |
102 // swap_reg is killed. |
102 // swap_reg is killed. |
103 // tmp_reg must be supplied and must not be rscratch1 or rscratch2 |
103 // tmp_reg must be supplied and must not be rscratch1 or rscratch2 |