< prev index next >
src/hotspot/share/opto/callnode.hpp
Print this page
*** 761,771 ****
--- 761,773 ----
};
//------------------------------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,802 ****
//------------------------------CallLeafNode-----------------------------------
// Make a direct subroutine call node into compiled C++ code, without
// safepoints
class CallLeafNode : public CallRuntimeNode {
public:
CallLeafNode(const TypeFunc* tf, address addr, const char* name,
! const TypePtr* adr_type)
! : CallRuntimeNode(tf, addr, name, adr_type)
{
init_class_id(Class_CallLeaf);
}
virtual int Opcode() const;
virtual bool guaranteed_safepoint() { return false; }
#ifndef PRODUCT
virtual void dump_spec(outputStream *st) const;
#endif
};
--- 786,812 ----
//------------------------------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, 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 >