1 /* |
1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2014, 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. |
655 } |
654 } |
656 } |
655 } |
657 return false; |
656 return false; |
658 } |
657 } |
659 |
658 |
|
659 // Similar to cousin class CallNode::returns_pointer |
|
660 // Because this is used in deoptimization, we want the type info, not the data |
|
661 // flow info; the interpreter will "use" things that are dead to the optimizer. |
|
662 bool MachCallNode::returns_pointer() const { |
|
663 const TypeTuple *r = tf()->range(); |
|
664 return (r->cnt() > TypeFunc::Parms && |
|
665 r->field_at(TypeFunc::Parms)->isa_ptr()); |
|
666 } |
660 |
667 |
661 //------------------------------Registers-------------------------------------- |
668 //------------------------------Registers-------------------------------------- |
662 const RegMask &MachCallNode::in_RegMask(uint idx) const { |
669 const RegMask &MachCallNode::in_RegMask(uint idx) const { |
663 // Values in the domain use the users calling convention, embodied in the |
670 // Values in the domain use the users calling convention, embodied in the |
664 // _in_rms array of RegMasks. |
671 // _in_rms array of RegMasks. |