public void EmitAccessTrait(Expression baseExpr, Expression memPtr, int ptrSize, int offset) { if (arrayContext) { handler.MemAccessArrayTrait(baseExpr, memPtr, ptrSize, offset, arrayElementSize, arrayLength, eField); } else { handler.MemAccessTrait(baseExpr, memPtr, ptrSize, eField, offset); } }
public DataType VisitConstant(Constant c) { var dt = handler.DataTypeTrait(c, c.DataType); ivCur = null; if (c.DataType == PrimitiveType.SegmentSelector) { handler.MemAccessTrait( null, program.Globals, program.Platform.PointerType.Size, c, c.ToInt32() * 0x10); //$REVIEW Platform-dependent } return(dt); }
public void VisitApplication(Application appl) { handler.MemAccessTrait(basePointer, appl, appl.DataType.Size, eField !, 0); }