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