diff options
author | Richard Henderson | 2019-03-01 21:04:53 +0100 |
---|---|---|
committer | Peter Maydell | 2019-03-05 16:55:07 +0100 |
commit | 9888bd1e20425dfe4dcca5dcd1ca2fac8e90ad19 (patch) | |
tree | f0cdc842e6f75974b15cb3b7cd33d0e10332970d /target/arm/translate-a64.c | |
parent | target/arm: Split out arm_sctlr (diff) | |
download | qemu-9888bd1e20425dfe4dcca5dcd1ca2fac8e90ad19.tar.gz qemu-9888bd1e20425dfe4dcca5dcd1ca2fac8e90ad19.tar.xz qemu-9888bd1e20425dfe4dcca5dcd1ca2fac8e90ad19.zip |
target/arm: Implement ARMv8.0-SB
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190301200501.16533-3-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/translate-a64.c')
-rw-r--r-- | target/arm/translate-a64.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index d3c8eaf089..4aa5a307e4 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -1637,7 +1637,21 @@ static void handle_sync(DisasContext *s, uint32_t insn, reset_btype(s); gen_goto_tb(s, 0, s->pc); return; + + case 7: /* SB */ + if (crm != 0 || !dc_isar_feature(aa64_sb, s)) { + goto do_unallocated; + } + /* + * TODO: There is no speculation barrier opcode for TCG; + * MB and end the TB instead. + */ + tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC); + gen_goto_tb(s, 0, s->pc); + return; + default: + do_unallocated: unallocated_encoding(s); return; } |