13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 #ifndef SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP 25 #define SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP 26 27 #include "interpreter/interpreter.hpp" 28 #include "memory/allocation.hpp" 29 #include "runtime/arguments.hpp" 30 #include "runtime/deoptimization.hpp" 31 32 #define JVMCI_ERROR(...) \ 33 { Exceptions::fthrow(THREAD_AND_LOCATION, vmSymbols::jdk_vm_ci_common_JVMCIError(), __VA_ARGS__); return; } 34 35 #define JVMCI_ERROR_(ret, ...) \ 36 { Exceptions::fthrow(THREAD_AND_LOCATION, vmSymbols::jdk_vm_ci_common_JVMCIError(), __VA_ARGS__); return ret; } 37 38 #define JVMCI_ERROR_0(...) JVMCI_ERROR_(0, __VA_ARGS__) 39 #define JVMCI_ERROR_NULL(...) JVMCI_ERROR_(NULL, __VA_ARGS__) 40 #define JVMCI_ERROR_OK(...) JVMCI_ERROR_(JVMCIEnv::ok, __VA_ARGS__) 41 #define CHECK_OK CHECK_(JVMCIEnv::ok) 42 43 class ParseClosure : public StackObj { 44 int _lineNo; 45 char* _filename; 46 bool _abort; 47 protected: 48 void abort() { _abort = true; } 49 void warn_and_abort(const char* message) { 50 warn(message); 51 abort(); 52 } 53 void warn(const char* message) { 54 warning("Error at line %d while parsing %s: %s", _lineNo, _filename == NULL ? "?" : _filename, message); 55 } 56 public: | 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 #ifndef SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP 25 #define SHARE_VM_JVMCI_JVMCI_RUNTIME_HPP 26 27 #include "interpreter/interpreter.hpp" 28 #include "memory/allocation.hpp" 29 #include "runtime/arguments.hpp" 30 #include "runtime/deoptimization.hpp" 31 32 #define JVMCI_ERROR(...) \ 33 { Exceptions::fthrow(THREAD_AND_LOCATION, vmSymbols::java_lang_InternalError(), __VA_ARGS__); return; } 34 35 #define JVMCI_ERROR_(ret, ...) \ 36 { Exceptions::fthrow(THREAD_AND_LOCATION, vmSymbols::java_lang_InternalError(), __VA_ARGS__); return ret; } 37 38 #define JVMCI_ERROR_0(...) JVMCI_ERROR_(0, __VA_ARGS__) 39 #define JVMCI_ERROR_NULL(...) JVMCI_ERROR_(NULL, __VA_ARGS__) 40 #define JVMCI_ERROR_OK(...) JVMCI_ERROR_(JVMCIEnv::ok, __VA_ARGS__) 41 #define CHECK_OK CHECK_(JVMCIEnv::ok) 42 43 class ParseClosure : public StackObj { 44 int _lineNo; 45 char* _filename; 46 bool _abort; 47 protected: 48 void abort() { _abort = true; } 49 void warn_and_abort(const char* message) { 50 warn(message); 51 abort(); 52 } 53 void warn(const char* message) { 54 warning("Error at line %d while parsing %s: %s", _lineNo, _filename == NULL ? "?" : _filename, message); 55 } 56 public: |