Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/hotspot/cpu/x86/interpreterRT_x86.hpp
41144 views
1
/*
2
* Copyright (c) 1998, 2019, Oracle and/or its affiliates. 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 it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
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
25
#ifndef CPU_X86_INTERPRETERRT_X86_HPP
26
#define CPU_X86_INTERPRETERRT_X86_HPP
27
28
// This is included in the middle of class Interpreter.
29
// Do not include files here.
30
31
// native method calls
32
33
class SignatureHandlerGenerator: public NativeSignatureIterator {
34
private:
35
MacroAssembler* _masm;
36
#ifdef AMD64
37
#ifdef _WIN64
38
unsigned int _num_args;
39
#else
40
unsigned int _num_fp_args;
41
unsigned int _num_int_args;
42
#endif // _WIN64
43
int _stack_offset;
44
#else
45
void move(int from_offset, int to_offset);
46
void box(int from_offset, int to_offset);
47
#endif // AMD64
48
49
void pass_int();
50
void pass_long();
51
void pass_float();
52
#ifdef AMD64
53
void pass_double();
54
#endif // AMD64
55
void pass_object();
56
57
public:
58
// Creation
59
SignatureHandlerGenerator(const methodHandle& method, CodeBuffer* buffer);
60
61
// Code generation
62
void generate(uint64_t fingerprint);
63
64
// Code generation support
65
static Register from();
66
static Register to();
67
static Register temp();
68
};
69
70
#endif // CPU_X86_INTERPRETERRT_X86_HPP
71
72