Print this page


Split Close
Expand all
Collapse all
          --- old/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
          +++ new/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
   1    1  /*
   2      - * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
        2 + * Copyright 1999-2010 Sun Microsystems, Inc.  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 ↓ 353 lines elided ↑ open up ↑
 366  366      __ nop();
 367  367    }
 368  368    if (_id == load_klass_id) {
 369  369      CodeSection* cs = __ code_section();
 370  370      RelocIterator iter(cs, (address)_pc_start, (address)(_pc_start + 1));
 371  371      relocInfo::change_reloc_info_for_address(&iter, (address) _pc_start, relocInfo::oop_type, relocInfo::none);
 372  372    }
 373  373  }
 374  374  
 375  375  
      376 +void DeoptimizeStub::emit_code(LIR_Assembler* ce) {
      377 +  __ bind(_entry);
      378 +  __ call(RuntimeAddress(SharedRuntime::deopt_blob()->unpack_with_reexecution()));
      379 +  ce->add_call_info_here(_info);
      380 +  debug_only(__ should_not_reach_here());
      381 +}
      382 +
      383 +
 376  384  void ImplicitNullCheckStub::emit_code(LIR_Assembler* ce) {
 377  385    ce->compilation()->implicit_exception_table()->append(_offset, __ offset());
 378  386    __ bind(_entry);
 379  387    __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::throw_null_pointer_exception_id)));
 380  388    ce->add_call_info_here(_info);
 381  389    debug_only(__ should_not_reach_here());
 382  390  }
 383  391  
 384  392  
 385  393  void SimpleExceptionStub::emit_code(LIR_Assembler* ce) {
↓ open down ↓ 120 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX