src/share/vm/adlc/adlparse.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8068945-8u-patched Sdiff src/share/vm/adlc

src/share/vm/adlc/adlparse.hpp

Print this page
rev 7385 : 8075798: Allow ADLC register class to depend on runtime conditions also for cisc-spillable classes
Summary: Introduce a new register class, reg_class_dynamic, that supports also cist-spillable masks.
Reviewed-by: kvn, dlong, roland


  36 class OpClassForm;
  37 class AttributeForm;
  38 class RegisterForm;
  39 class PipelineForm;
  40 class SourceForm;
  41 class Peephole;
  42 // ***** Level 2 classes *****
  43 class Component;
  44 class Predicate;
  45 class MatchRule;
  46 class Encode;
  47 class Attribute;
  48 class Effect;
  49 class ExpandRule;
  50 class RewriteRule;
  51 class Constraint;
  52 class ConstructRule;
  53 // ***** Register Section *****
  54 class RegDef;
  55 class RegClass;


  56 class AllocClass;
  57 class ResourceForm;
  58 // ***** Pipeline Section *****
  59 class PipeDesc;
  60 class PipeClass;
  61 class RegList;
  62 // ***** Peephole Section *****
  63 class PeepMatch;
  64 class PeepConstraint;
  65 class PeepReplace;
  66 
  67 // class ostream; // ostream is a typedef in some systems
  68 
  69 extern char *toUpper(const char *str);
  70 
  71 //---------------------------ADLParser-----------------------------------------
  72 class ADLParser {
  73 protected:
  74   char     *_curline;           // Start of current line
  75   char     *_ptr;               // Pointer into current location in File Buffer


 110   void enc_class_parse_block(EncClass* encoding, char* ec_name);
 111 
 112   // Parse the components of the frame section
 113   void stack_dir_parse(FrameForm *frame);   // Parse the stack direction entry
 114   void sync_stack_slots_parse(FrameForm *frame);
 115   void frame_pointer_parse(FrameForm *frame, bool native);
 116   void interpreter_frame_pointer_parse(FrameForm *frame, bool native);
 117   void inline_cache_parse(FrameForm *frame, bool native);
 118   void interpreter_arg_ptr_parse(FrameForm *frame, bool native);
 119   void interpreter_method_oop_parse(FrameForm *frame, bool native);
 120   void cisc_spilling_operand_name_parse(FrameForm *frame, bool native);
 121   void stack_alignment_parse(FrameForm *frame);
 122   void return_addr_parse(FrameForm *frame, bool native);
 123   void preserve_stack_parse(FrameForm *frame);
 124   char *calling_convention_parse();
 125   char *return_value_parse();
 126 
 127   // Parse components of the register section
 128   void reg_def_parse(void);              // Parse register definition
 129   void reg_class_parse(void);            // Parse register class definition

 130   void alloc_class_parse(void);          // Parse allocation class definition
 131 
 132   // Parse components of the definition section
 133   void int_def_parse(void);              // Parse an integer definition
 134 
 135   // Parse components of a pipeline rule
 136   void resource_parse(PipelineForm &pipe);   // Parse resource definition
 137   void pipe_desc_parse(PipelineForm &pipe);  // Parse pipeline description definition
 138   void pipe_class_parse(PipelineForm &pipe); // Parse pipeline class definition
 139 
 140   // Parse components of a peephole rule
 141   void peep_match_parse(Peephole &peep);     // Parse the peephole match rule
 142   void peep_constraint_parse(Peephole &peep);// Parse the peephole constraints
 143   void peep_replace_parse(Peephole &peep);   // Parse peephole replacement rule
 144 
 145   // Parse the peep match rule tree
 146   InstructForm *peep_match_child_parse(PeepMatch &match, int parent, int &position, int input);
 147 
 148   // Parse components of an operand and/or instruction form
 149   Predicate     *pred_parse(void);       // Parse predicate rule




  36 class OpClassForm;
  37 class AttributeForm;
  38 class RegisterForm;
  39 class PipelineForm;
  40 class SourceForm;
  41 class Peephole;
  42 // ***** Level 2 classes *****
  43 class Component;
  44 class Predicate;
  45 class MatchRule;
  46 class Encode;
  47 class Attribute;
  48 class Effect;
  49 class ExpandRule;
  50 class RewriteRule;
  51 class Constraint;
  52 class ConstructRule;
  53 // ***** Register Section *****
  54 class RegDef;
  55 class RegClass;
  56 class CodeSnippetRegClass;
  57 class ConditionalRegClass;
  58 class AllocClass;
  59 class ResourceForm;
  60 // ***** Pipeline Section *****
  61 class PipeDesc;
  62 class PipeClass;
  63 class RegList;
  64 // ***** Peephole Section *****
  65 class PeepMatch;
  66 class PeepConstraint;
  67 class PeepReplace;
  68 
  69 // class ostream; // ostream is a typedef in some systems
  70 
  71 extern char *toUpper(const char *str);
  72 
  73 //---------------------------ADLParser-----------------------------------------
  74 class ADLParser {
  75 protected:
  76   char     *_curline;           // Start of current line
  77   char     *_ptr;               // Pointer into current location in File Buffer


 112   void enc_class_parse_block(EncClass* encoding, char* ec_name);
 113 
 114   // Parse the components of the frame section
 115   void stack_dir_parse(FrameForm *frame);   // Parse the stack direction entry
 116   void sync_stack_slots_parse(FrameForm *frame);
 117   void frame_pointer_parse(FrameForm *frame, bool native);
 118   void interpreter_frame_pointer_parse(FrameForm *frame, bool native);
 119   void inline_cache_parse(FrameForm *frame, bool native);
 120   void interpreter_arg_ptr_parse(FrameForm *frame, bool native);
 121   void interpreter_method_oop_parse(FrameForm *frame, bool native);
 122   void cisc_spilling_operand_name_parse(FrameForm *frame, bool native);
 123   void stack_alignment_parse(FrameForm *frame);
 124   void return_addr_parse(FrameForm *frame, bool native);
 125   void preserve_stack_parse(FrameForm *frame);
 126   char *calling_convention_parse();
 127   char *return_value_parse();
 128 
 129   // Parse components of the register section
 130   void reg_def_parse(void);              // Parse register definition
 131   void reg_class_parse(void);            // Parse register class definition
 132   void reg_class_dynamic_parse(void);    // Parse dynamic register class definition
 133   void alloc_class_parse(void);          // Parse allocation class definition
 134 
 135   // Parse components of the definition section
 136   void int_def_parse(void);              // Parse an integer definition
 137 
 138   // Parse components of a pipeline rule
 139   void resource_parse(PipelineForm &pipe);   // Parse resource definition
 140   void pipe_desc_parse(PipelineForm &pipe);  // Parse pipeline description definition
 141   void pipe_class_parse(PipelineForm &pipe); // Parse pipeline class definition
 142 
 143   // Parse components of a peephole rule
 144   void peep_match_parse(Peephole &peep);     // Parse the peephole match rule
 145   void peep_constraint_parse(Peephole &peep);// Parse the peephole constraints
 146   void peep_replace_parse(Peephole &peep);   // Parse peephole replacement rule
 147 
 148   // Parse the peep match rule tree
 149   InstructForm *peep_match_child_parse(PeepMatch &match, int parent, int &position, int input);
 150 
 151   // Parse components of an operand and/or instruction form
 152   Predicate     *pred_parse(void);       // Parse predicate rule


src/share/vm/adlc/adlparse.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File