comparison src/cpu/sparc/vm/runtime_sparc.cpp @ 1579:e9ff18c4ace7

Merge
author jrose
date Wed, 02 Jun 2010 22:45:42 -0700
parents c18cbe5936b8 110501f54a99
children f95d63e2154a
comparison
equal deleted inserted replaced
1562:dfe27f03244a 1579:e9ff18c4ace7
1 /* 1 /*
2 * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
114 __ reset_last_Java_frame(); 114 __ reset_last_Java_frame();
115 115
116 __ mov(O0, G3_scratch); // Move handler address to temp 116 __ mov(O0, G3_scratch); // Move handler address to temp
117 __ restore(); 117 __ restore();
118 118
119 // Restore SP from L7 if the exception PC is a MethodHandle call site.
120 __ lduw(Address(G2_thread, JavaThread::is_method_handle_return_offset()), O7);
121 __ tst(O7);
122 __ movcc(Assembler::notZero, false, Assembler::icc, L7_mh_SP_save, SP);
123
119 // G3_scratch contains handler address 124 // G3_scratch contains handler address
120 // Since this may be the deopt blob we must set O7 to look like we returned 125 // Since this may be the deopt blob we must set O7 to look like we returned
121 // from the original pc that threw the exception 126 // from the original pc that threw the exception
122 127
123 __ ld_ptr(G2_thread, JavaThread::exception_pc_offset(), O7); 128 __ ld_ptr(G2_thread, JavaThread::exception_pc_offset(), O7);