summaryrefslogtreecommitdiff
path: root/tcg/README
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2011-01-10 19:23:42 -0800
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2011-01-20 12:16:05 +0100
commitb7767f0f3cb6879b42ed47e9375313829028adaf (patch)
tree2ff39d9b393d595cc83304db52ae4317a3053354 /tcg/README
parent9f8beb6636fdd913a25fa536238a3a047ce4cf63 (diff)
tcg: Define "deposit" as an optional operation.
Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'tcg/README')
-rw-r--r--tcg/README14
1 files changed, 14 insertions, 0 deletions
diff --git a/tcg/README b/tcg/README
index a18a87ffcd..a50ecc6588 100644
--- a/tcg/README
+++ b/tcg/README
@@ -285,6 +285,20 @@ the four high order bytes are set to zero.
Indicate that the value of t0 won't be used later. It is useful to
force dead code elimination.
+* deposit_i32/i64 dest, t1, t2, pos, loc
+
+Deposit T2 as a bitfield into T1, placing the result in DEST.
+The bitfield is described by POS/LOC, which are immediate values:
+
+ LEN - the length of the bitfield
+ POS - the position of the first bit, counting from the LSB
+
+For example, pos=8, len=4 indicates a 4-bit field at bit 8.
+This operation would be equivalent to
+
+ dest = (t1 & ~0x0f00) | ((t2 << 8) & 0x0f00)
+
+
********* Conditional moves
* setcond_i32/i64 cond, dest, t1, t2