qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts
@ 2015-07-30 22:03 Aurelien Jarno
  2015-07-30 22:03 ` [Qemu-devel] [PATCH 1/3] tcg/mips: fix TLB loading for BE host with 32-bit guests Aurelien Jarno
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Aurelien Jarno @ 2015-07-30 22:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Aurelien Jarno, Richard Henderson

These are small fixes for MIPS and S390 hosts, found by testing various
guests on these hosts.

Aurelien Jarno (3):
  tcg/mips: fix TLB loading for BE host with 32-bit guests
  tcg/mips: Mask TCGMemOp appropriately for indexing
  tcg/s390x: Mask TCGMemOp appropriately for indexing

 tcg/mips/tcg-target.c | 8 +++++---
 tcg/s390/tcg-target.c | 4 ++--
 2 files changed, 7 insertions(+), 5 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH 1/3] tcg/mips: fix TLB loading for BE host with 32-bit guests
  2015-07-30 22:03 [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Aurelien Jarno
@ 2015-07-30 22:03 ` Aurelien Jarno
  2015-07-30 22:03 ` [Qemu-devel] [PATCH 2/3] tcg/mips: Mask TCGMemOp appropriately for indexing Aurelien Jarno
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2015-07-30 22:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Aurelien Jarno, Richard Henderson

For 32-bit guest, we load a 32-bit address from the TLB, so there is no
need to compensate for the low or high part. This fixes 32-bit guests on
big-endian hosts.

Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 tcg/mips/tcg-target.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
index 6680299..8dce19c 100644
--- a/tcg/mips/tcg-target.c
+++ b/tcg/mips/tcg-target.c
@@ -963,9 +963,11 @@ static void tcg_out_tlb_load(TCGContext *s, TCGReg base, TCGReg addrl,
     }
 
     /* Load the tlb comparator.  */
-    tcg_out_opc_imm(s, OPC_LW, TCG_TMP0, TCG_REG_A0, cmp_off + LO_OFF);
     if (TARGET_LONG_BITS == 64) {
+        tcg_out_opc_imm(s, OPC_LW, TCG_TMP0, TCG_REG_A0, cmp_off + LO_OFF);
         tcg_out_opc_imm(s, OPC_LW, base, TCG_REG_A0, cmp_off + HI_OFF);
+    } else {
+        tcg_out_opc_imm(s, OPC_LW, TCG_TMP0, TCG_REG_A0, cmp_off);
     }
 
     /* Mask the page bits, keeping the alignment bits to compare against.
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH 2/3] tcg/mips: Mask TCGMemOp appropriately for indexing
  2015-07-30 22:03 [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Aurelien Jarno
  2015-07-30 22:03 ` [Qemu-devel] [PATCH 1/3] tcg/mips: fix TLB loading for BE host with 32-bit guests Aurelien Jarno
