mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
update the tutorial to use CreateFAdd to create fp operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112733 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1f758831cb
commit
f57fcf7844
@ -222,7 +222,7 @@ code, we do a simple switch on the opcode to create the right LLVM instruction.
|
||||
|
||||
<p>In the example above, the LLVM builder class is starting to show its value.
|
||||
IRBuilder knows where to insert the newly created instruction, all you have to
|
||||
do is specify what instruction to create (e.g. with <tt>CreateAdd</tt>), which
|
||||
do is specify what instruction to create (e.g. with <tt>CreateFAdd</tt>), which
|
||||
operands to use (<tt>L</tt> and <tt>R</tt> here) and optionally provide a name
|
||||
for the generated instruction.</p>
|
||||
|
||||
@ -1054,9 +1054,9 @@ Value *BinaryExprAST::Codegen() {
|
||||
if (L == 0 || R == 0) return 0;
|
||||
|
||||
switch (Op) {
|
||||
case '+': return Builder.CreateAdd(L, R, "addtmp");
|
||||
case '-': return Builder.CreateSub(L, R, "subtmp");
|
||||
case '*': return Builder.CreateMul(L, R, "multmp");
|
||||
case '+': return Builder.CreateFAdd(L, R, "addtmp");
|
||||
case '-': return Builder.CreateFSub(L, R, "subtmp");
|
||||
case '*': return Builder.CreateFMul(L, R, "multmp");
|
||||
case '<':
|
||||
L = Builder.CreateFCmpULT(L, R, "cmptmp");
|
||||
// Convert bool 0/1 to double 0.0 or 1.0
|
||||
|
@ -800,7 +800,7 @@ references to it will naturally find it in the symbol table.</p>
|
||||
StepVal = ConstantFP::get(getGlobalContext(), APFloat(1.0));
|
||||
}
|
||||
|
||||
Value *NextVar = Builder.CreateAdd(Variable, StepVal, "nextvar");
|
||||
Value *NextVar = Builder.CreateFAdd(Variable, StepVal, "nextvar");
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -1517,7 +1517,7 @@ Value *ForExprAST::Codegen() {
|
||||
StepVal = ConstantFP::get(getGlobalContext(), APFloat(1.0));
|
||||
}
|
||||
|
||||
Value *NextVar = Builder.CreateAdd(Variable, StepVal, "nextvar");
|
||||
Value *NextVar = Builder.CreateFAdd(Variable, StepVal, "nextvar");
|
||||
|
||||
// Compute the end condition.
|
||||
Value *EndCond = End->Codegen();
|
||||
|
@ -1540,7 +1540,7 @@ Value *ForExprAST::Codegen() {
|
||||
StepVal = ConstantFP::get(getGlobalContext(), APFloat(1.0));
|
||||
}
|
||||
|
||||
Value *NextVar = Builder.CreateAdd(Variable, StepVal, "nextvar");
|
||||
Value *NextVar = Builder.CreateFAdd(Variable, StepVal, "nextvar");
|
||||
|
||||
// Compute the end condition.
|
||||
Value *EndCond = End->Codegen();
|
||||
|
@ -480,7 +480,7 @@ the unabridged code):</p>
|
||||
<b>// Reload, increment, and restore the alloca. This handles the case where
|
||||
// the body of the loop mutates the variable.
|
||||
Value *CurVar = Builder.CreateLoad(Alloca);
|
||||
Value *NextVar = Builder.CreateAdd(CurVar, StepVal, "nextvar");
|
||||
Value *NextVar = Builder.CreateFAdd(CurVar, StepVal, "nextvar");
|
||||
Builder.CreateStore(NextVar, Alloca);</b>
|
||||
...
|
||||
</pre>
|
||||
@ -1833,7 +1833,7 @@ Value *ForExprAST::Codegen() {
|
||||
// Reload, increment, and restore the alloca. This handles the case where
|
||||
// the body of the loop mutates the variable.
|
||||
Value *CurVar = Builder.CreateLoad(Alloca, VarName.c_str());
|
||||
Value *NextVar = Builder.CreateAdd(CurVar, StepVal, "nextvar");
|
||||
Value *NextVar = Builder.CreateFAdd(CurVar, StepVal, "nextvar");
|
||||
Builder.CreateStore(NextVar, Alloca);
|
||||
|
||||
// Convert condition to a bool by comparing equal to 0.0.
|
||||
|
Loading…
Reference in New Issue
Block a user