aboutsummaryrefslogtreecommitdiff
path: root/tcg/tcg-op.h
diff options
context:
space:
mode:
authorSergey Fedorov <serge.fdrv@gmail.com>2016-04-09 01:00:23 +0300
committerRichard Henderson <rth@twiddle.net>2016-05-12 14:06:42 -1000
commit90aa39a1cc4837360889f0e033ca25cc82100308 (patch)
treeb8f857f456fec4ecd5b5931f41c7b17b52a353eb /tcg/tcg-op.h
parent5b053a4a28278bca606eeff7d1c0730df1b047e9 (diff)
downloadqemu-90aa39a1cc4837360889f0e033ca25cc82100308.zip
qemu-90aa39a1cc4837360889f0e033ca25cc82100308.tar.gz
qemu-90aa39a1cc4837360889f0e033ca25cc82100308.tar.bz2
tcg: Allow goto_tb to any target PC in user mode
In user mode, there's only a static address translation, TBs are always invalidated properly and direct jumps are reset when mapping change. Thus the destination address is always valid for direct jumps and there's no need to restrict it to the pages the TB resides in. Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com> Signed-off-by: Sergey Fedorov <sergey.fedorov@linaro.org> Cc: Riku Voipio <riku.voipio@iki.fi> Cc: Blue Swirl <blauwirbel@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'tcg/tcg-op.h')
-rw-r--r--tcg/tcg-op.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/tcg/tcg-op.h b/tcg/tcg-op.h
index ace3961..f217e80 100644
--- a/tcg/tcg-op.h
+++ b/tcg/tcg-op.h
@@ -759,9 +759,12 @@ static inline void tcg_gen_exit_tb(uintptr_t val)
*
* See tcg/README for more info about this TCG operation.
*
- * NOTE: Direct jumps with goto_tb are only safe within the pages this TB
- * resides in because we don't take care of direct jumps when address mapping
- * changes, e.g. in tlb_flush().
+ * NOTE: In softmmu emulation, direct jumps with goto_tb are only safe within
+ * the pages this TB resides in because we don't take care of direct jumps when
+ * address mapping changes, e.g. in tlb_flush(). In user mode, there's only a
+ * static address translation, so the destination address is always valid, TBs
+ * are always invalidated properly, and direct jumps are reset when mapping
+ * changes.
*/
void tcg_gen_goto_tb(unsigned idx);