Home | History | Annotate | Download | only in AsmParser

Lines Matching defs:Memory

525     struct MemoryOp Memory;
580 Memory = o.Memory;
720 // checks whether this operand is a memory operand computed as an offset
733 if(!Memory.OffsetImm || Memory.OffsetRegNum) return false;
734 if(Memory.BaseRegNum != ARM::PC) return false;
735 Val = Memory.OffsetImm->getValue();
1086 return Memory.OffsetRegNum == 0 && Memory.OffsetImm == nullptr &&
1087 (alignOK || Memory.Alignment == Alignment);
1090 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1093 if (Memory.BaseRegNum != ARM::PC)
1096 if (!Memory.OffsetImm) return true;
1097 int64_t Val = Memory.OffsetImm->getValue();
1163 if (!isMem() || Memory.Alignment != 0) return false;
1165 if (Memory.OffsetRegNum) return true;
1167 if (!Memory.OffsetImm) return true;
1168 int64_t Val = Memory.OffsetImm->getValue();
1185 if (!isMem() || Memory.Alignment != 0) return false;
1187 if (Memory.ShiftType != ARM_AM::no_shift) return false;
1189 if (Memory.OffsetRegNum) return true;
1191 if (!Memory.OffsetImm) return true;
1192 int64_t Val = Memory.OffsetImm->getValue();
1215 if (!isMem() || Memory.Alignment != 0) return false;
1217 if (Memory.OffsetRegNum) return false;
1219 if (!Memory.OffsetImm) return true;
1220 int64_t Val = Memory.OffsetImm->getValue();
1225 if (!isMem() || !Memory.OffsetRegNum || Memory.isNegative ||
1226 Memory.ShiftType != ARM_AM::no_shift || Memory.Alignment != 0)
1231 if (!isMem() || !Memory.OffsetRegNum || Memory.isNegative ||
1232 Memory.ShiftType != ARM_AM::lsl || Memory.ShiftImm != 1 ||
1233 Memory.Alignment != 0 )
1238 if (!isMem() || !Memory.OffsetRegNum || Memory.Alignment != 0)
1243 if (!isMem() || !Memory.OffsetRegNum || Memory.isNegative ||
1244 Memory.Alignment != 0)
1247 if (Memory.ShiftType == ARM_AM::no_shift)
1249 if (Memory.ShiftType != ARM_AM::lsl || Memory.ShiftImm > 3)
1256 if (!isMem() || !Memory.OffsetRegNum || Memory.isNegative ||
1257 Memory.ShiftType != ARM_AM::no_shift || Memory.Alignment != 0)
1259 return isARMLowRegister(Memory.BaseRegNum) &&
1260 (!Memory.OffsetRegNum || isARMLowRegister(Memory.OffsetRegNum));
1263 if (!isMem() || Memory.OffsetRegNum != 0 ||
1264 !isARMLowRegister(Memory.BaseRegNum) || Memory.Alignment != 0)
1267 if (!Memory.OffsetImm) return true;
1268 int64_t Val = Memory.OffsetImm->getValue();
1272 if (!isMem() || Memory.OffsetRegNum != 0 ||
1273 !isARMLowRegister(Memory.BaseRegNum) || Memory.Alignment != 0)
1276 if (!Memory.OffsetImm) return true;
1277 int64_t Val = Memory.OffsetImm->getValue();
1281 if (!isMem() || Memory.OffsetRegNum != 0 ||
1282 !isARMLowRegister(Memory.BaseRegNum) || Memory.Alignment != 0)
1285 if (!Memory.OffsetImm) return true;
1286 int64_t Val = Memory.OffsetImm->getValue();
1290 if (!isMem() || Memory.OffsetRegNum != 0 ||
1291 Memory.BaseRegNum != ARM::SP || Memory.Alignment != 0)
1294 if (!Memory.OffsetImm) return true;
1295 int64_t Val = Memory.OffsetImm->getValue();
1304 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1307 if (!Memory.OffsetImm) return true;
1308 int64_t Val = Memory.OffsetImm->getValue();
1313 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1316 if (!Memory.OffsetImm) return true;
1317 int64_t Val = Memory.OffsetImm->getValue();
1321 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1324 if (Memory.BaseRegNum == ARM::PC) return false;
1326 if (!Memory.OffsetImm) return true;
1327 int64_t Val = Memory.OffsetImm->getValue();
1331 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1334 if (!Memory.OffsetImm) return true;
1335 int64_t Val = Memory.OffsetImm->getValue();
1339 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1342 if (Memory.BaseRegNum == ARM::PC) return false;
1344 if (!Memory.OffsetImm) return false;
1345 int64_t Val = Memory.OffsetImm->getValue();
1349 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1352 if (!Memory.OffsetImm) return true;
1353 int64_t Val = Memory.OffsetImm->getValue();
1363 if (!isMem() || Memory.OffsetRegNum != 0 || Memory.Alignment != 0)
1366 if (!Memory.OffsetImm) return true;
1367 int64_t Val = Memory.OffsetImm->getValue();
1946 assert(isa<MCConstantExpr>(Memory.OffsetImm) && "Unknown value type!");
1947 Inst.addOperand(MCOperand::CreateImm(Memory.OffsetImm->getValue()));
1978 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
1983 int32_t Imm = Memory.OffsetImm->getValue();
2005 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2006 Inst.addOperand(MCOperand::CreateImm(Memory.Alignment));
2055 int32_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2056 if (!Memory.OffsetRegNum) {
2065 Val = ARM_AM::getAM2Opc(Memory.isNegative ? ARM_AM::sub : ARM_AM::add,
2066 Memory.ShiftImm, Memory.ShiftType);
2068 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2069 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2099 int32_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2100 if (!Memory.OffsetRegNum) {
2109 Val = ARM_AM::getAM3Opc(Memory.isNegative ? ARM_AM::sub : ARM_AM::add, 0);
2111 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2112 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2150 int32_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() / 4 : 0;
2156 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2171 int64_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2172 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2179 int32_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() / 4 : 0;
2180 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2186 int64_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2187 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2208 // Otherwise, it's a normal memory reg+offset.
2209 int64_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2210 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2223 // Otherwise, it's a normal memory reg+offset.
2224 int64_t Val = Memory.OffsetImm ? Memory.OffsetImm->getValue() : 0;
2225 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2231 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2232 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2237 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2238 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2244 ARM_AM::getAM2Opc(Memory.isNegative ? ARM_AM::sub : ARM_AM::add,
2245 Memory.ShiftImm, Memory.ShiftType);
2246 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2247 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2253 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2254 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2255 Inst.addOperand(MCOperand::CreateImm(Memory.ShiftImm));
2260 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2261 Inst.addOperand(MCOperand::CreateReg(Memory.OffsetRegNum));
2266 int64_t Val = Memory.OffsetImm ? (Memory.OffsetImm->getValue() / 4) : 0;
2267 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2273 int64_t Val = Memory.OffsetImm ? (Memory.OffsetImm->getValue() / 2) : 0;
2274 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2280 int64_t Val = Memory.OffsetImm ? (Memory.OffsetImm->getValue()) : 0;
2281 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2287 int64_t Val = Memory.OffsetImm ? (Memory.OffsetImm->getValue() / 4) : 0;
2288 Inst.addOperand(MCOperand::CreateReg(Memory.BaseRegNum));
2679 Op->Memory.BaseRegNum = BaseRegNum;
2680 Op->Memory.OffsetImm = OffsetImm;
2681 Op->Memory.OffsetRegNum = OffsetRegNum;
2682 Op->Memory.ShiftType = ShiftType;
2683 Op->Memory.ShiftImm = ShiftImm;
2684 Op->Memory.Alignment = Alignment;
2685 Op->Memory.isNegative = isNegative;
2782 OS << "<memory "
2783 << " base:" << Memory.BaseRegNum;
4458 /// Parse an ARM memory expression, return false if successful else return true
4476 return Error(Tok.getLoc(), "malformed memory operand");
4497 "Lost colon or comma in memory operand?!");
4512 // The expression has to be a constant. Memory references with relocations
4568 // The expression has to be a constant. Memory references with relocations