if (destRef.getType() instanceof BooleanType) { elementSize = 1; } else if (destRef.getType() instanceof ByteType) { elementSize = 1; } else if (destRef.getType() instanceof CharType) { elementSize = 2; } else if (destRef.getType() instanceof ShortType) { elementSize = 2; } else if (destRef.getType() instanceof IntType) { elementSize = 4; } else if (destRef.getType() instanceof FloatType) { elementSize = 4; } else if (destRef.getType() instanceof LongType) { elementSize = 8; } else if (destRef.getType() instanceof DoubleType) { elementSize = 8;
public void caseArrayRef(ArrayRef v) { ((ConvertToBaf) (v.getBase())).convertToBaf(context, out); ((ConvertToBaf) (v.getIndex())).convertToBaf(context, out); ((ConvertToBaf) rvalue).convertToBaf(context, out); Unit u = Baf.v().newArrayWriteInst(v.getType()); u.addAllTagsOf(JAssignStmt.this); out.add(u); }
emitValue(v.getIndex()); v.getType().apply(new TypeSwitch() { public void caseArrayType(ArrayType ty) { emit("aaload", -1);
emitValue(rvalue); v.getType().apply(new TypeSwitch() { public void caseArrayType(ArrayType t) { emit("aastore", -3);
} else if (left instanceof ArrayRef) { ArrayRef ar = (ArrayRef) left; Type arType = ar.getType(); if (arType instanceof UnknownType) { arType = findArrayType(localDefs, stmt, 0, Collections.<Unit>emptySet());
interestingFlow = !ignoreThisDataType(ar.getType()); } else if (rv instanceof StaticFieldRef) { sources.add(rv);
interestingFlow = !ignoreThisDataType(ar.getType()); } else if (rv instanceof StaticFieldRef) { sources.add(rv);
Type aType = ((ArrayRef) l).getType(); if (aType instanceof UnknownType) { usedAsObject = stmt.hasTag("ObjectOpTag"); // isObject(
return; } else if (l instanceof ArrayRef) { Type aType = ((ArrayRef) l).getType(); if (aType instanceof UnknownType) { usedAsObject = stmt.hasTag("ObjectOpTag"); // isObject(
interestingFlow = !ignoreThisDataType(ar.getType());
interestingFlow = !ignoreThisDataType(ar.getType());
interestingFlow = !ignoreThisDataType(ar.getType());
interestingFlow = !ignoreThisDataType(ar.getType());
targetType = TypeUtils.buildArrayOrAddDimension(targetType, arrayRef.getType().getArrayType());
if (leftValue instanceof ArrayRef) { ArrayRef arrayRef = (ArrayRef) leftValue; newType = TypeUtils.buildArrayOrAddDimension(newType, arrayRef.getType().getArrayType()); } else if (defStmt.getRightOp() instanceof ArrayRef) { newType = ((ArrayType) newType).getElementType(); ArrayRef arrayRef = (ArrayRef) defStmt.getRightOp(); targetType = TypeUtils.buildArrayOrAddDimension(targetType, arrayRef.getType().getArrayType()); } else if (leftValue instanceof ArrayRef) { assert source.getAccessPath().getBaseType() instanceof ArrayType;