allows it to describe a wide range of information conveniently and compactly.
The TableGen types are:</p>
-<ul>
<dl>
-
<dt><tt><b>bit</b></tt></dt>
<dd>A 'bit' is a boolean value that can hold either 0 or 1.</dd>
<dd>This represents a big hunk of text. NOTE: I don't remember why this is
distinct from string!</dd>
</dl>
-</ul>
<p>To date, these types have been sufficient for describing things that
TableGen has been used for, but it is straight-forward to extend this list if
natural syntax and flavor for the application. The current expression forms
supported include:</p>
-<ul>
<dl>
<dt><tt>?</tt></dt>
<dd>uninitialized field</dd>
<dd>A string value that is the result of concatenating the 'a' and 'b'
strings.</dd>
</dl>
-</ul>
<p>Note that all of the values have rules specifying how they convert to values
for different types. These rules allow you to assign a value like "<tt>7</tt>"
end-user to factor out commonality from the records.</p>
<p>File-scope "let" expressions take a comma-separated list of bindings to
-apply, and one of more records to bind the values in. Here are some
+apply, and one or more records to bind the values in. Here are some
examples:</p>
<div class="doc_code">
<b>let</b> Defs = [EAX, ECX, EDX, FP0, FP1, FP2, FP3, FP4, FP5, FP6, ST0,
MM0, MM1, MM2, MM3, MM4, MM5, MM6, MM7,
XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, EFLAGS] <b>in</b> {
- <b>def</b> CALLpcrel32 : Ii32<0xE8, RawFrm, (outs), (ins i32imm:$dst,variable_ops),
- "call\t${dst:call}", []>;
- <b>def</b> CALL32r : I<0xFF, MRM2r, (outs), (ins GR32:$dst, variable_ops),
- "call\t{*}$dst", [(X86call GR32:$dst)]>;
- <b>def</b> CALL32m : I<0xFF, MRM2m, (outs), (ins i32mem:$dst, variable_ops),
- "call\t{*}$dst", []>;
+ <b>def</b> CALLpcrel32 : Ii32<0xE8, RawFrm, (outs), (ins i32imm:$dst,variable_ops),
+ "call\t${dst:call}", []>;
+ <b>def</b> CALL32r : I<0xFF, MRM2r, (outs), (ins GR32:$dst, variable_ops),
+ "call\t{*}$dst", [(X86call GR32:$dst)]>;
+ <b>def</b> CALL32m : I<0xFF, MRM2m, (outs), (ins i32mem:$dst, variable_ops),
+ "call\t{*}$dst", []>;
}
</pre>
</div>