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 }