diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index b501b8eb9f6..2f001c654a2 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -235,6 +235,8 @@ public: Instruction *InsertBefore = 0); LoadInst(Value *Ptr, const std::string &Name, bool isVolatile, BasicBlock *InsertAtEnd); + LoadInst(Value *Ptr, const std::string &Name, bool isVolatile, unsigned Align, + BasicBlock *InsertAtEnd); LoadInst(Value *Ptr, const char *Name, Instruction *InsertBefore); LoadInst(Value *Ptr, const char *Name, BasicBlock *InsertAtEnd); @@ -307,6 +309,8 @@ public: StoreInst(Value *Val, Value *Ptr, bool isVolatile, unsigned Align, Instruction *InsertBefore = 0); StoreInst(Value *Val, Value *Ptr, bool isVolatile, BasicBlock *InsertAtEnd); + StoreInst(Value *Val, Value *Ptr, bool isVolatile, + unsigned Align, BasicBlock *InsertAtEnd); /// isVolatile - Return true if this is a load from a volatile memory diff --git a/lib/VMCore/Instructions.cpp b/lib/VMCore/Instructions.cpp index acb2e35be5e..7dfe5aef20d 100644 --- a/lib/VMCore/Instructions.cpp +++ b/lib/VMCore/Instructions.cpp @@ -740,6 +740,16 @@ LoadInst::LoadInst(Value *Ptr, const std::string &Name, bool isVolatile, setName(Name); } +LoadInst::LoadInst(Value *Ptr, const std::string &Name, bool isVolatile, + unsigned Align, BasicBlock *InsertAE) + : UnaryInstruction(cast(Ptr->getType())->getElementType(), + Load, Ptr, InsertAE) { + setVolatile(isVolatile); + setAlignment(Align); + AssertOK(); + setName(Name); +} + LoadInst::LoadInst(Value *Ptr, const std::string &Name, bool isVolatile, BasicBlock *InsertAE) : UnaryInstruction(cast(Ptr->getType())->getElementType(), @@ -846,6 +856,16 @@ StoreInst::StoreInst(Value *val, Value *addr, bool isVolatile, AssertOK(); } +StoreInst::StoreInst(Value *val, Value *addr, bool isVolatile, + unsigned Align, BasicBlock *InsertAtEnd) + : Instruction(Type::VoidTy, Store, Ops, 2, InsertAtEnd) { + Ops[0].init(val, this); + Ops[1].init(addr, this); + setVolatile(isVolatile); + setAlignment(Align); + AssertOK(); +} + StoreInst::StoreInst(Value *val, Value *addr, bool isVolatile, BasicBlock *InsertAtEnd) : Instruction(Type::VoidTy, Store, Ops, 2, InsertAtEnd) {