comparison graal/GraalCompiler/src/com/sun/c1x/ir/StoreField.java @ 2538:e1ba5a93e997

Clean up on Value class and LIRGenerator/LIRItem-related things.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Apr 2011 20:13:54 +0200
parents 16b9a8b5ad39
children fa3bda50cbfd
comparison
equal deleted inserted replaced
2537:4a016ff4d2df 2538:e1ba5a93e997
27 import com.sun.cri.ci.*; 27 import com.sun.cri.ci.*;
28 import com.sun.cri.ri.*; 28 import com.sun.cri.ri.*;
29 29
30 /** 30 /**
31 * The {@code StoreField} instruction represents a write to a static or instance field. 31 * The {@code StoreField} instruction represents a write to a static or instance field.
32 *
33 * @author Ben L. Titzer
34 */ 32 */
35 public final class StoreField extends AccessField { 33 public final class StoreField extends AccessField {
36 34
37 /** 35 /**
38 * The value to store. 36 * The value to store.
46 * @param value the instruction representing the value to store to the field 44 * @param value the instruction representing the value to store to the field
47 * @param isStatic indicates if the field is static 45 * @param isStatic indicates if the field is static
48 * @param stateBefore the state before the field access 46 * @param stateBefore the state before the field access
49 * @param isLoaded indicates if the class is loaded 47 * @param isLoaded indicates if the class is loaded
50 */ 48 */
51 public StoreField(Value object, RiField field, Value value, boolean isStatic, FrameState stateBefore, boolean isLoaded) { 49 public StoreField(Value object, RiField field, Value value, FrameState stateBefore, boolean isLoaded) {
52 super(CiKind.Void, object, field, isStatic, stateBefore, isLoaded); 50 super(CiKind.Void, object, field, stateBefore, isLoaded);
53 this.value = value; 51 this.value = value;
54 setFlag(Flag.LiveStore); 52 setFlag(Flag.LiveStore);
55 if (value.kind != CiKind.Object) { 53 if (value.kind != CiKind.Object) {
56 setFlag(Flag.NoWriteBarrier); 54 setFlag(Flag.NoWriteBarrier);
57 } 55 }