Mercurial > hg > truffle
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 |