Re: [Qemu-devel] [PATCH v1 1/3] target/arm: Update the memops for exclusive load

2017-08-12 Thread Edgar E. Iglesias
On Fri, Aug 11, 2017 at 03:17:36PM -0700, Alistair Francis wrote:
> Acording to the ARM ARM exclusive loads require the same allignment as
> exclusive stores. Let's update the memops used for the load to match
> that of the store. This adds the alignment requirement to the memops.
> 
> Signed-off-by: Alistair Francis 
> Reviewed-by: Richard Henderson 

Reviewed-by: Edgar E. Iglesias 


> ---
> 
>  target/arm/translate-a64.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
> index 58ed4c6d05..245175e2f1 100644
> --- a/target/arm/translate-a64.c
> +++ b/target/arm/translate-a64.c
> @@ -1854,7 +1854,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, 
> int rt2,
> TCGv_i64 addr, int size, bool is_pair)
>  {
>  TCGv_i64 tmp = tcg_temp_new_i64();
> -TCGMemOp memop = s->be_data + size;
> +TCGMemOp memop = size | MO_ALIGN | s->be_data;
>  
>  g_assert(size <= 3);
>  tcg_gen_qemu_ld_i64(tmp, addr, get_mem_index(s), memop);
> -- 
> 2.11.0
> 



[Qemu-devel] [PATCH v1 1/3] target/arm: Update the memops for exclusive load

2017-08-11 Thread Alistair Francis
Acording to the ARM ARM exclusive loads require the same allignment as
exclusive stores. Let's update the memops used for the load to match
that of the store. This adds the alignment requirement to the memops.

Signed-off-by: Alistair Francis 
Reviewed-by: Richard Henderson 
---

 target/arm/translate-a64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c
index 58ed4c6d05..245175e2f1 100644
--- a/target/arm/translate-a64.c
+++ b/target/arm/translate-a64.c
@@ -1854,7 +1854,7 @@ static void gen_load_exclusive(DisasContext *s, int rt, 
int rt2,
TCGv_i64 addr, int size, bool is_pair)
 {
 TCGv_i64 tmp = tcg_temp_new_i64();
-TCGMemOp memop = s->be_data + size;
+TCGMemOp memop = size | MO_ALIGN | s->be_data;
 
 g_assert(size <= 3);
 tcg_gen_qemu_ld_i64(tmp, addr, get_mem_index(s), memop);
-- 
2.11.0