< 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 >