@ 2015-07-30 22:03 ` Aurelien Jarno
  2015-07-30 22:04 ` [Qemu-devel] [PATCH 3/3] tcg/s390x: " Aurelien Jarno
  2015-07-31 14:14 ` [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Richard Henderson
  3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2015-07-30 22:03 UTC (permalink / raw)
  To: qemu-devel; +Cc: Aurelien Jarno, Richard Henderson

Commit 2b7ec66f fixed TCGMemOp masking following the MO_AMASK addition,
but two cases were forgotten in the TCG MIPS backend.

Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 tcg/mips/tcg-target.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
index 8dce19c..064db46 100644
--- a/tcg/mips/tcg-target.c
+++ b/tcg/mips/tcg-target.c
@@ -1105,7 +1105,7 @@ static void tcg_out_qemu_st_slow_path(TCGContext *s, TCGLabelQemuLdst *l)
 static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,
                                    TCGReg base, TCGMemOp opc)
 {
-    switch (opc) {
+    switch (opc & (MO_SSIZE | MO_BSWAP)) {
     case MO_UB:
         tcg_out_opc_imm(s, OPC_LBU, datalo, base, 0);
         break;
@@ -1195,7 +1195,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGArg *args, bool is_64)
 static void tcg_out_qemu_st_direct(TCGContext *s, TCGReg datalo, TCGReg datahi,
                                    TCGReg base, TCGMemOp opc)
 {
-    switch (opc) {
+    switch (opc & (MO_SIZE | MO_BSWAP)) {
     case MO_8:
         tcg_out_opc_imm(s, OPC_SB, datalo, base, 0);
         break;
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PATCH 3/3] tcg/s390x: Mask TCGMemOp appropriately for indexing
  2015-07-30 22:03 [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Aurelien Jarno
  2015-07-30 22:03 ` [Qemu-devel] [PATCH 1/3] tcg/mips: fix TLB loading for BE host with 32-bit guests Aurelien Jarno
  2015-07-30 22:03 ` [Qemu-devel] [PATCH 2/3] tcg/mips: Mask TCGMemOp appropriately for indexing Aurelien Jarno
@ 2015-07-30 22:04 ` Aurelien Jarno
  2015-07-31 14:14 ` [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Richard Henderson
  3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2015-07-30 22:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: Aurelien Jarno, Richard Henderson

Commit 2b7ec66f fixed TCGMemOp masking following the MO_AMASK addition,
but two cases were forgotten in the TCG S390 backend.

Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 tcg/s390/tcg-target.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index 921991e..aa718ec 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -1390,7 +1390,7 @@ static void tcg_out_call(TCGContext *s, tcg_insn_unit *dest)
 static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc, TCGReg data,
                                    TCGReg base, TCGReg index, int disp)
 {
-    switch (opc) {
+    switch (opc & (MO_SSIZE | MO_BSWAP)) {
     case MO_UB:
         tcg_out_insn(s, RXY, LLGC, data, base, index, disp);
         break;
@@ -1449,7 +1449,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGMemOp opc, TCGReg data,
 static void tcg_out_qemu_st_direct(TCGContext *s, TCGMemOp opc, TCGReg data,
                                    TCGReg base, TCGReg index, int disp)
 {
-    switch (opc) {
+    switch (opc & (MO_SIZE | MO_BSWAP)) {
     case MO_UB:
         if (disp >= 0 && disp < 0x1000) {
             tcg_out_insn(s, RX, STC, data, base, index, disp);
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts
  2015-07-30 22:03 [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Aurelien Jarno
                   ` (2 preceding siblings ...)
  2015-07-30 22:04 ` [Qemu-devel] [PATCH 3/3] tcg/s390x: " Aurelien Jarno
@ 2015-07-31 14:14 ` Richard Henderson
  3 siblings, 0 replies; 5+ messages in thread
From: Richard Henderson @ 2015-07-31 14:14 UTC (permalink / raw)
  To: Aurelien Jarno, qemu-devel

On 07/30/2015 03:03 PM, Aurelien Jarno wrote:
> These are small fixes for MIPS and S390 hosts, found by testing various
> guests on these hosts.
>
> Aurelien Jarno (3):
>    tcg/mips: fix TLB loading for BE host with 32-bit guests
>    tcg/mips: Mask TCGMemOp appropriately for indexing
>    tcg/s390x: Mask TCGMemOp appropriately for indexing
>
>   tcg/mips/tcg-target.c | 8 +++++---
>   tcg/s390/tcg-target.c | 4 ++--
>   2 files changed, 7 insertions(+), 5 deletions(-)
>

Reviewed-by: Richard Henderson <rth@twiddle.net>


r~

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-07-31 14:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-30 22:03 [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Aurelien Jarno
2015-07-30 22:03 ` [Qemu-devel] [PATCH 1/3] tcg/mips: fix TLB loading for BE host with 32-bit guests Aurelien Jarno
2015-07-30 22:03 ` [Qemu-devel] [PATCH 2/3] tcg/mips: Mask TCGMemOp appropriately for indexing Aurelien Jarno
2015-07-30 22:04 ` [Qemu-devel] [PATCH 3/3] tcg/s390x: " Aurelien Jarno
2015-07-31 14:14 ` [Qemu-devel] [PATCH 0/3] tcg: fixes for MIPS and S390 hosts Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).