Mercurial > hg > graal-compiler
comparison src/share/vm/adlc/formssel.hpp @ 2008:2f644f85485d
6961690: load oops from constant table on SPARC
Summary: oops should be loaded from the constant table of an nmethod instead of materializing them with a long code sequence.
Reviewed-by: never, kvn
author | twisti |
---|---|
date | Fri, 03 Dec 2010 01:34:31 -0800 |
parents | f95d63e2154a |
children | c7b60b601eb4 |
comparison
equal
deleted
inserted
replaced
2007:5ddfcf4b079e | 2008:2f644f85485d |
---|---|
72 | 72 |
73 //==============================Instructions=================================== | 73 //==============================Instructions=================================== |
74 //------------------------------InstructForm----------------------------------- | 74 //------------------------------InstructForm----------------------------------- |
75 class InstructForm : public Form { | 75 class InstructForm : public Form { |
76 private: | 76 private: |
77 bool _ideal_only; // Not a user-defined instruction | 77 bool _ideal_only; // Not a user-defined instruction |
78 // Members used for tracking CISC-spilling | 78 // Members used for tracking CISC-spilling |
79 uint _cisc_spill_operand;// Which operand may cisc-spill | 79 uint _cisc_spill_operand;// Which operand may cisc-spill |
80 void set_cisc_spill_operand(uint op_index) { _cisc_spill_operand = op_index; } | 80 void set_cisc_spill_operand(uint op_index) { _cisc_spill_operand = op_index; } |
81 bool _is_cisc_alternate; | 81 bool _is_cisc_alternate; |
82 InstructForm *_cisc_spill_alternate;// cisc possible replacement | 82 InstructForm *_cisc_spill_alternate;// cisc possible replacement |
83 const char *_cisc_reg_mask_name; | 83 const char *_cisc_reg_mask_name; |
84 InstructForm *_short_branch_form; | 84 InstructForm *_short_branch_form; |
85 bool _is_short_branch; | 85 bool _is_short_branch; |
86 bool _is_mach_constant; // true if Node is a MachConstantNode | |
86 uint _alignment; | 87 uint _alignment; |
87 | 88 |
88 public: | 89 public: |
89 // Public Data | 90 // Public Data |
90 const char *_ident; // Name of this instruction | 91 const char *_ident; // Name of this instruction |
92 FormDict _localNames; // Table of operands & their types | 93 FormDict _localNames; // Table of operands & their types |
93 MatchRule *_matrule; // Matching rule for this instruction | 94 MatchRule *_matrule; // Matching rule for this instruction |
94 Opcode *_opcode; // Encoding of the opcode for instruction | 95 Opcode *_opcode; // Encoding of the opcode for instruction |
95 char *_size; // Size of instruction | 96 char *_size; // Size of instruction |
96 InsEncode *_insencode; // Encoding class instruction belongs to | 97 InsEncode *_insencode; // Encoding class instruction belongs to |
98 InsEncode *_constant; // Encoding class constant value belongs to | |
97 Attribute *_attribs; // List of Attribute rules | 99 Attribute *_attribs; // List of Attribute rules |
98 Predicate *_predicate; // Predicate test for this instruction | 100 Predicate *_predicate; // Predicate test for this instruction |
99 FormDict _effects; // Dictionary of effect rules | 101 FormDict _effects; // Dictionary of effect rules |
100 ExpandRule *_exprule; // Expand rule for this instruction | 102 ExpandRule *_exprule; // Expand rule for this instruction |
101 RewriteRule *_rewrule; // Rewrite rule for this instruction | 103 RewriteRule *_rewrule; // Rewrite rule for this instruction |
249 bool check_branch_variant(ArchDesc &AD, InstructForm *short_branch); | 251 bool check_branch_variant(ArchDesc &AD, InstructForm *short_branch); |
250 | 252 |
251 bool is_short_branch() { return _is_short_branch; } | 253 bool is_short_branch() { return _is_short_branch; } |
252 void set_short_branch(bool val) { _is_short_branch = val; } | 254 void set_short_branch(bool val) { _is_short_branch = val; } |
253 | 255 |
256 bool is_mach_constant() const { return _is_mach_constant; } | |
257 void set_is_mach_constant(bool x) { _is_mach_constant = x; } | |
258 | |
254 InstructForm *short_branch_form() { return _short_branch_form; } | 259 InstructForm *short_branch_form() { return _short_branch_form; } |
255 bool has_short_branch_form() { return _short_branch_form != NULL; } | 260 bool has_short_branch_form() { return _short_branch_form != NULL; } |
256 // Output short branch prototypes and method bodies | 261 // Output short branch prototypes and method bodies |
257 void declare_short_branch_methods(FILE *fp_cpp); | 262 void declare_short_branch_methods(FILE *fp_cpp); |
258 bool define_short_branch_methods(ArchDesc &AD, FILE *fp_cpp); | 263 bool define_short_branch_methods(ArchDesc &AD, FILE *fp_cpp); |