comparison graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/RiXirGenerator.java @ 5167:591f8231aa82

removed XIR & LIR code for nodes that are completely lowered in HotspotRuntime.lower() separated out the GC write barrier from CompareAndSwapNode in HotspotRuntime.lower() inserted membars for volatile field read/write in HotspotRuntime.lower()
author Doug Simon <doug.simon@oracle.com>
date Wed, 28 Mar 2012 14:31:56 +0200
parents 5e6f1026a63e
children efbb1e33e2f3
comparison
equal deleted inserted replaced
5166:7f9010a55761 5167:591f8231aa82
43 43
44 XirSnippet genSafepointPoll(XirSite site); 44 XirSnippet genSafepointPoll(XirSite site);
45 45
46 XirSnippet genExceptionObject(XirSite site); 46 XirSnippet genExceptionObject(XirSite site);
47 47
48 XirSnippet genResolveClass(XirSite site, RiType type, Representation representation);
49
50 XirSnippet genIntrinsic(XirSite site, XirArgument[] arguments, RiMethod method);
51
52 XirSnippet genInvokeInterface(XirSite site, XirArgument receiver, RiMethod method); 48 XirSnippet genInvokeInterface(XirSite site, XirArgument receiver, RiMethod method);
53 49
54 XirSnippet genInvokeVirtual(XirSite site, XirArgument receiver, RiMethod method, boolean megamorph); 50 XirSnippet genInvokeVirtual(XirSite site, XirArgument receiver, RiMethod method, boolean megamorph);
55 51
56 XirSnippet genInvokeSpecial(XirSite site, XirArgument receiver, RiMethod method); 52 XirSnippet genInvokeSpecial(XirSite site, XirArgument receiver, RiMethod method);
59 55
60 XirSnippet genMonitorEnter(XirSite site, XirArgument receiver, XirArgument lockAddress); 56 XirSnippet genMonitorEnter(XirSite site, XirArgument receiver, XirArgument lockAddress);
61 57
62 XirSnippet genMonitorExit(XirSite site, XirArgument receiver, XirArgument lockAddress); 58 XirSnippet genMonitorExit(XirSite site, XirArgument receiver, XirArgument lockAddress);
63 59
64 XirSnippet genGetField(XirSite site, XirArgument receiver, RiField field);
65
66 XirSnippet genPutField(XirSite site, XirArgument receiver, RiField field, XirArgument value);
67
68 XirSnippet genGetStatic(XirSite site, XirArgument staticTuple, RiField field);
69
70 XirSnippet genPutStatic(XirSite site, XirArgument staticTuple, RiField field, XirArgument value);
71
72 XirSnippet genNewInstance(XirSite site, RiType type); 60 XirSnippet genNewInstance(XirSite site, RiType type);
73 61
74 XirSnippet genNewArray(XirSite site, XirArgument length, CiKind elementKind, RiType componentType, RiType arrayType); 62 XirSnippet genNewArray(XirSite site, XirArgument length, CiKind elementKind, RiType componentType, RiType arrayType);
75
76 XirSnippet genNewObjectArrayClone(XirSite site, XirArgument newLength, XirArgument referenceArray);
77 63
78 XirSnippet genNewMultiArray(XirSite site, XirArgument[] lengths, RiType type); 64 XirSnippet genNewMultiArray(XirSite site, XirArgument[] lengths, RiType type);
79 65
80 XirSnippet genCheckCast(XirSite site, XirArgument receiver, XirArgument hub, RiType type, RiResolvedType[] hints, boolean hintsExact); 66 XirSnippet genCheckCast(XirSite site, XirArgument receiver, XirArgument hub, RiType type, RiResolvedType[] hints, boolean hintsExact);
81 67
82 XirSnippet genInstanceOf(XirSite site, XirArgument receiver, XirArgument hub, RiType type, RiResolvedType[] hints, boolean hintsExact); 68 XirSnippet genInstanceOf(XirSite site, XirArgument receiver, XirArgument hub, RiType type, RiResolvedType[] hints, boolean hintsExact);
83 69
84 XirSnippet genMaterializeInstanceOf(XirSite site, XirArgument receiver, XirArgument hub, XirArgument trueValue, XirArgument falseValue, RiType type, RiResolvedType[] hints, boolean hintsExact); 70 XirSnippet genMaterializeInstanceOf(XirSite site, XirArgument receiver, XirArgument hub, XirArgument trueValue, XirArgument falseValue, RiType type, RiResolvedType[] hints, boolean hintsExact);
85 71
86 XirSnippet genArrayLoad(XirSite site, XirArgument array, XirArgument index, CiKind elementKind, RiType elementType);
87
88 XirSnippet genArrayStore(XirSite site, XirArgument array, XirArgument index, XirArgument value, CiKind elementKind, RiType elementType);
89
90 XirSnippet genArrayLength(XirSite site, XirArgument array);
91
92 XirSnippet genWriteBarrier(XirArgument object);
93
94 XirSnippet genArrayCopy(XirSite site, XirArgument src, XirArgument srcPos, XirArgument dest, XirArgument destPos, XirArgument length, RiType elementType, boolean inputsSame, boolean inputsDifferent); 72 XirSnippet genArrayCopy(XirSite site, XirArgument src, XirArgument srcPos, XirArgument dest, XirArgument destPos, XirArgument length, RiType elementType, boolean inputsSame, boolean inputsDifferent);
95
96 XirSnippet genCurrentThread(XirSite site);
97
98 XirSnippet genGetClass(XirSite site, XirArgument xirArgument);
99 73
100 /** 74 /**
101 * Generates code that checks that the {@linkplain Representation#ObjectHub hub} of 75 * Generates code that checks that the {@linkplain Representation#ObjectHub hub} of
102 * an object is identical to a given hub constant. In pseudo code: 76 * an object is identical to a given hub constant. In pseudo code:
103 * <pre> 77 * <pre>