Mercurial > hg > truffle
comparison src/share/vm/interpreter/bytecodeInterpreter.cpp @ 2044:06f017f7daa7
Merge.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Fri, 07 Jan 2011 18:18:08 +0100 |
parents | 6a2d73358ff7 |
children | 8012aa3ccede |
comparison
equal
deleted
inserted
replaced
1942:00bc9eaf0e24 | 2044:06f017f7daa7 |
---|---|
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 | |
26 // no precompiled headers | 25 // no precompiled headers |
27 #include "incls/_bytecodeInterpreter.cpp.incl" | 26 #include "classfile/vmSymbols.hpp" |
28 | 27 #include "gc_interface/collectedHeap.hpp" |
28 #include "interpreter/bytecodeHistogram.hpp" | |
29 #include "interpreter/bytecodeInterpreter.hpp" | |
30 #include "interpreter/bytecodeInterpreter.inline.hpp" | |
31 #include "interpreter/interpreter.hpp" | |
32 #include "interpreter/interpreterRuntime.hpp" | |
33 #include "memory/cardTableModRefBS.hpp" | |
34 #include "memory/resourceArea.hpp" | |
35 #include "oops/objArrayKlass.hpp" | |
36 #include "oops/oop.inline.hpp" | |
37 #include "prims/jvmtiExport.hpp" | |
38 #include "runtime/frame.inline.hpp" | |
39 #include "runtime/handles.inline.hpp" | |
40 #include "runtime/interfaceSupport.hpp" | |
41 #include "runtime/sharedRuntime.hpp" | |
42 #include "runtime/threadCritical.hpp" | |
43 #include "utilities/exceptions.hpp" | |
44 #ifdef TARGET_OS_ARCH_linux_x86 | |
45 # include "orderAccess_linux_x86.inline.hpp" | |
46 #endif | |
47 #ifdef TARGET_OS_ARCH_linux_sparc | |
48 # include "orderAccess_linux_sparc.inline.hpp" | |
49 #endif | |
50 #ifdef TARGET_OS_ARCH_linux_zero | |
51 # include "orderAccess_linux_zero.inline.hpp" | |
52 #endif | |
53 #ifdef TARGET_OS_ARCH_solaris_x86 | |
54 # include "orderAccess_solaris_x86.inline.hpp" | |
55 #endif | |
56 #ifdef TARGET_OS_ARCH_solaris_sparc | |
57 # include "orderAccess_solaris_sparc.inline.hpp" | |
58 #endif | |
59 #ifdef TARGET_OS_ARCH_windows_x86 | |
60 # include "orderAccess_windows_x86.inline.hpp" | |
61 #endif | |
62 | |
63 | |
64 // no precompiled headers | |
29 #ifdef CC_INTERP | 65 #ifdef CC_INTERP |
30 | 66 |
31 /* | 67 /* |
32 * USELABELS - If using GCC, then use labels for the opcode dispatching | 68 * USELABELS - If using GCC, then use labels for the opcode dispatching |
33 * rather -then a switch statement. This improves performance because it | 69 * rather -then a switch statement. This improves performance because it |
1285 CASE(_f2d): /* convert top of stack float to double */ | 1321 CASE(_f2d): /* convert top of stack float to double */ |
1286 { | 1322 { |
1287 jfloat f; | 1323 jfloat f; |
1288 jdouble r; | 1324 jdouble r; |
1289 f = STACK_FLOAT(-1); | 1325 f = STACK_FLOAT(-1); |
1290 #ifdef IA64 | |
1291 // IA64 gcc bug | |
1292 r = ( f == 0.0f ) ? (jdouble) f : (jdouble) f + ia64_double_zero; | |
1293 #else | |
1294 r = (jdouble) f; | 1326 r = (jdouble) f; |
1295 #endif | |
1296 MORE_STACK(-1); // POP | 1327 MORE_STACK(-1); // POP |
1297 SET_STACK_DOUBLE(r, 1); | 1328 SET_STACK_DOUBLE(r, 1); |
1298 UPDATE_PC_AND_TOS_AND_CONTINUE(1, 2); | 1329 UPDATE_PC_AND_TOS_AND_CONTINUE(1, 2); |
1299 } | 1330 } |
1300 | 1331 |