comparison src/cpu/sparc/vm/runtime_sparc.cpp @ 1567:110501f54a99

6934104: JSR 292 needs to support SPARC C2 Summary: C2 for SPARC needs to support JSR 292. Reviewed-by: kvn, never
author twisti
date Tue, 25 May 2010 02:38:48 -0700
parents 6b2273dd6fa9
children e9ff18c4ace7
comparison
equal deleted inserted replaced
1566:9f669cf29cb0 1567:110501f54a99
1 /* 1 /*
2 * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1998-2010 Sun Microsystems, Inc. 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);