[LLVMdev] Reference Manual Clarifications
Jon Sargeant
delta17 at cox.net
Mon Mar 31 12:17:13 PDT 2008
Here is a patch containing all but one of the changes. I realized that
the remainder/modulo discussion does indeed belongs to the srem
instruction. The semantics of urem are obvious and need no further
clarification.
Best Regards,
Jon
1572,1573c1572,1575
< notation (see below). Floating point constants must have a <a
< href="#t_floating">floating point</a> type. </dd>
---
> notation (see below). The assembler requires the exact decimal
value of
> a floating-point constant. For example, the assembler accepts 1.25 but
> rejects 1.3 because 1.3 is a repeating decimal in binary. Floating
point
> constants must have a <a href="#t_floating">floating point</a>
type. </dd>
2178c2180
< program. They require two operands, execute an operation on them, and
---
> program. They require two operands of the same type, execute an
operation on them, and
2181,2182c2183
< The result value of a binary operator is not
< necessarily the same type as its operands.</p>
---
> The result value has the same type as its operands.</p>
2332c2333
< <p>The value produced is the signed integer quotient of the two
operands.</p>
---
> <p>The value produced is the signed integer quotient of the two
operands rounded towards zero.</p>
2386,2387c2387
< This instruction always performs an unsigned division to get the
remainder,
< regardless of whether the arguments are unsigned or not.</p>
---
> This instruction always performs an unsigned division to get the
remainder.</p>
2458c2458,2459
< <p>This instruction returns the <i>remainder</i> of a division.</p>
---
> <p>This instruction returns the <i>remainder</i> of a division.
> The remainder has the same sign as the dividend.</p>
2472,2474c2473,2474
< instructions. They require two operands, execute an operation on them,
< and produce a single value. The resulting value of the bitwise binary
< operators is always the same type as its first operand.</p>
---
> instructions. They require two operands of the same type, execute an
operation on them,
> and produce a single value. The resulting value is the same type as
its operands.</p>
2499,2501c2499,2501
< <p>The value produced is <tt>var1</tt> * 2<sup><tt>var2</tt></sup>. If
< <tt>var2</tt> is (statically or dynamically) equal to or larger than
the number
< of bits in <tt>var1</tt>, the result is undefined.</p>
---
> <p>The value produced is <tt>var1</tt> * 2<sup><tt>var2</tt></sup>
mod 2<sup>n</sup>,
> where n is the width of the result. If <tt>var2</tt> is (statically
or dynamically) negative or
> equal to or larger than the number of bits in <tt>var1</tt>, the
result is undefined.</p>
2532c2532
< shift. If <tt>var2</tt> is (statically or dynamically) equal to or
larger than
---
> shift. If <tt>var2</tt> is (statically or dynamically) negative or
equal to or larger than
2567c2567
< of <tt>var1</tt>. If <tt>var2</tt> is (statically or dynamically)
equal to or
---
> of <tt>var1</tt>. If <tt>var2</tt> is (statically or dynamically)
negative or equal to or
More information about the llvm-dev
mailing list