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