summaryrefslogtreecommitdiffstats
path: root/llvm/docs/CodeGenerator.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-10-10 21:30:55 +0000
committerChris Lattner <sabre@nondot.org>2009-10-10 21:30:55 +0000
commit10a5a6f057fdbedc2974f09eb695a705cc8cc221 (patch)
tree6beceb654c557435321c01f48d5e2e861c269859 /llvm/docs/CodeGenerator.html
parent6ce51fdf4396761690e251930426fa75e68145ed (diff)
downloadbcm5719-llvm-10a5a6f057fdbedc2974f09eb695a705cc8cc221.tar.gz
bcm5719-llvm-10a5a6f057fdbedc2974f09eb695a705cc8cc221.zip
x86 uses 5 operands for most memory refs now.
llvm-svn: 83733
Diffstat (limited to 'llvm/docs/CodeGenerator.html')
-rw-r--r--llvm/docs/CodeGenerator.html15
1 files changed, 9 insertions, 6 deletions
diff --git a/llvm/docs/CodeGenerator.html b/llvm/docs/CodeGenerator.html
index 4f8472c07fa..cc3a541e9c9 100644
--- a/llvm/docs/CodeGenerator.html
+++ b/llvm/docs/CodeGenerator.html
@@ -1812,24 +1812,27 @@ define fastcc i32 @tailcaller(i32 %in1, i32 %in2) {
<div class="doc_code">
<pre>
-Base + [1,2,4,8] * IndexReg + Disp32
+SegmentReg: Base + [1,2,4,8] * IndexReg + Disp32
</pre>
</div>
-<p>In order to represent this, LLVM tracks no less than 4 operands for each
+<p>In order to represent this, LLVM tracks no less than 5 operands for each
memory operand of this form. This means that the "load" form of
'<tt>mov</tt>' has the following <tt>MachineOperand</tt>s in this order:</p>
<div class="doc_code">
<pre>
-Index: 0 | 1 2 3 4
-Meaning: DestReg, | BaseReg, Scale, IndexReg, Displacement
-OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm
+Index: 0 | 1 2 3 4 5
+Meaning: DestReg, | BaseReg, Scale, IndexReg, Displacement Segment
+OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg
</pre>
</div>
<p>Stores, and all other instructions, treat the four memory operands in the
- same way and in the same order.</p>
+ same way and in the same order. If the segment register is unspecified
+ (regno = 0), then no segment override is generated. "Lea" operations do not
+ have a segment register specified, so they only have 4 operands for their
+ memory reference.</p>
</div>
OpenPOWER on IntegriCloud