Print this page
rev 1838 : 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:

Split Close
Expand all
Collapse all
          --- old/src/share/vm/adlc/adlparse.hpp
          +++ new/src/share/vm/adlc/adlparse.hpp
   1    1  /*
   2      - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
        2 + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
   3    3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4    4   *
   5    5   * This code is free software; you can redistribute it and/or modify it
   6    6   * under the terms of the GNU General Public License version 2 only, as
   7    7   * published by the Free Software Foundation.
   8    8   *
   9    9   * This code is distributed in the hope that it will be useful, but WITHOUT
  10   10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11   11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12   12   * version 2 for more details (a copy is included in the LICENSE file that
↓ open down ↓ 133 lines elided ↑ open up ↑
 146  146    Predicate     *pred_parse(void);       // Parse predicate rule
 147  147    // Parse match rule, and internal nodes
 148  148    MatchRule     *match_parse(FormDict &operands);
 149  149    MatchNode     *matchNode_parse(FormDict &operands, int &depth,
 150  150                                   int &numleaves, bool atroot);
 151  151    MatchNode     *matchChild_parse(FormDict &operands, int &depth,
 152  152                                    int &numleaves, bool atroot);
 153  153  
 154  154    Attribute     *attr_parse(char *ident);// Parse instr/operand attribute rule
 155  155    // Parse instruction encode rule
 156      -  InsEncode     *ins_encode_parse(InstructForm &inst);
 157      -  InsEncode     *ins_encode_parse_block(InstructForm &inst);
      156 +  void           ins_encode_parse(InstructForm &inst);
      157 +  void           ins_encode_parse_block(InstructForm &inst);
      158 +  void           ins_encode_parse_block_impl(InstructForm& inst, EncClass* encoding, char* ec_name);
      159 +
      160 +  void           constant_parse(InstructForm& inst);
      161 +  void           constant_parse_expression(EncClass* encoding, char* ec_name);
      162 +
 158  163    Opcode        *opcode_parse(InstructForm *insr); // Parse instruction opcode
 159  164    char          *size_parse(InstructForm *insr); // Parse instruction size
 160  165    Interface     *interface_parse();      // Parse operand interface rule
 161  166    Interface     *mem_interface_parse();  // Parse memory interface rule
 162  167    Interface     *cond_interface_parse(); // Parse conditional interface rule
 163  168    char          *interface_field_parse(const char** format = NULL);// Parse field contents
 164  169  
 165  170    FormatRule    *format_parse(void);     // Parse format rule
 166  171    FormatRule    *template_parse(void);     // Parse format rule
 167  172    void           effect_parse(InstructForm *instr); // Parse effect rule
↓ open down ↓ 112 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX