1 /* |
1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
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 |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
1081 ryhi = -rylo0; |
1081 ryhi = -rylo0; |
1082 } |
1082 } |
1083 assert(rxlo == (int)rxlo && rxhi == (int)rxhi, "x should not overflow"); |
1083 assert(rxlo == (int)rxlo && rxhi == (int)rxhi, "x should not overflow"); |
1084 assert(rylo == (int)rylo && ryhi == (int)ryhi, "y should not overflow"); |
1084 assert(rylo == (int)rylo && ryhi == (int)ryhi, "y should not overflow"); |
1085 Node* cx = phase->C->constrained_convI2L(phase, x, TypeInt::make(rxlo, rxhi, widen), NULL); |
1085 Node* cx = phase->C->constrained_convI2L(phase, x, TypeInt::make(rxlo, rxhi, widen), NULL); |
|
1086 Node *hook = new (phase->C) Node(1); |
|
1087 hook->init_req(0, cx); // Add a use to cx to prevent him from dying |
1086 Node* cy = phase->C->constrained_convI2L(phase, y, TypeInt::make(rylo, ryhi, widen), NULL); |
1088 Node* cy = phase->C->constrained_convI2L(phase, y, TypeInt::make(rylo, ryhi, widen), NULL); |
|
1089 hook->del_req(0); // Just yank bogus edge |
|
1090 hook->destruct(); |
1087 switch (op) { |
1091 switch (op) { |
1088 case Op_AddI: return new (phase->C) AddLNode(cx, cy); |
1092 case Op_AddI: return new (phase->C) AddLNode(cx, cy); |
1089 case Op_SubI: return new (phase->C) SubLNode(cx, cy); |
1093 case Op_SubI: return new (phase->C) SubLNode(cx, cy); |
1090 default: ShouldNotReachHere(); |
1094 default: ShouldNotReachHere(); |
1091 } |
1095 } |