Mercurial > hg > truffle
comparison graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMap.java @ 21005:e413295a3c95
Track all values in ReferenceMap.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Fri, 17 Apr 2015 14:28:00 +0200 |
parents | f585f067d78e |
children | 48c1ebd24120 |
comparison
equal
deleted
inserted
replaced
21004:0e1e8879b655 | 21005:e413295a3c95 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
345 refMap.setStackSlot(offset, kind); | 345 refMap.setStackSlot(offset, kind); |
346 } else { | 346 } else { |
347 assert isConstant(location); | 347 assert isConstant(location); |
348 } | 348 } |
349 } | 349 } |
350 | |
351 public void clearReference(Value location, ReferenceMap refMap) { | |
352 LIRKind kind = location.getLIRKind(); | |
353 if (isRegister(location)) { | |
354 refMap.clearRegister(asRegister(location).getReferenceMapIndex(), kind); | |
355 } else if (isStackSlot(location)) { | |
356 int offset = offsetForStackSlot(asStackSlot(location)); | |
357 refMap.clearStackSlot(offset, kind); | |
358 } else { | |
359 assert isConstant(location); | |
360 } | |
361 } | |
362 } | 350 } |