public Expression UpdateTotalStateWithStoreBufferEntry(ResolutionContext context, IConstraintCollector constraintCollector, Expression val_new) { if (NoTSO()) { return(UpdateTotalStateLocationDirectly(context, constraintCollector, val_new)); } if (!AH.IsPrimitiveType(type)) { context.Fail(tok, "Can't do TSO write to non-primitive type; try using ::= instead of :="); return(null); } var entry = GetStoreBufferEntry(val_new); if (entry == null) { context.Fail(tok, "Can't do a TSO write to that location; try using ::= instead of :="); return(null); } return(AH.MakeApply3("Armada_AppendToThreadStoreBuffer", context.GetLValueState(), context.tid, entry, "Armada_TotalState")); }
public override Expression UpdateTotalStateLocationDirectly(ResolutionContext context, IConstraintCollector constraintCollector, Expression val_new) { return(AH.MakeApply3("Armada_UpdateTSFrame", context.GetLValueState(), context.tid, val_new, "Armada_TotalState")); }