Mercurial > hg > graal-compiler
changeset 22219:f1263c123319
Fix assertion in MoveResolver.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 13 Jul 2015 12:19:59 +0200 |
parents | ca49ca6825a8 |
children | 2ffa690969d8 |
files | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/MoveResolver.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/MoveResolver.java Wed Jul 01 17:39:39 2015 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/MoveResolver.java Mon Jul 13 12:19:59 2015 +0200 @@ -165,7 +165,15 @@ } for (int i = 0; i < mappingTo.size(); i++) { Interval interval = mappingTo.get(i); - assert !usedRegs.contains(interval.location()) || interval.location().equals(mappingFrom.get(i).location()) : "stack slots used in mappingFrom must be disjoint to mappingTo"; + assert !usedRegs.contains(interval.location()) || checkIntervalLocation(mappingFrom.get(i), interval, mappingFromOpr.get(i)) : "stack slots used in mappingFrom must be disjoint to mappingTo"; + } + } + + private static boolean checkIntervalLocation(Interval from, Interval to, Value fromOpr) { + if (from == null) { + return fromOpr != null; + } else { + return to.location().equals(from.location()); } }