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 }