src/share/vm/adlc/adlparse.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hs-6771309 Cdiff src/share/vm/adlc/adlparse.hpp

src/share/vm/adlc/adlparse.hpp

Print this page
rev 461 : Fixed 6771309: debugging AD files is difficult without #line directives in generated code
Summary: more and better #line and #define directives in the generated code; ADLC itself accepts #line directives
Reviewed-by: never, kvn

*** 91,100 **** --- 91,101 ---- void encode_parse(void); // Parse encoding section void frame_parse(void); // Parse frame section void pipe_parse(void); // Parse pipeline section void definitions_parse(void); // Parse definitions section void peep_parse(void); // Parse peephole rule definitions + void preproc_line(void); // Parse a #line statement void preproc_define(void); // Parse a #define statement void preproc_undef(void); // Parse an #undef statement // Helper functions for instr_parse(). void adjust_set_rule(InstructForm *instr);
*** 224,241 **** void get_oplist(NameList &parameters, FormDict &operands);// Parse type-operand pairs void get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs // Return the contents of a parenthesized expression. // Requires initial '(' and consumes final ')', which is replaced by '\0'. ! char *get_paren_expr(const char *description); // Return expression up to next stop-char, which terminator replaces. // Does not require initial '('. Does not consume final stop-char. // Final stop-char is left in _curchar, but is also is replaced by '\0'. char *get_expr(const char *description, const char *stop_chars); char *find_cpp_block(const char *description); // Parse a C++ code block // Issue parser error message & go to EOL void parse_err(int flag, const char *fmt, ...); // Return pointer to current character inline char cur_char(void); // Advance to next character, assign this to _curchar inline void next_char(void); --- 225,247 ---- void get_oplist(NameList &parameters, FormDict &operands);// Parse type-operand pairs void get_effectlist(FormDict &effects, FormDict &operands); // Parse effect-operand pairs // Return the contents of a parenthesized expression. // Requires initial '(' and consumes final ')', which is replaced by '\0'. ! char *get_paren_expr(const char *description, bool include_location = false); // Return expression up to next stop-char, which terminator replaces. // Does not require initial '('. Does not consume final stop-char. // Final stop-char is left in _curchar, but is also is replaced by '\0'. char *get_expr(const char *description, const char *stop_chars); char *find_cpp_block(const char *description); // Parse a C++ code block // Issue parser error message & go to EOL void parse_err(int flag, const char *fmt, ...); + // Create a location marker for this file and line. + char *get_line_string(int linenum = 0); + // Return a location marker which tells the C preprocessor to + // forget the previous location marker. (Requires awk postprocessing.) + char *end_line_marker() { return (char*)"\n#line 999999\n"; } // Return pointer to current character inline char cur_char(void); // Advance to next character, assign this to _curchar inline void next_char(void);
*** 266,272 **** --- 272,279 ---- int linenum() { return _buf.linenum(); } static bool is_literal_constant(const char *hex_string); static bool is_hex_digit(char digit); static bool is_int_token(const char* token, int& intval); + static bool equivalent_expressions(const char* str1, const char* str2); static void trim(char* &token); // trim leading & trailing spaces };
src/share/vm/adlc/adlparse.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File