Mercurial > hg > truffle
comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java @ 1934:b1f2e875300a
Small fix to make Graal snippets work with bounds check elimination.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Tue, 21 Dec 2010 17:40:10 +0100 |
parents | 2fe369533fed |
children | 8d88c9ac9247 |
comparison
equal
deleted
inserted
replaced
1933:2a6ce81e3101 | 1934:b1f2e875300a |
---|---|
935 return new XirSnippet(instanceOfTemplates.get(site, UNRESOLVED), object); | 935 return new XirSnippet(instanceOfTemplates.get(site, UNRESOLVED), object); |
936 } | 936 } |
937 | 937 |
938 @Override | 938 @Override |
939 public XirSnippet genArrayLoad(XirSite site, XirArgument array, XirArgument index, XirArgument length, CiKind elementKind, RiType elementType) { | 939 public XirSnippet genArrayLoad(XirSite site, XirArgument array, XirArgument index, XirArgument length, CiKind elementKind, RiType elementType) { |
940 if (length == null) { | 940 if (length == null || !site.requiresBoundsCheck()) { |
941 return new XirSnippet(arrayLoadTemplates.get(site, elementKind), array, index); | 941 return new XirSnippet(arrayLoadTemplates.get(site, elementKind), array, index); |
942 } | 942 } |
943 return new XirSnippet(arrayLoadTemplates.get(site, elementKind, GIVEN_LENGTH), array, index, length); | 943 return new XirSnippet(arrayLoadTemplates.get(site, elementKind, GIVEN_LENGTH), array, index, length); |
944 } | 944 } |
945 | 945 |
946 @Override | 946 @Override |
947 public XirSnippet genArrayStore(XirSite site, XirArgument array, XirArgument index, XirArgument length, XirArgument value, CiKind elementKind, RiType elementType) { | 947 public XirSnippet genArrayStore(XirSite site, XirArgument array, XirArgument index, XirArgument length, XirArgument value, CiKind elementKind, RiType elementType) { |
948 if (length == null) { | 948 if (length == null || !site.requiresBoundsCheck()) { |
949 return new XirSnippet(arrayStoreTemplates.get(site, elementKind), array, index, value); | 949 return new XirSnippet(arrayStoreTemplates.get(site, elementKind), array, index, value); |
950 } | 950 } |
951 return new XirSnippet(arrayStoreTemplates.get(site, elementKind, GIVEN_LENGTH), array, index, value, length); | 951 return new XirSnippet(arrayStoreTemplates.get(site, elementKind, GIVEN_LENGTH), array, index, value, length); |
952 } | 952 } |
953 | 953 |