comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java @ 1427:149b1d2316de

basic invokeinterface and invokevirtual support
author Lukas Stadler <lukas.stadler@oracle.com>
date Wed, 18 Aug 2010 16:47:06 -0700
parents 760213a60e8b
children 9e5e83ca2259
comparison
equal deleted inserted replaced
1426:ed6bd46ad55e 1427:149b1d2316de
27 private HotSpotProxy() { 27 private HotSpotProxy() {
28 } 28 }
29 29
30 private enum CompilerObjectType { 30 private enum CompilerObjectType {
31 // this enum needs to have the same values as the one in c1x_Compiler.hpp 31 // this enum needs to have the same values as the one in c1x_Compiler.hpp
32 STUB(0x100000000000000l), 32 STUB(0x100000000000000L),
33 METHOD(0x200000000000000l), 33 METHOD(0x200000000000000L),
34 CLASS(0x300000000000000l), 34 CLASS(0x300000000000000L),
35 SYMBOL(0x400000000000000l), 35 SYMBOL(0x400000000000000L),
36 CONSTANT_POOL(0x500000000000000l), 36 CONSTANT_POOL(0x500000000000000L),
37 CONSTANT(0x600000000000000l), 37 CONSTANT(0x600000000000000L),
38 TYPE_MASK(0xf00000000000000l); 38 TYPE_MASK(0xf00000000000000L),
39 DUMMY_CONSTANT(0x6ffffffffffffffL);
39 40
40 public final long bits; 41 public final long bits;
41 42
42 CompilerObjectType(long bits) { 43 CompilerObjectType(long bits) {
43 this.bits = bits; 44 this.bits = bits;
44 } 45 }
45 } 46 }
47
48 public static final Long DUMMY_CONSTANT_OBJ = CompilerObjectType.DUMMY_CONSTANT.bits;
46 49
47 private static boolean isType(long id, CompilerObjectType type) { 50 private static boolean isType(long id, CompilerObjectType type) {
48 return (id & CompilerObjectType.TYPE_MASK.bits) == type.bits; 51 return (id & CompilerObjectType.TYPE_MASK.bits) == type.bits;
49 } 52 }
50 53