src/share/vm/opto/connode.cpp

changeset 9737
c06dc174d786
parent 8727
3d8d14307428
child 9756
2be326848943
     1.1 --- a/src/share/vm/opto/connode.cpp	Mon Mar 11 11:42:57 2019 +0100
     1.2 +++ b/src/share/vm/opto/connode.cpp	Mon Jan 21 13:31:42 2019 +0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -1083,7 +1083,11 @@
    1.11      assert(rxlo == (int)rxlo && rxhi == (int)rxhi, "x should not overflow");
    1.12      assert(rylo == (int)rylo && ryhi == (int)ryhi, "y should not overflow");
    1.13      Node* cx = phase->C->constrained_convI2L(phase, x, TypeInt::make(rxlo, rxhi, widen), NULL);
    1.14 +    Node *hook = new (phase->C) Node(1);
    1.15 +    hook->init_req(0, cx);  // Add a use to cx to prevent him from dying
    1.16      Node* cy = phase->C->constrained_convI2L(phase, y, TypeInt::make(rylo, ryhi, widen), NULL);
    1.17 +    hook->del_req(0);  // Just yank bogus edge
    1.18 +    hook->destruct();
    1.19      switch (op) {
    1.20      case Op_AddI:  return new (phase->C) AddLNode(cx, cy);
    1.21      case Op_SubI:  return new (phase->C) SubLNode(cx, cy);

mercurial