1 /*
 2  * Copyright (c) 2018, 2024, 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 package runtime.valhalla.inlinetypes;
24 
25 import jdk.internal.vm.annotation.LooselyConsistentValue;
26 import jdk.internal.vm.annotation.ImplicitlyConstructible;
27 
28 @ImplicitlyConstructible
29 @LooselyConsistentValue
30 public value class JumboInline {
31     final long l0;
32     final long l1;
33     final long l2;
34     final long l3;
35     final long l4;
36     final long l5;
37     final long l6;
38     final long l7;
39     final long l8;
40     final long l9;
41     final long l10;
42     final long l11;
43     final long l12;
44     final long l13;
45     final long l14;
46     final long l15;
47     final long l16;
48     final long l17;
49     final long l18;
50     final long l19;
51 
52     public JumboInline(long l0Val, long l1Val) {
53         l0 = l0Val;
54         l1 = l1Val;
55         l2 = l0Val+1;
56         l3 = l1Val+2;
57         l4 = l0Val+3;
58         l5 = l1Val+4;
59         l6 = l0Val+5;
60         l7 = l1Val+6;
61         l8 = l0Val+7;
62         l9 = l1Val+8;
63         l10 = l0Val+9;
64         l11 = l1Val+10;
65         l12 = l0Val+11;
66         l13 = l1Val+12;
67         l14 = l0Val+13;
68         l15 = l1Val+14;
69         l16 = l0Val+15;
70         l17 = l1Val+16;
71         l18 = l0Val+17;
72         l19 = l1Val+18;
73     }
74 
75     public boolean verify() {
76         return (l2 == (l0 + 1)  &&  l3 == (l1 + 2) && l4 == (l0 + 3)
77             && l5 == (l1 + 4) && l6 == (l0 + 5) && l7 == (l1 + 6) && l8 == (l0 + 7)
78             && l9 == (l1 + 8) && l10 == (l0 + 9) && l11 == (l1 + 10)
79             && l12 == (l0 + 11) && l13 == (l1 + 12) && l14 == (l1 + 13)
80             && l15 == (l1 + 14) && l16 == (l0 + l15) && l17 == (l1 + 16)
81             && l18 == (l0 + 17) && l19 == (l1 + 18));
82     }
83 
84     public boolean equals(Object o) {
85         if(o instanceof JumboInline) {
86             JumboInline j = (JumboInline)o;
87             return (l0 == j.l0 && l1 == j.l1 && l2 == j.l2 && l3 == j.l3
88                     && l4 == j.l4 && l5 == j.l5 && l6 == j.l6 && l7 == j.l7
89                     && l8 == j.l8 && l9 == j.l9 && l10 == j.l10 && l11 == j.l11
90                     && l12 == j.l12 && l13 == j.l13 && l14 == j.l14 && l15 == j.l15
91                     && l16 == j.l16 && l17 == j.l17 && l18 == j.l18 && l19 == j.l19);
92         } else {
93             return false;
94         }
95     }
96 }