aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/machnode.cpp
diff options
context:
space:
mode:
authorgoetz <none@none>2013-11-20 11:08:09 -0800
committergoetz <none@none>2013-11-20 11:08:09 -0800
commit5413ca1d1c0a64c5c01dea68ce7a04c2a0e5a1a4 (patch)
tree206102dcea4a5a002ff432294e6f5b567ed45c8f /src/share/vm/opto/machnode.cpp
parentb3950dff20d8606b81cc4e24fa9845ab48580c09 (diff)
8028580: PPC64 (part 114/120): Support for Call nodes with constants.
Summary: extends MachCall nodes so that they can issue constants to the constant table Reviewed-by: kvn
Diffstat (limited to 'src/share/vm/opto/machnode.cpp')
-rw-r--r--src/share/vm/opto/machnode.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/share/vm/opto/machnode.cpp b/src/share/vm/opto/machnode.cpp
index 2777058c2..7411e183c 100644
--- a/src/share/vm/opto/machnode.cpp
+++ b/src/share/vm/opto/machnode.cpp
@@ -648,10 +648,15 @@ bool MachCallNode::return_value_is_used() const {
//------------------------------Registers--------------------------------------
-const RegMask &MachCallNode::in_RegMask( uint idx ) const {
+const RegMask &MachCallNode::in_RegMask(uint idx) const {
// Values in the domain use the users calling convention, embodied in the
// _in_rms array of RegMasks.
- if (idx < tf()->domain()->cnt()) return _in_rms[idx];
+ if (idx < tf()->domain()->cnt()) {
+ return _in_rms[idx];
+ }
+ if (idx == mach_constant_base_node_input()) {
+ return MachConstantBaseNode::static_out_RegMask();
+ }
// Values outside the domain represent debug info
return *Compile::current()->matcher()->idealreg2debugmask[in(idx)->ideal_reg()];
}
@@ -678,7 +683,12 @@ void MachCallJavaNode::dump_spec(outputStream *st) const {
const RegMask &MachCallJavaNode::in_RegMask(uint idx) const {
// Values in the domain use the users calling convention, embodied in the
// _in_rms array of RegMasks.
- if (idx < tf()->domain()->cnt()) return _in_rms[idx];
+ if (idx < tf()->domain()->cnt()) {
+ return _in_rms[idx];
+ }
+ if (idx == mach_constant_base_node_input()) {
+ return MachConstantBaseNode::static_out_RegMask();
+ }
// Values outside the domain represent debug info
Matcher* m = Compile::current()->matcher();
// If this call is a MethodHandle invoke we have to use a different