Path: blob/master/src/hotspot/cpu/aarch64/foreign_globals_aarch64.hpp
40930 views
/*1* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.2* Copyright (c) 2019, Arm Limited. All rights reserved.3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.4*5* This code is free software; you can redistribute it and/or modify it6* under the terms of the GNU General Public License version 2 only, as7* published by the Free Software Foundation.8*9* This code is distributed in the hope that it will be useful, but WITHOUT10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License12* version 2 for more details (a copy is included in the LICENSE file that13* accompanied this code).14*15* You should have received a copy of the GNU General Public License version16* 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 USA20* or visit www.oracle.com if you need additional information or have any21* questions.22*/2324#ifndef CPU_AARCH64_VM_FOREIGN_GLOBALS_AARCH64_HPP25#define CPU_AARCH64_VM_FOREIGN_GLOBALS_AARCH64_HPP2627#include "asm/macroAssembler.hpp"28#include "utilities/growableArray.hpp"2930constexpr size_t float_reg_size = 16; // bytes3132struct ABIDescriptor {33GrowableArray<Register> _integer_argument_registers;34GrowableArray<Register> _integer_return_registers;35GrowableArray<FloatRegister> _vector_argument_registers;36GrowableArray<FloatRegister> _vector_return_registers;3738GrowableArray<Register> _integer_additional_volatile_registers;39GrowableArray<FloatRegister> _vector_additional_volatile_registers;4041int32_t _stack_alignment_bytes;42int32_t _shadow_space_bytes;4344bool is_volatile_reg(Register reg) const;45bool is_volatile_reg(FloatRegister reg) const;46};4748struct BufferLayout {49size_t stack_args_bytes;50size_t stack_args;51size_t arguments_vector;52size_t arguments_integer;53size_t arguments_next_pc;54size_t returns_vector;55size_t returns_integer;56size_t buffer_size;57};5859#endif // CPU_AARCH64_VM_FOREIGN_GLOBALS_AARCH64_HPP606162