comparison src/share/vm/adlc/adlparse.hpp @ 415:4d9884b01ba6

6754519: don't emit flag fixup for NaN when condition being tested doesn't need it Reviewed-by: kvn, rasbold
author never
date Tue, 28 Oct 2008 09:31:30 -0700
parents a61af66fc99e
children ad8c8ca4ab0f 284d0af00d53
comparison
equal deleted inserted replaced
407:ebfd4ae89bf6 415:4d9884b01ba6
68 //---------------------------ADLParser----------------------------------------- 68 //---------------------------ADLParser-----------------------------------------
69 class ADLParser { 69 class ADLParser {
70 protected: 70 protected:
71 char *_curline; // Start of current line 71 char *_curline; // Start of current line
72 char *_ptr; // Pointer into current location in File Buffer 72 char *_ptr; // Pointer into current location in File Buffer
73 int _linenum; // Count of line numbers seen so far
74 char _curchar; // Current character from buffer 73 char _curchar; // Current character from buffer
75 FormDict &_globalNames; // Global names 74 FormDict &_globalNames; // Global names
76 75
77 enum { _preproc_limit = 20 }; 76 enum { _preproc_limit = 20 };
78 int _preproc_depth; // How deep are we into ifdefs? 77 int _preproc_depth; // How deep are we into ifdefs?
158 Opcode *opcode_parse(InstructForm *insr); // Parse instruction opcode 157 Opcode *opcode_parse(InstructForm *insr); // Parse instruction opcode
159 char *size_parse(InstructForm *insr); // Parse instruction size 158 char *size_parse(InstructForm *insr); // Parse instruction size
160 Interface *interface_parse(); // Parse operand interface rule 159 Interface *interface_parse(); // Parse operand interface rule
161 Interface *mem_interface_parse(); // Parse memory interface rule 160 Interface *mem_interface_parse(); // Parse memory interface rule
162 Interface *cond_interface_parse(); // Parse conditional interface rule 161 Interface *cond_interface_parse(); // Parse conditional interface rule
163 char *interface_field_parse();// Parse field contents 162 char *interface_field_parse(const char** format = NULL);// Parse field contents
164 163
165 FormatRule *format_parse(void); // Parse format rule 164 FormatRule *format_parse(void); // Parse format rule
165 FormatRule *template_parse(void); // Parse format rule
166 void effect_parse(InstructForm *instr); // Parse effect rule 166 void effect_parse(InstructForm *instr); // Parse effect rule
167 ExpandRule *expand_parse(InstructForm *instr); // Parse expand rule 167 ExpandRule *expand_parse(InstructForm *instr); // Parse expand rule
168 RewriteRule *rewrite_parse(void); // Parse rewrite rule 168 RewriteRule *rewrite_parse(void); // Parse rewrite rule
169 Constraint *constraint_parse(void); // Parse constraint rule 169 Constraint *constraint_parse(void); // Parse constraint rule
170 ConstructRule *construct_parse(void); // Parse construct rule 170 ConstructRule *construct_parse(void); // Parse construct rule
261 ADLParser(FileBuff &buf, ArchDesc &archDesc); // Create new ADLParser object 261 ADLParser(FileBuff &buf, ArchDesc &archDesc); // Create new ADLParser object
262 ~ADLParser(); // Destroy ADLParser object 262 ~ADLParser(); // Destroy ADLParser object
263 263
264 void parse(void); // Do the parsing & build forms lists 264 void parse(void); // Do the parsing & build forms lists
265 265
266 int getlines( ) { return _linenum; } 266 int linenum() { return _buf.linenum(); }
267 267
268 static bool is_literal_constant(const char *hex_string); 268 static bool is_literal_constant(const char *hex_string);
269 static bool is_hex_digit(char digit); 269 static bool is_hex_digit(char digit);
270 static bool is_int_token(const char* token, int& intval); 270 static bool is_int_token(const char* token, int& intval);
271 static void trim(char* &token); // trim leading & trailing spaces 271 static void trim(char* &token); // trim leading & trailing spaces