--- old/src/hotspot/share/opto/callnode.hpp 2018-11-15 11:26:03.919798186 +0100 +++ new/src/hotspot/share/opto/callnode.hpp 2018-11-15 11:25:55.239781706 +0100 @@ -763,7 +763,9 @@ //------------------------------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, @@ -786,15 +788,23 @@ // 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