Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Bitcode/Reader/BitcodeReader.cpp
Show First 20 Lines • Show All 4,845 Lines • ▼ Show 20 Lines | case bitc::FUNC_CODE_INST_STORE_OLD: { // STORE2:[ptrty, ptr, val, align, vol] | ||||
OpNum + 2 != Record.size()) | OpNum + 2 != Record.size()) | ||||
return error("Invalid record"); | return error("Invalid record"); | ||||
if (Error Err = typeCheckLoadStoreInst(Val->getType(), Ptr->getType())) | if (Error Err = typeCheckLoadStoreInst(Val->getType(), Ptr->getType())) | ||||
return Err; | return Err; | ||||
MaybeAlign Align; | MaybeAlign Align; | ||||
if (Error Err = parseAlignmentValue(Record[OpNum], Align)) | if (Error Err = parseAlignmentValue(Record[OpNum], Align)) | ||||
return Err; | return Err; | ||||
I = new StoreInst(Val, Ptr, Record[OpNum + 1], | I = new StoreInst(Val, Ptr, Record[OpNum + 1], Align); | ||||
Align ? Align->value() : 0); | |||||
InstructionList.push_back(I); | InstructionList.push_back(I); | ||||
break; | break; | ||||
} | } | ||||
case bitc::FUNC_CODE_INST_STOREATOMIC: | case bitc::FUNC_CODE_INST_STOREATOMIC: | ||||
case bitc::FUNC_CODE_INST_STOREATOMIC_OLD: { | case bitc::FUNC_CODE_INST_STOREATOMIC_OLD: { | ||||
// STOREATOMIC: [ptrty, ptr, val, align, vol, ordering, ssid] | // STOREATOMIC: [ptrty, ptr, val, align, vol, ordering, ssid] | ||||
unsigned OpNum = 0; | unsigned OpNum = 0; | ||||
Value *Val, *Ptr; | Value *Val, *Ptr; | ||||
Show All 16 Lines | case bitc::FUNC_CODE_INST_STOREATOMIC_OLD: { | ||||
return error("Invalid record"); | return error("Invalid record"); | ||||
SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]); | SyncScope::ID SSID = getDecodedSyncScopeID(Record[OpNum + 3]); | ||||
if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) | if (Ordering != AtomicOrdering::NotAtomic && Record[OpNum] == 0) | ||||
return error("Invalid record"); | return error("Invalid record"); | ||||
MaybeAlign Align; | MaybeAlign Align; | ||||
if (Error Err = parseAlignmentValue(Record[OpNum], Align)) | if (Error Err = parseAlignmentValue(Record[OpNum], Align)) | ||||
return Err; | return Err; | ||||
I = new StoreInst(Val, Ptr, Record[OpNum + 1], Align ? Align->value() : 0, | I = new StoreInst(Val, Ptr, Record[OpNum + 1], Align, Ordering, SSID); | ||||
Ordering, SSID); | |||||
InstructionList.push_back(I); | InstructionList.push_back(I); | ||||
break; | break; | ||||
} | } | ||||
case bitc::FUNC_CODE_INST_CMPXCHG_OLD: | case bitc::FUNC_CODE_INST_CMPXCHG_OLD: | ||||
case bitc::FUNC_CODE_INST_CMPXCHG: { | case bitc::FUNC_CODE_INST_CMPXCHG: { | ||||
// CMPXCHG:[ptrty, ptr, cmp, new, vol, successordering, ssid, | // CMPXCHG:[ptrty, ptr, cmp, new, vol, successordering, ssid, | ||||
// failureordering?, isweak?] | // failureordering?, isweak?] | ||||
unsigned OpNum = 0; | unsigned OpNum = 0; | ||||
▲ Show 20 Lines • Show All 1,835 Lines • Show Last 20 Lines |