hotspot/src/cpu/arm/vm/macroAssembler_arm.hpp
changeset 46294 345a46524a19
parent 42664 29142a56c193
child 46327 91576389a517
equal deleted inserted replaced
46293:9a88f7fe04b5 46294:345a46524a19
     1 /*
     1 /*
     2  * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   204 
   204 
   205   // This is the base routine called by the different versions of call_VM. The interpreter
   205   // This is the base routine called by the different versions of call_VM. The interpreter
   206   // may customize this version by overriding it for its purposes (e.g., to save/restore
   206   // may customize this version by overriding it for its purposes (e.g., to save/restore
   207   // additional registers when doing a VM call).
   207   // additional registers when doing a VM call).
   208   virtual void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions);
   208   virtual void call_VM_helper(Register oop_result, address entry_point, int number_of_arguments, bool check_exceptions);
       
   209 public:
       
   210 
       
   211   MacroAssembler(CodeBuffer* code) : Assembler(code) {}
   209 
   212 
   210   // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code.
   213   // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code.
   211   // The implementation is only non-empty for the InterpreterMacroAssembler,
   214   // The implementation is only non-empty for the InterpreterMacroAssembler,
   212   // as only the interpreter handles PopFrame and ForceEarlyReturn requests.
   215   // as only the interpreter handles PopFrame and ForceEarlyReturn requests.
   213   virtual void check_and_handle_popframe() {}
   216   virtual void check_and_handle_popframe() {}
   214   virtual void check_and_handle_earlyret() {}
   217   virtual void check_and_handle_earlyret() {}
   215 
       
   216 public:
       
   217 
       
   218   MacroAssembler(CodeBuffer* code) : Assembler(code) {}
       
   219 
   218 
   220   // By default, we do not need relocation information for non
   219   // By default, we do not need relocation information for non
   221   // patchable absolute addresses. However, when needed by some
   220   // patchable absolute addresses. However, when needed by some
   222   // extensions, ignore_non_patchable_relocations can be modified,
   221   // extensions, ignore_non_patchable_relocations can be modified,
   223   // returning false to preserve all relocation information.
   222   // returning false to preserve all relocation information.