comparison src/cpu/x86/vm/cppInterpreter_x86.cpp @ 2245:638119ce7cfd

7009309: JSR 292: compiler/6991596/Test6991596.java crashes on fastdebug JDK7/b122 Reviewed-by: kvn, never
author twisti
date Tue, 01 Feb 2011 03:38:44 -0800
parents f95d63e2154a
children e1162778c1c8
comparison
equal deleted inserted replaced
2244:4f26f535a225 2245:638119ce7cfd
1 /* 1 /*
2 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2007, 2011, 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.
1897 Label resume_interpreter; 1897 Label resume_interpreter;
1898 Label do_float; 1898 Label do_float;
1899 Label do_double; 1899 Label do_double;
1900 Label done_conv; 1900 Label done_conv;
1901 1901
1902 address compiled_entry = __ pc();
1903
1904 // The FPU stack is clean if UseSSE >= 2 but must be cleaned in other cases 1902 // The FPU stack is clean if UseSSE >= 2 but must be cleaned in other cases
1905 if (UseSSE < 2) { 1903 if (UseSSE < 2) {
1906 __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter))); 1904 __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter)));
1907 __ movptr(rbx, STATE(_result._to_call._callee)); // get method just executed 1905 __ movptr(rbx, STATE(_result._to_call._callee)); // get method just executed
1908 __ movl(rcx, Address(rbx, methodOopDesc::result_index_offset())); 1906 __ movl(rcx, Address(rbx, methodOopDesc::result_index_offset()));
1932 } else { 1930 } else {
1933 __ MacroAssembler::verify_FPU(0, "generate_return_entry_for compiled"); 1931 __ MacroAssembler::verify_FPU(0, "generate_return_entry_for compiled");
1934 __ jmp(done_conv); 1932 __ jmp(done_conv);
1935 } 1933 }
1936 1934
1937 #if 0
1938 // emit a sentinel we can test for when converting an interpreter
1939 // entry point to a compiled entry point.
1940 __ a_long(Interpreter::return_sentinel);
1941 __ a_long((int)compiled_entry);
1942 #endif
1943
1944 // Return point to interpreter from compiled/native method 1935 // Return point to interpreter from compiled/native method
1945
1946 InternalAddress return_from_native_method(__ pc()); 1936 InternalAddress return_from_native_method(__ pc());
1947 1937
1948 __ bind(done_conv); 1938 __ bind(done_conv);
1949 1939
1950 1940