--- old/src/hotspot/share/opto/machnode.hpp 2019-03-11 14:26:47.198354588 +0100 +++ new/src/hotspot/share/opto/machnode.hpp 2019-03-11 14:26:46.990354591 +0100 @@ -463,6 +463,27 @@ int constant_offset_unchecked() const; }; +//------------------------------MachVEPNode----------------------------------- +// Machine Value Type Entry Point Node +class MachVEPNode : public MachIdealNode { +public: + MachVEPNode(Label* verified_entry, bool verified, bool receiver_only) : + _verified_entry(verified_entry), + _verified(verified), + _receiver_only(receiver_only) {} + virtual void emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const; + virtual uint size(PhaseRegAlloc* ra_) const; + +#ifndef PRODUCT + virtual const char* Name() const { return "ValueType Entry-Point"; } + virtual void format(PhaseRegAlloc*, outputStream* st) const; +#endif +private: + Label* _verified_entry; + bool _verified; + bool _receiver_only; +}; + //------------------------------MachUEPNode----------------------------------- // Machine Unvalidated Entry Point Node class MachUEPNode : public MachIdealNode { @@ -481,11 +502,14 @@ // Machine function Prolog Node class MachPrologNode : public MachIdealNode { public: - MachPrologNode( ) {} + MachPrologNode(Label* verified_entry) : _verified_entry(verified_entry) { + init_class_id(Class_MachProlog); + } virtual void emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const; virtual uint size(PhaseRegAlloc *ra_) const; virtual int reloc() const; + Label* _verified_entry; #ifndef PRODUCT virtual const char *Name() const { return "Prolog"; } virtual void format( PhaseRegAlloc *, outputStream *st ) const; @@ -894,6 +918,7 @@ // Similar to cousin class CallNode::returns_pointer bool returns_pointer() const; + bool returns_vt() const; #ifndef PRODUCT virtual void dump_spec(outputStream *st) const;