Print this page


Split Close
Expand all
Collapse all
          --- old/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
          +++ new/src/cpu/sparc/vm/templateInterpreter_sparc.cpp
   1    1  /*
   2      - * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
        2 + * Copyright 1997-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 ↓ 1802 lines elided ↑ open up ↑
1815 1815    // interpreted, so things like Lscratch are useless in the caller.)
1816 1816  
1817 1817    // Although the Intel version uses call_C, we can use the more
1818 1818    // compact call_VM.  (The only real difference on SPARC is a
1819 1819    // harmlessly ignored [re]set_last_Java_frame, compared with
1820 1820    // the Intel code which lacks this.)
1821 1821    __ mov(Oexception,      Oexception ->after_save());  // get exception in I0 so it will be on O0 after restore
1822 1822    __ add(issuing_pc_addr, Oissuing_pc->after_save());  // likewise set I1 to a value local to the caller
1823 1823    __ super_call_VM_leaf(L7_thread_cache,
1824 1824                          CAST_FROM_FN_PTR(address, SharedRuntime::exception_handler_for_return_address),
1825      -                        Oissuing_pc->after_save());
     1825 +                        G2_thread, Oissuing_pc->after_save());
1826 1826  
1827 1827    // The caller's SP was adjusted upon method entry to accomodate
1828 1828    // the callee's non-argument locals. Undo that adjustment.
1829 1829    __ JMP(O0, 0);                         // return exception handler in caller
1830 1830    __ delayed()->restore(I5_savedSP, G0, SP);
1831 1831  
1832 1832    // (same old exception object is already in Oexception; see above)
1833 1833    // Note that an "issuing PC" is actually the next PC after the call
1834 1834  }
1835 1835  
↓ open down ↓ 135 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX