< prev index next >
src/hotspot/share/opto/callnode.hpp
Print this page
@@ -761,11 +761,13 @@
};
//------------------------------CallRuntimeNode--------------------------------
// Make a direct subroutine call node into compiled C++ code.
class CallRuntimeNode : public CallNode {
+protected:
virtual uint cmp( const Node &n ) const;
+private:
virtual uint size_of() const; // Size is bigger
public:
CallRuntimeNode(const TypeFunc* tf, address addr, const char* name,
const TypePtr* adr_type)
: CallNode(tf, addr, adr_type)
@@ -784,19 +786,27 @@
//------------------------------CallLeafNode-----------------------------------
// Make a direct subroutine call node into compiled C++ code, without
// safepoints
class CallLeafNode : public CallRuntimeNode {
+private:
+ bool _preserves_fp_registers;
+protected:
+ virtual uint cmp(const Node &n) const;
+ virtual uint size_of() const; // Size is bigger
+
public:
CallLeafNode(const TypeFunc* tf, address addr, const char* name,
- const TypePtr* adr_type)
- : CallRuntimeNode(tf, addr, name, adr_type)
+ const TypePtr* adr_type, bool preserves_fp_registers = false)
+ : CallRuntimeNode(tf, addr, name, adr_type),
+ _preserves_fp_registers(preserves_fp_registers)
{
init_class_id(Class_CallLeaf);
}
virtual int Opcode() const;
virtual bool guaranteed_safepoint() { return false; }
+ bool preserves_fp_registers() const { return _preserves_fp_registers; }
#ifndef PRODUCT
virtual void dump_spec(outputStream *st) const;
#endif
};
< prev index next >