Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openj9
Path: blob/master/runtime/j9vm31/j9vm31floatstubs.s
5985 views
1
*
2
* Copyright (c) 2021, 2021 IBM Corp. and others
3
*
4
* This program and the accompanying materials are made
5
* available under the terms of the Eclipse Public License 2.0
6
* which accompanies this distribution and is available at
7
* https://www.eclipse.org/legal/epl-2.0/ or the Apache License,
8
* Version 2.0 which accompanies this distribution and is available
9
* at https://www.apache.org/licenses/LICENSE-2.0.
10
*
11
* This Source Code is also Distributed under one or more
12
* Secondary Licenses, as those terms are defined by the
13
* Eclipse Public License, v. 2.0: GNU General Public License,
14
* version 2 with the GNU Classpath Exception [1] and GNU
15
* General Public License, version 2 with the OpenJDK Assembly
16
* Exception [2].
17
*
18
* [1] https://www.gnu.org/software/classpath/license.html
19
* [2] http://openjdk.java.net/legal/assembly-exception.html
20
*
21
TITLE 'j9vm31floatstubs'
22
**********************************************************************
23
* This file contains a set of stub functions with the sole
24
* intention of loading and storing float/double from/to FPR0.
25
* However, since the OS Linkage dictates FPR0 is the incoming
26
* param and outgoing return floating point register, these
27
* functions are actually NOPs. Ideally, we just generate
28
* inline assembly code from the C code (j9cel4ro64 in this case)
29
* once build compiler is upgraded.
30
31
J9VM_STE CSECT
32
J9VM_STE AMODE ANY
33
J9VM_STE RMODE ANY
34
EDCPRLG
35
* This routine is to extract FPR0 as a float
36
* however, since OS linkage returns FPR0 anyways
37
* this is a nop routine to trick compiler in
38
* extracting return value from FPR0.
39
EDCEPIL
40
END
41
42
J9VM_STD CSECT
43
J9VM_STD AMODE ANY
44
J9VM_STD RMODE ANY
45
EDCPRLG
46
* This routine is to extract FPR0 as a double
47
* however, since OS linkage returns FPR0 anyways
48
* this is a nop routine to trick compiler in
49
* extracting return value from FPR0.
50
EDCEPIL
51
END
52
53
J9VM_LE CSECT
54
J9VM_LE AMODE ANY
55
J9VM_LE RMODE ANY
56
EDCPRLG
57
* This routine is to store FPR0 with a float
58
* parameter. However, since OS linkage uses
59
* FPR0 as the parm, this is a nop routine
60
* to trick the compiler in doing it for us.
61
EDCEPIL
62
END
63
64
J9VM_LD CSECT
65
J9VM_LD AMODE ANY
66
J9VM_LD RMODE ANY
67
EDCPRLG
68
* This routine is to store FPR0 with a double
69
* parameter. However, since OS linkage uses
70
* FPR0 as the parm, this is a nop routine
71
* to trick the compiler in doing it for us.
72
EDCEPIL
73
END
74
75
76