qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming
@ 2013-04-17 14:26 Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 01/13] configure: QEMU_INCLUDES are the same for all subtargets Paolo Bonzini
                   ` (14 more replies)
  0 siblings, 15 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

This series expands on the one I sent yesterday, but also fixes some
confusion between target (CPU) and ABI types in linux-user/elfload.c.

target_short/int/llong and the corresponding unsigned types are renamed
to abi_short/int/llong, and TARGET_*_ALIGNMENT is similarly renamed to
ABI_*_ALIGNMENT.  target_long/ulong, which identify the register width
in the CPU, do not have special alignment anymore.  Core dumps are
changed to use the new types, with fixes to include the full 64-bit
contents of mipsn32 registers.


Paolo Bonzini (13):
  configure: QEMU_INCLUDES are the same for all subtargets
  elfload: fix size of ABI-dependent fields in core dumps
  elfload: fix size of registers for N32
  elfload: use tswapreg consistently in elf_core_copy_regs
  elfload: use abi_short/ushort instead of target_short/ushort
  elfload: use abi_int/uint instead of target_int/uint
  elfload: only give abi_long/ulong the alignment specified by the target
  elfload: use abi_llong/ullong instead of target_llong/ullong
  configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak
  configure: move common libraries to config-host.mak
  configure: eliminate target_libs_softmmu
  configure: CONFIG_NO_XEN is duplicated
  configure: remove duplicate test

 Makefile.target                  |  10 +--
 configure                        | 129 ++++++++++++-----------------
 default-configs/lm32-softmmu.mak |   1 +
 hw/display/Makefile.objs         |   5 +-
 include/exec/cpu-defs.h          |  14 +---
 include/exec/user/abitypes.h     |  46 ++++++++--
 include/hw/xen/xen.h             |   2 +-
 linux-user/elfload.c             | 175 ++++++++++++++++++++-------------------
 8 files changed, 196 insertions(+), 186 deletions(-)

-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 01/13] configure: QEMU_INCLUDES are the same for all subtargets
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 02/13] elfload: fix size of ABI-dependent fields in core dumps Paolo Bonzini
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/configure b/configure
index 4c4f6f6..a6e9104 100755
--- a/configure
+++ b/configure
@@ -3986,6 +3986,19 @@ if test "$trace_default" = "yes"; then
   echo "CONFIG_TRACE_DEFAULT=y" >> $config_host_mak
 fi
 
+if test "$tcg_interpreter" = "yes"; then
+  QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/tci $QEMU_INCLUDES"
+elif test "$ARCH" = "sparc64" ; then
+  QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/sparc $QEMU_INCLUDES"
+elif test "$ARCH" = "s390x" ; then
+  QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/s390 $QEMU_INCLUDES"
+elif test "$ARCH" = "x86_64" ; then
+  QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/i386 $QEMU_INCLUDES"
+else
+  QEMU_INCLUDES="-I\$(SRC_PATH)/tcg/\$(ARCH) $QEMU_INCLUDES"
+fi
+QEMU_INCLUDES="-I\$(SRC_PATH)/tcg $QEMU_INCLUDES"
+
 echo "TOOLS=$tools" >> $config_host_mak
 echo "ROMS=$roms" >> $config_host_mak
 echo "MAKE=$make" >> $config_host_mak
@@ -4357,22 +4370,8 @@ fi
 # generate QEMU_CFLAGS/LDFLAGS for targets
 
 cflags=""
-includes=""
 ldflags=""
 
-if test "$tcg_interpreter" = "yes"; then
-  includes="-I\$(SRC_PATH)/tcg/tci $includes"
-elif test "$ARCH" = "sparc64" ; then
-  includes="-I\$(SRC_PATH)/tcg/sparc $includes"
-elif test "$ARCH" = "s390x" ; then
-  includes="-I\$(SRC_PATH)/tcg/s390 $includes"
-elif test "$ARCH" = "x86_64" ; then
-  includes="-I\$(SRC_PATH)/tcg/i386 $includes"
-else
-  includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes"
-fi
-includes="-I\$(SRC_PATH)/tcg $includes"
-
 for i in $ARCH $TARGET_BASE_ARCH ; do
   case "$i" in
   alpha)
@@ -4502,7 +4501,6 @@ fi
 
 echo "LDFLAGS+=$ldflags" >> $config_target_mak
 echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
-echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
 
 done # for target in $targets
 
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 02/13] elfload: fix size of ABI-dependent fields in core dumps
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 01/13] configure: QEMU_INCLUDES are the same for all subtargets Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 03/13] elfload: fix size of registers for N32 Paolo Bonzini
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Some fields in core dumps are 32-bit in 32-or-64 environments (ppc64abi32,
sparc32plus).  Use abi_long/ulong for those.

Also, the fields of target_elf_siginfo are ints.  Use tswap32 to convert them.

Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 linux-user/elfload.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 89db49c..d3589ff 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -2110,8 +2110,8 @@ struct target_elf_siginfo {
 struct target_elf_prstatus {
     struct target_elf_siginfo pr_info;      /* Info associated with signal */
     target_short       pr_cursig;    /* Current signal */
-    target_ulong       pr_sigpend;   /* XXX */
-    target_ulong       pr_sighold;   /* XXX */
+    abi_ulong          pr_sigpend;   /* XXX */
+    abi_ulong          pr_sighold;   /* XXX */
     target_pid_t       pr_pid;
     target_pid_t       pr_ppid;
     target_pid_t       pr_pgrp;
@@ -2131,7 +2131,7 @@ struct target_elf_prpsinfo {
     char         pr_sname;       /* char for pr_state */
     char         pr_zomb;        /* zombie */
     char         pr_nice;        /* nice val */
-    target_ulong pr_flag;        /* flags */
+    abi_ulong    pr_flag;        /* flags */
     target_uid_t pr_uid;
     target_gid_t pr_gid;
     target_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
@@ -2215,12 +2215,12 @@ static int write_note_info(struct elf_note_info *, int);
 #ifdef BSWAP_NEEDED
 static void bswap_prstatus(struct target_elf_prstatus *prstatus)
 {
-    prstatus->pr_info.si_signo = tswapl(prstatus->pr_info.si_signo);
-    prstatus->pr_info.si_code = tswapl(prstatus->pr_info.si_code);
-    prstatus->pr_info.si_errno = tswapl(prstatus->pr_info.si_errno);
+    prstatus->pr_info.si_signo = tswap32(prstatus->pr_info.si_signo);
+    prstatus->pr_info.si_code = tswap32(prstatus->pr_info.si_code);
+    prstatus->pr_info.si_errno = tswap32(prstatus->pr_info.si_errno);
     prstatus->pr_cursig = tswap16(prstatus->pr_cursig);
-    prstatus->pr_sigpend = tswapl(prstatus->pr_sigpend);
-    prstatus->pr_sighold = tswapl(prstatus->pr_sighold);
+    prstatus->pr_sigpend = tswapal(prstatus->pr_sigpend);
+    prstatus->pr_sighold = tswapal(prstatus->pr_sighold);
     prstatus->pr_pid = tswap32(prstatus->pr_pid);
     prstatus->pr_ppid = tswap32(prstatus->pr_ppid);
     prstatus->pr_pgrp = tswap32(prstatus->pr_pgrp);
@@ -2232,7 +2232,7 @@ static void bswap_prstatus(struct target_elf_prstatus *prstatus)
 
 static void bswap_psinfo(struct target_elf_prpsinfo *psinfo)
 {
-    psinfo->pr_flag = tswapl(psinfo->pr_flag);
+    psinfo->pr_flag = tswapal(psinfo->pr_flag);
     psinfo->pr_uid = tswap16(psinfo->pr_uid);
     psinfo->pr_gid = tswap16(psinfo->pr_gid);
     psinfo->pr_pid = tswap32(psinfo->pr_pid);
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 03/13] elfload: fix size of registers for N32
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 01/13] configure: QEMU_INCLUDES are the same for all subtargets Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 02/13] elfload: fix size of ABI-dependent fields in core dumps Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 04/13] elfload: use tswapreg consistently in elf_core_copy_regs Paolo Bonzini
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Registers are 64-bit in size for the MIPS n32 ABI.  Define
target_elf_greg_t accordingly, and use the correct function
to do endian swaps.

Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 linux-user/elfload.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index d3589ff..9d5dbb8 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -101,7 +101,14 @@ enum {
 #define ELF_DATA        ELFDATA2LSB
 #endif
 
+#ifdef TARGET_ABI_MIPSN32
 typedef target_ulong    target_elf_greg_t;
+#define tswapreg(ptr)   tswapl(ptr)
+#else
+typedef abi_ulong       target_elf_greg_t;
+#define tswapreg(ptr)   tswapal(ptr)
+#endif
+
 #ifdef USE_UID16
 typedef target_ushort   target_uid_t;
 typedef target_ushort   target_gid_t;
@@ -747,17 +754,17 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUMIPSState *e
     (*regs)[TARGET_EF_R0] = 0;
 
     for (i = 1; i < ARRAY_SIZE(env->active_tc.gpr); i++) {
-        (*regs)[TARGET_EF_R0 + i] = tswapl(env->active_tc.gpr[i]);
+        (*regs)[TARGET_EF_R0 + i] = tswapreg(env->active_tc.gpr[i]);
     }
 
     (*regs)[TARGET_EF_R26] = 0;
     (*regs)[TARGET_EF_R27] = 0;
-    (*regs)[TARGET_EF_LO] = tswapl(env->active_tc.LO[0]);
-    (*regs)[TARGET_EF_HI] = tswapl(env->active_tc.HI[0]);
-    (*regs)[TARGET_EF_CP0_EPC] = tswapl(env->active_tc.PC);
-    (*regs)[TARGET_EF_CP0_BADVADDR] = tswapl(env->CP0_BadVAddr);
-    (*regs)[TARGET_EF_CP0_STATUS] = tswapl(env->CP0_Status);
-    (*regs)[TARGET_EF_CP0_CAUSE] = tswapl(env->CP0_Cause);
+    (*regs)[TARGET_EF_LO] = tswapreg(env->active_tc.LO[0]);
+    (*regs)[TARGET_EF_HI] = tswapreg(env->active_tc.HI[0]);
+    (*regs)[TARGET_EF_CP0_EPC] = tswapreg(env->active_tc.PC);
+    (*regs)[TARGET_EF_CP0_BADVADDR] = tswapreg(env->CP0_BadVAddr);
+    (*regs)[TARGET_EF_CP0_STATUS] = tswapreg(env->CP0_Status);
+    (*regs)[TARGET_EF_CP0_CAUSE] = tswapreg(env->CP0_Cause);
 }
 
 #define USE_ELF_CORE_DUMP
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 04/13] elfload: use tswapreg consistently in elf_core_copy_regs
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (2 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 03/13] elfload: fix size of registers for N32 Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 05/13] elfload: use abi_short/ushort instead of target_short/ushort Paolo Bonzini
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 linux-user/elfload.c | 114 +++++++++++++++++++++++++--------------------------
 1 file changed, 57 insertions(+), 57 deletions(-)

diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 9d5dbb8..bc2e9f1 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -297,25 +297,25 @@ typedef target_elf_greg_t  target_elf_gregset_t[ELF_NREG];
 
 static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUARMState *env)
 {
-    (*regs)[0] = tswapl(env->regs[0]);
-    (*regs)[1] = tswapl(env->regs[1]);
-    (*regs)[2] = tswapl(env->regs[2]);
-    (*regs)[3] = tswapl(env->regs[3]);
-    (*regs)[4] = tswapl(env->regs[4]);
-    (*regs)[5] = tswapl(env->regs[5]);
-    (*regs)[6] = tswapl(env->regs[6]);
-    (*regs)[7] = tswapl(env->regs[7]);
-    (*regs)[8] = tswapl(env->regs[8]);
-    (*regs)[9] = tswapl(env->regs[9]);
-    (*regs)[10] = tswapl(env->regs[10]);
-    (*regs)[11] = tswapl(env->regs[11]);
-    (*regs)[12] = tswapl(env->regs[12]);
-    (*regs)[13] = tswapl(env->regs[13]);
-    (*regs)[14] = tswapl(env->regs[14]);
-    (*regs)[15] = tswapl(env->regs[15]);
-
-    (*regs)[16] = tswapl(cpsr_read((CPUARMState *)env));
-    (*regs)[17] = tswapl(env->regs[0]); /* XXX */
+    (*regs)[0] = tswapreg(env->regs[0]);
+    (*regs)[1] = tswapreg(env->regs[1]);
+    (*regs)[2] = tswapreg(env->regs[2]);
+    (*regs)[3] = tswapreg(env->regs[3]);
+    (*regs)[4] = tswapreg(env->regs[4]);
+    (*regs)[5] = tswapreg(env->regs[5]);
+    (*regs)[6] = tswapreg(env->regs[6]);
+    (*regs)[7] = tswapreg(env->regs[7]);
+    (*regs)[8] = tswapreg(env->regs[8]);
+    (*regs)[9] = tswapreg(env->regs[9]);
+    (*regs)[10] = tswapreg(env->regs[10]);
+    (*regs)[11] = tswapreg(env->regs[11]);
+    (*regs)[12] = tswapreg(env->regs[12]);
+    (*regs)[13] = tswapreg(env->regs[13]);
+    (*regs)[14] = tswapreg(env->regs[14]);
+    (*regs)[15] = tswapreg(env->regs[15]);
+
+    (*regs)[16] = tswapreg(cpsr_read((CPUARMState *)env));
+    (*regs)[17] = tswapreg(env->regs[0]); /* XXX */
 }
 
 #define USE_ELF_CORE_DUMP
@@ -681,19 +681,19 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUPPCState *en
     target_ulong ccr = 0;
 
     for (i = 0; i < ARRAY_SIZE(env->gpr); i++) {
-        (*regs)[i] = tswapl(env->gpr[i]);
+        (*regs)[i] = tswapreg(env->gpr[i]);
     }
 
-    (*regs)[32] = tswapl(env->nip);
-    (*regs)[33] = tswapl(env->msr);
-    (*regs)[35] = tswapl(env->ctr);
-    (*regs)[36] = tswapl(env->lr);
-    (*regs)[37] = tswapl(env->xer);
+    (*regs)[32] = tswapreg(env->nip);
+    (*regs)[33] = tswapreg(env->msr);
+    (*regs)[35] = tswapreg(env->ctr);
+    (*regs)[36] = tswapreg(env->lr);
+    (*regs)[37] = tswapreg(env->xer);
 
     for (i = 0; i < ARRAY_SIZE(env->crf); i++) {
         ccr |= env->crf[i] << (32 - ((i + 1) * 4));
     }
-    (*regs)[38] = tswapl(ccr);
+    (*regs)[38] = tswapreg(ccr);
 }
 
 #define USE_ELF_CORE_DUMP
@@ -801,11 +801,11 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUMBState *env
     int i, pos = 0;
 
     for (i = 0; i < 32; i++) {
-        (*regs)[pos++] = tswapl(env->regs[i]);
+        (*regs)[pos++] = tswapreg(env->regs[i]);
     }
 
     for (i = 0; i < 6; i++) {
-        (*regs)[pos++] = tswapl(env->sregs[i]);
+        (*regs)[pos++] = tswapreg(env->sregs[i]);
     }
 }
 
@@ -841,11 +841,11 @@ static void elf_core_copy_regs(target_elf_gregset_t *regs,
     int i;
 
     for (i = 0; i < 32; i++) {
-        (*regs)[i] = tswapl(env->gpr[i]);
+        (*regs)[i] = tswapreg(env->gpr[i]);
     }
 
-    (*regs)[32] = tswapl(env->pc);
-    (*regs)[33] = tswapl(env->sr);
+    (*regs)[32] = tswapreg(env->pc);
+    (*regs)[33] = tswapreg(env->sr);
 }
 #define ELF_HWCAP 0
 #define ELF_PLATFORM NULL
@@ -890,15 +890,15 @@ static inline void elf_core_copy_regs(target_elf_gregset_t *regs,
     int i;
 
     for (i = 0; i < 16; i++) {
-        (*regs[i]) = tswapl(env->gregs[i]);
+        (*regs[i]) = tswapreg(env->gregs[i]);
     }
 
-    (*regs)[TARGET_REG_PC] = tswapl(env->pc);
-    (*regs)[TARGET_REG_PR] = tswapl(env->pr);
-    (*regs)[TARGET_REG_SR] = tswapl(env->sr);
-    (*regs)[TARGET_REG_GBR] = tswapl(env->gbr);
-    (*regs)[TARGET_REG_MACH] = tswapl(env->mach);
-    (*regs)[TARGET_REG_MACL] = tswapl(env->macl);
+    (*regs)[TARGET_REG_PC] = tswapreg(env->pc);
+    (*regs)[TARGET_REG_PR] = tswapreg(env->pr);
+    (*regs)[TARGET_REG_SR] = tswapreg(env->sr);
+    (*regs)[TARGET_REG_GBR] = tswapreg(env->gbr);
+    (*regs)[TARGET_REG_MACH] = tswapreg(env->mach);
+    (*regs)[TARGET_REG_MACL] = tswapreg(env->macl);
     (*regs)[TARGET_REG_SYSCALL] = 0; /* FIXME */
 }
 
@@ -952,25 +952,25 @@ typedef target_elf_greg_t target_elf_gregset_t[ELF_NREG];
 
 static void elf_core_copy_regs(target_elf_gregset_t *regs, const CPUM68KState *env)
 {
-    (*regs)[0] = tswapl(env->dregs[1]);
-    (*regs)[1] = tswapl(env->dregs[2]);
-    (*regs)[2] = tswapl(env->dregs[3]);
-    (*regs)[3] = tswapl(env->dregs[4]);
-    (*regs)[4] = tswapl(env->dregs[5]);
-    (*regs)[5] = tswapl(env->dregs[6]);
-    (*regs)[6] = tswapl(env->dregs[7]);
-    (*regs)[7] = tswapl(env->aregs[0]);
-    (*regs)[8] = tswapl(env->aregs[1]);
-    (*regs)[9] = tswapl(env->aregs[2]);
-    (*regs)[10] = tswapl(env->aregs[3]);
-    (*regs)[11] = tswapl(env->aregs[4]);
-    (*regs)[12] = tswapl(env->aregs[5]);
-    (*regs)[13] = tswapl(env->aregs[6]);
-    (*regs)[14] = tswapl(env->dregs[0]);
-    (*regs)[15] = tswapl(env->aregs[7]);
-    (*regs)[16] = tswapl(env->dregs[0]); /* FIXME: orig_d0 */
-    (*regs)[17] = tswapl(env->sr);
-    (*regs)[18] = tswapl(env->pc);
+    (*regs)[0] = tswapreg(env->dregs[1]);
+    (*regs)[1] = tswapreg(env->dregs[2]);
+    (*regs)[2] = tswapreg(env->dregs[3]);
+    (*regs)[3] = tswapreg(env->dregs[4]);
+    (*regs)[4] = tswapreg(env->dregs[5]);
+    (*regs)[5] = tswapreg(env->dregs[6]);
+    (*regs)[6] = tswapreg(env->dregs[7]);
+    (*regs)[7] = tswapreg(env->aregs[0]);
+    (*regs)[8] = tswapreg(env->aregs[1]);
+    (*regs)[9] = tswapreg(env->aregs[2]);
+    (*regs)[10] = tswapreg(env->aregs[3]);
+    (*regs)[11] = tswapreg(env->aregs[4]);
+    (*regs)[12] = tswapreg(env->aregs[5]);
+    (*regs)[13] = tswapreg(env->aregs[6]);
+    (*regs)[14] = tswapreg(env->dregs[0]);
+    (*regs)[15] = tswapreg(env->aregs[7]);
+    (*regs)[16] = tswapreg(env->dregs[0]); /* FIXME: orig_d0 */
+    (*regs)[17] = tswapreg(env->sr);
+    (*regs)[18] = tswapreg(env->pc);
     (*regs)[19] = 0;  /* FIXME: regs->format | regs->vector */
 }
 
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 05/13] elfload: use abi_short/ushort instead of target_short/ushort
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (3 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 04/13] elfload: use tswapreg consistently in elf_core_copy_regs Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 06/13] elfload: use abi_int/uint instead of target_int/uint Paolo Bonzini
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

The alignment is a characteristic of the ABI, not the CPU.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                    | 2 --
 include/exec/cpu-defs.h      | 2 --
 include/exec/user/abitypes.h | 7 +++++++
 linux-user/elfload.c         | 6 +++---
 4 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/configure b/configure
index a6e9104..deaa377 100755
--- a/configure
+++ b/configure
@@ -4131,7 +4131,6 @@ bflt="no"
 target_nptl="no"
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 gdb_xml_files=""
-target_short_alignment=2
 target_int_alignment=4
 target_long_alignment=4
 target_llong_alignment=8
@@ -4273,7 +4272,6 @@ case "$cpu" in
   ;;
 esac
 
-echo "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak
 echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
 echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
 echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index 0ae967a..d376f0f 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -36,8 +36,6 @@
 
 #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)
 
-typedef int16_t target_short __attribute__ ((aligned(TARGET_SHORT_ALIGNMENT)));
-typedef uint16_t target_ushort __attribute__((aligned(TARGET_SHORT_ALIGNMENT)));
 typedef int32_t target_int __attribute__((aligned(TARGET_INT_ALIGNMENT)));
 typedef uint32_t target_uint __attribute__((aligned(TARGET_INT_ALIGNMENT)));
 typedef int64_t target_llong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h
index fe7f662..abaa028 100644
--- a/include/exec/user/abitypes.h
+++ b/include/exec/user/abitypes.h
@@ -2,6 +2,13 @@
 #define QEMU_TYPES_H
 #include "cpu.h"
 
+#ifndef ABI_SHORT_ALIGNMENT
+#define ABI_SHORT_ALIGNMENT 2
+#endif
+
+typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT)));
+typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT)));
+
 #ifdef TARGET_ABI32
 typedef uint32_t abi_ulong;
 typedef int32_t abi_long;
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index bc2e9f1..5eca934 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -110,8 +110,8 @@ typedef abi_ulong       target_elf_greg_t;
 #endif
 
 #ifdef USE_UID16
-typedef target_ushort   target_uid_t;
-typedef target_ushort   target_gid_t;
+typedef abi_ushort      target_uid_t;
+typedef abi_ushort      target_gid_t;
 #else
 typedef target_uint     target_uid_t;
 typedef target_uint     target_gid_t;
@@ -2116,7 +2116,7 @@ struct target_elf_siginfo {
 
 struct target_elf_prstatus {
     struct target_elf_siginfo pr_info;      /* Info associated with signal */
-    target_short       pr_cursig;    /* Current signal */
+    abi_short          pr_cursig;    /* Current signal */
     abi_ulong          pr_sigpend;   /* XXX */
     abi_ulong          pr_sighold;   /* XXX */
     target_pid_t       pr_pid;
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 06/13] elfload: use abi_int/uint instead of target_int/uint
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (4 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 05/13] elfload: use abi_short/ushort instead of target_short/ushort Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 07/13] elfload: only give abi_long/ulong the alignment specified by the target Paolo Bonzini
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

The alignment is a characteristic of the ABI, not the CPU.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                    |  3 ---
 include/exec/cpu-defs.h      |  2 --
 include/exec/user/abitypes.h |  9 +++++++++
 linux-user/elfload.c         | 14 +++++++-------
 4 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/configure b/configure
index deaa377..9d29f57 100755
--- a/configure
+++ b/configure
@@ -4131,7 +4131,6 @@ bflt="no"
 target_nptl="no"
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 gdb_xml_files=""
-target_int_alignment=4
 target_long_alignment=4
 target_llong_alignment=8
 target_libs_softmmu=
@@ -4167,7 +4166,6 @@ case "$target_arch2" in
   m68k)
     bflt="yes"
     gdb_xml_files="cf-core.xml cf-fp.xml"
-    target_int_alignment=2
     target_long_alignment=2
     target_llong_alignment=2
   ;;
@@ -4272,7 +4270,6 @@ case "$cpu" in
   ;;
 esac
 
-echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
 echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
 echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
 echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index d376f0f..2aa9331 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -36,8 +36,6 @@
 
 #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)
 
-typedef int32_t target_int __attribute__((aligned(TARGET_INT_ALIGNMENT)));
-typedef uint32_t target_uint __attribute__((aligned(TARGET_INT_ALIGNMENT)));
 typedef int64_t target_llong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
 typedef uint64_t target_ullong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
 /* target_ulong is the type of a virtual address */
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h
index abaa028..4f3e804 100644
--- a/include/exec/user/abitypes.h
+++ b/include/exec/user/abitypes.h
@@ -2,12 +2,21 @@
 #define QEMU_TYPES_H
 #include "cpu.h"
 
+#ifdef TARGET_M68K
+#define ABI_INT_ALIGNMENT 2
+#endif
+
 #ifndef ABI_SHORT_ALIGNMENT
 #define ABI_SHORT_ALIGNMENT 2
 #endif
+#ifndef ABI_INT_ALIGNMENT
+#define ABI_INT_ALIGNMENT 4
+#endif
 
 typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT)));
 typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT)));
+typedef int32_t abi_int __attribute__((aligned(ABI_INT_ALIGNMENT)));
+typedef uint32_t abi_uint __attribute__((aligned(ABI_INT_ALIGNMENT)));
 
 #ifdef TARGET_ABI32
 typedef uint32_t abi_ulong;
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 5eca934..14a8ecf 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -113,10 +113,10 @@ typedef abi_ulong       target_elf_greg_t;
 typedef abi_ushort      target_uid_t;
 typedef abi_ushort      target_gid_t;
 #else
-typedef target_uint     target_uid_t;
-typedef target_uint     target_gid_t;
+typedef abi_uint        target_uid_t;
+typedef abi_uint        target_gid_t;
 #endif
-typedef target_int      target_pid_t;
+typedef abi_int         target_pid_t;
 
 #ifdef TARGET_I386
 
@@ -2109,9 +2109,9 @@ struct memelfnote {
 };
 
 struct target_elf_siginfo {
-    target_int  si_signo; /* signal number */
-    target_int  si_code;  /* extra code */
-    target_int  si_errno; /* errno */
+    abi_int    si_signo; /* signal number */
+    abi_int    si_code;  /* extra code */
+    abi_int    si_errno; /* errno */
 };
 
 struct target_elf_prstatus {
@@ -2128,7 +2128,7 @@ struct target_elf_prstatus {
     struct target_timeval pr_cutime; /* XXX Cumulative user time */
     struct target_timeval pr_cstime; /* XXX Cumulative system time */
     target_elf_gregset_t      pr_reg;       /* GP registers */
-    target_int         pr_fpvalid;   /* XXX */
+    abi_int            pr_fpvalid;   /* XXX */
 };
 
 #define ELF_PRARGSZ     (80) /* Number of chars for args */
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 07/13] elfload: only give abi_long/ulong the alignment specified by the target
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (5 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 06/13] elfload: use abi_int/uint instead of target_int/uint Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 08/13] elfload: use abi_llong/ullong instead of target_llong/ullong Paolo Bonzini
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Previously, this was done for target_long/ulong, and propagated to
abi_long/ulong via a typedef.  But target_long/ulong should not
have any specific alignment, it is never used to access guest
memory.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                    |  9 ---------
 include/exec/cpu-defs.h      |  8 ++++----
 include/exec/user/abitypes.h | 20 ++++++++++++++------
 3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/configure b/configure
index 9d29f57..1554e5b 100755
--- a/configure
+++ b/configure
@@ -4131,7 +4131,6 @@ bflt="no"
 target_nptl="no"
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 gdb_xml_files=""
-target_long_alignment=4
 target_llong_alignment=8
 target_libs_softmmu=
 
@@ -4144,10 +4143,8 @@ case "$target_arch2" in
   ;;
   x86_64)
     TARGET_BASE_ARCH=i386
-    target_long_alignment=8
   ;;
   alpha)
-    target_long_alignment=8
     target_nptl="yes"
   ;;
   arm|armeb)
@@ -4166,7 +4163,6 @@ case "$target_arch2" in
   m68k)
     bflt="yes"
     gdb_xml_files="cf-core.xml cf-fp.xml"
-    target_long_alignment=2
     target_llong_alignment=2
   ;;
   microblaze|microblazeel)
@@ -4189,7 +4185,6 @@ case "$target_arch2" in
     TARGET_ARCH=mips64
     TARGET_BASE_ARCH=mips
     echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
-    target_long_alignment=8
   ;;
   moxie)
   ;;
@@ -4211,7 +4206,6 @@ case "$target_arch2" in
     TARGET_BASE_ARCH=ppc
     TARGET_ABI_DIR=ppc
     gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
-    target_long_alignment=8
   ;;
   ppc64abi32)
     TARGET_ARCH=ppc64
@@ -4229,7 +4223,6 @@ case "$target_arch2" in
   ;;
   sparc64)
     TARGET_BASE_ARCH=sparc
-    target_long_alignment=8
   ;;
   sparc32plus)
     TARGET_ARCH=sparc64
@@ -4239,7 +4232,6 @@ case "$target_arch2" in
   ;;
   s390x)
     target_nptl="yes"
-    target_long_alignment=8
   ;;
   unicore32)
   ;;
@@ -4270,7 +4262,6 @@ case "$cpu" in
   ;;
 esac
 
-echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
 echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
 echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
 target_arch_name="`upper $TARGET_ARCH`"
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index 2aa9331..3cf1272 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -40,14 +40,14 @@ typedef int64_t target_llong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
 typedef uint64_t target_ullong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
 /* target_ulong is the type of a virtual address */
 #if TARGET_LONG_SIZE == 4
-typedef int32_t target_long __attribute__((aligned(TARGET_LONG_ALIGNMENT)));
-typedef uint32_t target_ulong __attribute__((aligned(TARGET_LONG_ALIGNMENT)));
+typedef int32_t target_long;
+typedef uint32_t target_ulong;
 #define TARGET_FMT_lx "%08x"
 #define TARGET_FMT_ld "%d"
 #define TARGET_FMT_lu "%u"
 #elif TARGET_LONG_SIZE == 8
-typedef int64_t target_long __attribute__((aligned(TARGET_LONG_ALIGNMENT)));
-typedef uint64_t target_ulong __attribute__((aligned(TARGET_LONG_ALIGNMENT)));
+typedef int64_t target_long;
+typedef uint64_t target_ulong;
 #define TARGET_FMT_lx "%016" PRIx64
 #define TARGET_FMT_ld "%" PRId64
 #define TARGET_FMT_lu "%" PRIu64
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h
index 4f3e804..4b04f6d 100644
--- a/include/exec/user/abitypes.h
+++ b/include/exec/user/abitypes.h
@@ -2,8 +2,15 @@
 #define QEMU_TYPES_H
 #include "cpu.h"
 
+#ifdef TARGET_ABI32
+#define TARGET_ABI_BITS 32
+#else
+#define TARGET_ABI_BITS TARGET_LONG_BITS
+#endif
+
 #ifdef TARGET_M68K
 #define ABI_INT_ALIGNMENT 2
+#define ABI_LONG_ALIGNMENT 2
 #endif
 
 #ifndef ABI_SHORT_ALIGNMENT
@@ -12,6 +19,9 @@
 #ifndef ABI_INT_ALIGNMENT
 #define ABI_INT_ALIGNMENT 4
 #endif
+#ifndef ABI_LONG_ALIGNMENT
+#define ABI_LONG_ALIGNMENT (TARGET_ABI_BITS / 8)
+#endif
 
 typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT)));
 typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT)));
@@ -19,12 +29,11 @@ typedef int32_t abi_int __attribute__((aligned(ABI_INT_ALIGNMENT)));
 typedef uint32_t abi_uint __attribute__((aligned(ABI_INT_ALIGNMENT)));
 
 #ifdef TARGET_ABI32
-typedef uint32_t abi_ulong;
-typedef int32_t abi_long;
+typedef uint32_t abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT)));
+typedef int32_t abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT)));
 #define TARGET_ABI_FMT_lx "%08x"
 #define TARGET_ABI_FMT_ld "%d"
 #define TARGET_ABI_FMT_lu "%u"
-#define TARGET_ABI_BITS 32
 
 static inline abi_ulong tswapal(abi_ulong v)
 {
@@ -32,12 +41,11 @@ static inline abi_ulong tswapal(abi_ulong v)
 }
 
 #else
-typedef target_ulong abi_ulong;
-typedef target_long abi_long;
+typedef target_ulong abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT)));
+typedef target_long abi_long __attribute__((aligned(ABI_LONG_ALIGNMENT)));
 #define TARGET_ABI_FMT_lx TARGET_FMT_lx
 #define TARGET_ABI_FMT_ld TARGET_FMT_ld
 #define TARGET_ABI_FMT_lu TARGET_FMT_lu
-#define TARGET_ABI_BITS TARGET_LONG_BITS
 /* for consistency, define ABI32 too */
 #if TARGET_ABI_BITS == 32
 #define TARGET_ABI32 1
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 08/13] elfload: use abi_llong/ullong instead of target_llong/ullong
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (6 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 07/13] elfload: only give abi_long/ulong the alignment specified by the target Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 09/13] configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak Paolo Bonzini
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

The alignment is a characteristic of the ABI, not the CPU.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                    |  4 ----
 include/exec/cpu-defs.h      |  2 --
 include/exec/user/abitypes.h | 10 ++++++++++
 linux-user/elfload.c         |  4 ++--
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index 1554e5b..f4bfa14 100755
--- a/configure
+++ b/configure
@@ -4131,7 +4131,6 @@ bflt="no"
 target_nptl="no"
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 gdb_xml_files=""
-target_llong_alignment=8
 target_libs_softmmu=
 
 TARGET_ARCH="$target_arch2"
@@ -4152,7 +4151,6 @@ case "$target_arch2" in
     bflt="yes"
     target_nptl="yes"
     gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
-    target_llong_alignment=4
   ;;
   cris)
     target_nptl="yes"
@@ -4163,7 +4161,6 @@ case "$target_arch2" in
   m68k)
     bflt="yes"
     gdb_xml_files="cf-core.xml cf-fp.xml"
-    target_llong_alignment=2
   ;;
   microblaze|microblazeel)
     TARGET_ARCH=microblaze
@@ -4262,7 +4259,6 @@ case "$cpu" in
   ;;
 esac
 
-echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
 echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
 target_arch_name="`upper $TARGET_ARCH`"
 echo "TARGET_$target_arch_name=y" >> $config_target_mak
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index 3cf1272..d8c64e9 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -36,8 +36,6 @@
 
 #define TARGET_LONG_SIZE (TARGET_LONG_BITS / 8)
 
-typedef int64_t target_llong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
-typedef uint64_t target_ullong __attribute__((aligned(TARGET_LLONG_ALIGNMENT)));
 /* target_ulong is the type of a virtual address */
 #if TARGET_LONG_SIZE == 4
 typedef int32_t target_long;
diff --git a/include/exec/user/abitypes.h b/include/exec/user/abitypes.h
index 4b04f6d..008501b 100644
--- a/include/exec/user/abitypes.h
+++ b/include/exec/user/abitypes.h
@@ -11,6 +11,11 @@
 #ifdef TARGET_M68K
 #define ABI_INT_ALIGNMENT 2
 #define ABI_LONG_ALIGNMENT 2
+#define ABI_LLONG_ALIGNMENT 2
+#endif
+
+#ifdef TARGET_ARM
+#define ABI_LLONG_ALIGNMENT 4
 #endif
 
 #ifndef ABI_SHORT_ALIGNMENT
@@ -22,11 +27,16 @@
 #ifndef ABI_LONG_ALIGNMENT
 #define ABI_LONG_ALIGNMENT (TARGET_ABI_BITS / 8)
 #endif
+#ifndef ABI_LLONG_ALIGNMENT
+#define ABI_LLONG_ALIGNMENT 8
+#endif
 
 typedef int16_t abi_short __attribute__ ((aligned(ABI_SHORT_ALIGNMENT)));
 typedef uint16_t abi_ushort __attribute__((aligned(ABI_SHORT_ALIGNMENT)));
 typedef int32_t abi_int __attribute__((aligned(ABI_INT_ALIGNMENT)));
 typedef uint32_t abi_uint __attribute__((aligned(ABI_INT_ALIGNMENT)));
+typedef int64_t abi_llong __attribute__((aligned(ABI_LLONG_ALIGNMENT)));
+typedef uint64_t abi_ullong __attribute__((aligned(ABI_LLONG_ALIGNMENT)));
 
 #ifdef TARGET_ABI32
 typedef uint32_t abi_ulong __attribute__((aligned(ABI_LONG_ALIGNMENT)));
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 14a8ecf..979b57c 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -102,8 +102,8 @@ enum {
 #endif
 
 #ifdef TARGET_ABI_MIPSN32
-typedef target_ulong    target_elf_greg_t;
-#define tswapreg(ptr)   tswapl(ptr)
+typedef abi_ullong      target_elf_greg_t;
+#define tswapreg(ptr)   tswap64(ptr)
 #else
 typedef abi_ulong       target_elf_greg_t;
 #define tswapreg(ptr)   tswapal(ptr)
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 09/13] configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (7 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 08/13] elfload: use abi_llong/ullong instead of target_llong/ullong Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 10/13] configure: move common libraries " Paolo Bonzini
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/configure b/configure
index f4bfa14..1495214 100755
--- a/configure
+++ b/configure
@@ -3587,6 +3587,15 @@ echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
 echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
 
 echo "ARCH=$ARCH" >> $config_host_mak
+
+case "$cpu" in
+  i386|x86_64|ppc)
+    # The TCG interpreter currently does not support ld/st optimization.
+    if test "$tcg_interpreter" = "no" ; then
+        echo "CONFIG_QEMU_LDST_OPTIMIZATION=y" >> $config_host_mak
+    fi
+  ;;
+esac
 if test "$debug_tcg" = "yes" ; then
   echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
 fi
@@ -4250,15 +4259,6 @@ upper() {
     echo "$@"| LC_ALL=C tr '[a-z]' '[A-Z]'
 }
 
-case "$cpu" in
-  i386|x86_64|ppc)
-    # The TCG interpreter currently does not support ld/st optimization.
-    if test "$tcg_interpreter" = "no" ; then
-        echo "CONFIG_QEMU_LDST_OPTIMIZATION=y" >> $config_target_mak
-    fi
-  ;;
-esac
-
 echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
 target_arch_name="`upper $TARGET_ARCH`"
 echo "TARGET_$target_arch_name=y" >> $config_target_mak
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 10/13] configure: move common libraries to config-host.mak
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (8 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 09/13] configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 11/13] configure: eliminate target_libs_softmmu Paolo Bonzini
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Move -lm to the end of the line, so that it can be picked up as a
dependency by pixman in the static build case.

Reviewed-by: Peter Maydell <peter.maydell@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile.target | 10 +++++-----
 configure       |  4 +++-
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/Makefile.target b/Makefile.target
index 2bd6d14..2636103 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -31,10 +31,6 @@ PROGS+=$(QEMU_PROGW)
 endif
 STPFILES=
 
-ifndef CONFIG_HAIKU
-LIBS+=-lm
-endif
-
 config-target.h: config-target.h-timestamp
 config-target.h-timestamp: config-target.mak
 
@@ -119,7 +115,7 @@ obj-$(CONFIG_HAVE_GET_MEMORY_MAPPING) += memory_mapping.o
 obj-$(CONFIG_HAVE_CORE_DUMP) += dump.o
 obj-$(CONFIG_NO_GET_MEMORY_MAPPING) += memory_mapping-stub.o
 obj-$(CONFIG_NO_CORE_DUMP) += dump-stub.o
-LIBS+=-lz
+LIBS+=$(libs_softmmu)
 
 # xen support
 obj-$(CONFIG_XEN) += xen-all.o xen-mapcache.o
@@ -149,6 +145,10 @@ include $(SRC_PATH)/Makefile.objs
 all-obj-y = $(obj-y)
 all-obj-y += $(addprefix ../, $(common-obj-y))
 
+ifndef CONFIG_HAIKU
+LIBS+=-lm
+endif
+
 ifdef QEMU_PROGW
 # The linker builds a windows executable. Make also a console executable.
 $(QEMU_PROGW): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
diff --git a/configure b/configure
index 1495214..35f90e3 100755
--- a/configure
+++ b/configure
@@ -1464,6 +1464,7 @@ EOF
             "Make sure to have the zlib libs and headers installed."
     fi
 fi
+libs_softmmu="$libs_softmmu -lz"
 
 ##########################################
 # libseccomp check
@@ -3585,6 +3586,7 @@ echo "qemu_helperdir=$libexecdir" >> $config_host_mak
 echo "extra_cflags=$EXTRA_CFLAGS" >> $config_host_mak
 echo "extra_ldflags=$EXTRA_LDFLAGS" >> $config_host_mak
 echo "qemu_localedir=$qemu_localedir" >> $config_host_mak
+echo "libs_softmmu=$libs_softmmu" >> $config_host_mak
 
 echo "ARCH=$ARCH" >> $config_host_mak
 
@@ -4309,7 +4311,7 @@ if test "$target_bigendian" = "yes" ; then
 fi
 if test "$target_softmmu" = "yes" ; then
   echo "CONFIG_SOFTMMU=y" >> $config_target_mak
-  echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak
+  echo "LIBS+=$target_libs_softmmu" >> $config_target_mak
   case "$target_arch2" in
     i386|x86_64)
       echo "CONFIG_HAVE_CORE_DUMP=y" >> $config_target_mak
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 11/13] configure: eliminate target_libs_softmmu
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (9 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 10/13] configure: move common libraries " Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 12/13] configure: CONFIG_NO_XEN is duplicated Paolo Bonzini
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure                        | 4 +---
 default-configs/lm32-softmmu.mak | 1 +
 hw/display/Makefile.objs         | 5 +++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/configure b/configure
index 35f90e3..6e775aa 100755
--- a/configure
+++ b/configure
@@ -3869,6 +3869,7 @@ fi
 
 if test "$glx" = "yes" ; then
   echo "CONFIG_GLX=y" >> $config_host_mak
+  echo "GLX_LIBS=$glx_libs" >> $config_host_mak
 fi
 
 if test "$libiscsi" = "yes" ; then
@@ -4142,7 +4143,6 @@ bflt="no"
 target_nptl="no"
 interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
 gdb_xml_files=""
-target_libs_softmmu=
 
 TARGET_ARCH="$target_arch2"
 TARGET_BASE_ARCH=""
@@ -4167,7 +4167,6 @@ case "$target_arch2" in
     target_nptl="yes"
   ;;
   lm32)
-    target_libs_softmmu="$glx_libs"
   ;;
   m68k)
     bflt="yes"
@@ -4311,7 +4310,6 @@ if test "$target_bigendian" = "yes" ; then
 fi
 if test "$target_softmmu" = "yes" ; then
   echo "CONFIG_SOFTMMU=y" >> $config_target_mak
-  echo "LIBS+=$target_libs_softmmu" >> $config_target_mak
   case "$target_arch2" in
     i386|x86_64)
       echo "CONFIG_HAVE_CORE_DUMP=y" >> $config_target_mak
diff --git a/default-configs/lm32-softmmu.mak b/default-configs/lm32-softmmu.mak
index ef0f4ba..7df58c8 100644
--- a/default-configs/lm32-softmmu.mak
+++ b/default-configs/lm32-softmmu.mak
@@ -2,6 +2,7 @@
 
 CONFIG_LM32=y
 CONFIG_MILKYMIST=y
+CONFIG_MILKYMIST_TMU2=$(CONFIG_GLX)
 CONFIG_FRAMEBUFFER=y
 CONFIG_PTIMER=y
 CONFIG_PFLASH_CFI01=y
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 3f7027d..6e9fb3b 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -18,8 +18,9 @@ common-obj-$(CONFIG_FRAMEBUFFER) += framebuffer.o
 common-obj-$(CONFIG_MILKYMIST) += milkymist-vgafb.o
 common-obj-$(CONFIG_ZAURUS) += tc6393xb.o
 
-ifeq ($(CONFIG_GLX),y)
-common-obj-$(CONFIG_MILKYMIST) += milkymist-tmu2.o
+ifeq ($(CONFIG_MILKYMIST_TMU2),y)
+common-obj-y += milkymist-tmu2.o
+libs_softmmu += $(GLX_LIBS)
 endif
 
 obj-$(CONFIG_OMAP) += omap_dss.o
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 12/13] configure: CONFIG_NO_XEN is duplicated
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (10 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 11/13] configure: eliminate target_libs_softmmu Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 13/13] configure: remove duplicate test Paolo Bonzini
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

We already define it in Makefile.target.  But we need to avoid a
curious double negation in order to eliminate it.

Tested-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure            | 3 ---
 include/hw/xen/xen.h | 2 +-
 2 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/configure b/configure
index 6e775aa..78afded 100755
--- a/configure
+++ b/configure
@@ -4277,12 +4277,9 @@ case "$target_arch2" in
       if test "$xen_pci_passthrough" = yes; then
         echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak"
       fi
-    else
-      echo "CONFIG_NO_XEN=y" >> $config_target_mak
     fi
     ;;
   *)
-    echo "CONFIG_NO_XEN=y" >> $config_target_mak
 esac
 case "$target_arch2" in
   arm|i386|x86_64|ppcemb|ppc|ppc64|s390x)
diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
index 6235f91..7451c5a 100644
--- a/include/hw/xen/xen.h
+++ b/include/hw/xen/xen.h
@@ -25,7 +25,7 @@ extern bool xen_allowed;
 
 static inline bool xen_enabled(void)
 {
-#if defined(CONFIG_XEN_BACKEND) && !defined(CONFIG_NO_XEN)
+#if defined(CONFIG_XEN_BACKEND) && defined(CONFIG_XEN)
     return xen_allowed;
 #else
     return 0;
-- 
1.8.1.4

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

* [Qemu-devel] [PATCH 13/13] configure: remove duplicate test
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (11 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 12/13] configure: CONFIG_NO_XEN is duplicated Paolo Bonzini
@ 2013-04-17 14:26 ` Paolo Bonzini
  2013-04-18 14:49 ` [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Edgar E. Iglesias
  2013-04-18 14:58 ` Riku Voipio
  14 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-17 14:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, edgar.iglesias

We already had a test to add -march=i486 when needed.  Make the
existing test independent of vhost-net, so that it is also used
under Win32.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 56 ++++++++++++++++++++++++++------------------------------
 1 file changed, 26 insertions(+), 30 deletions(-)

diff --git a/configure b/configure
index 78afded..9525bd7 100755
--- a/configure
+++ b/configure
@@ -574,11 +574,6 @@ if test "$mingw32" = "yes" ; then
   QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
   # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
   QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
-  if test "$cpu" = "i386"; then
-    # We need something better than i386 for __sync_val_compare_and_swap
-    # and can expect that QEMU will only run on i686 or later.
-    QEMU_CFLAGS="-march=i686 $QEMU_CFLAGS"
-  fi
   LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
 cat > $TMPC << EOF
 int main(void) { return 0; }
@@ -1323,9 +1318,33 @@ EOF
   fi
 fi
 
-#
+##########################################
+# __sync_fetch_and_and requires at least -march=i486. Many toolchains
+# use i686 as default anyway, but for those that don't, an explicit
+# specification is necessary
+
+if test "$cpu" = "i386"; then
+  cat > $TMPC << EOF
+static int sfaa(int *ptr)
+{
+  return __sync_fetch_and_and(ptr, 0);
+}
+
+int main(void)
+{
+  int val = 42;
+  sfaa(&val);
+  return val;
+}
+EOF
+  if ! compile_prog "" "" ; then
+    QEMU_CFLAGS="-march=i486 $QEMU_CFLAGS"
+  fi
+fi
+
+#########################################
 # Solaris specific configure tool chain decisions
-#
+
 if test "$solaris" = "yes" ; then
   if has $install; then
     :
@@ -3149,29 +3168,6 @@ if test "$trace_backend" = "dtrace"; then
 fi
 
 ##########################################
-# __sync_fetch_and_and requires at least -march=i486. Many toolchains
-# use i686 as default anyway, but for those that don't, an explicit
-# specification is necessary
-if test "$vhost_net" = "yes" && test "$cpu" = "i386"; then
-  cat > $TMPC << EOF
-static int sfaa(int *ptr)
-{
-  return __sync_fetch_and_and(ptr, 0);
-}
-
-int main(void)
-{
-  int val = 42;
-  sfaa(&val);
-  return val;
-}
-EOF
-  if ! compile_prog "" "" ; then
-    QEMU_CFLAGS="-march=i486 $QEMU_CFLAGS"
-  fi
-fi
-
-##########################################
 # check and set a backend for coroutine
 
 # We prefer ucontext, but it's not always possible. The fallback
-- 
1.8.1.4

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

* Re: [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (12 preceding siblings ...)
  2013-04-17 14:26 ` [Qemu-devel] [PATCH 13/13] configure: remove duplicate test Paolo Bonzini
@ 2013-04-18 14:49 ` Edgar E. Iglesias
  2013-04-18 14:58 ` Riku Voipio
  14 siblings, 0 replies; 17+ messages in thread
From: Edgar E. Iglesias @ 2013-04-18 14:49 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: peter.maydell, qemu-devel

On Wed, Apr 17, 2013 at 04:26:34PM +0200, Paolo Bonzini wrote:
> This series expands on the one I sent yesterday, but also fixes some
> confusion between target (CPU) and ABI types in linux-user/elfload.c.
> 
> target_short/int/llong and the corresponding unsigned types are renamed
> to abi_short/int/llong, and TARGET_*_ALIGNMENT is similarly renamed to
> ABI_*_ALIGNMENT.  target_long/ulong, which identify the register width
> in the CPU, do not have special alignment anymore.  Core dumps are
> changed to use the new types, with fixes to include the full 64-bit
> contents of mipsn32 registers.


Applied all, thanks Paolo.


> Paolo Bonzini (13):
>   configure: QEMU_INCLUDES are the same for all subtargets
>   elfload: fix size of ABI-dependent fields in core dumps
>   elfload: fix size of registers for N32
>   elfload: use tswapreg consistently in elf_core_copy_regs
>   elfload: use abi_short/ushort instead of target_short/ushort
>   elfload: use abi_int/uint instead of target_int/uint
>   elfload: only give abi_long/ulong the alignment specified by the target
>   elfload: use abi_llong/ullong instead of target_llong/ullong
>   configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak
>   configure: move common libraries to config-host.mak
>   configure: eliminate target_libs_softmmu
>   configure: CONFIG_NO_XEN is duplicated
>   configure: remove duplicate test
> 
>  Makefile.target                  |  10 +--
>  configure                        | 129 ++++++++++++-----------------
>  default-configs/lm32-softmmu.mak |   1 +
>  hw/display/Makefile.objs         |   5 +-
>  include/exec/cpu-defs.h          |  14 +---
>  include/exec/user/abitypes.h     |  46 ++++++++--
>  include/hw/xen/xen.h             |   2 +-
>  linux-user/elfload.c             | 175 ++++++++++++++++++++-------------------
>  8 files changed, 196 insertions(+), 186 deletions(-)
> 
> -- 
> 1.8.1.4
> 

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

* Re: [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming
  2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
                   ` (13 preceding siblings ...)
  2013-04-18 14:49 ` [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Edgar E. Iglesias
@ 2013-04-18 14:58 ` Riku Voipio
  2013-04-18 19:39   ` Paolo Bonzini
  14 siblings, 1 reply; 17+ messages in thread
From: Riku Voipio @ 2013-04-18 14:58 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: peter.maydell, qemu-devel, edgar.iglesias

On Wed, Apr 17, 2013 at 04:26:34PM +0200, Paolo Bonzini wrote:
> This series expands on the one I sent yesterday, but also fixes some
> confusion between target (CPU) and ABI types in linux-user/elfload.c.

I'm ok with the linux-user/ parts, you can send this set directly.

> target_short/int/llong and the corresponding unsigned types are renamed
> to abi_short/int/llong, and TARGET_*_ALIGNMENT is similarly renamed to
> ABI_*_ALIGNMENT.  target_long/ulong, which identify the register width
> in the CPU, do not have special alignment anymore.  Core dumps are
> changed to use the new types, with fixes to include the full 64-bit
> contents of mipsn32 registers.

What you using as the mipsn32 target distribution to test on?

> Paolo Bonzini (13):
>   configure: QEMU_INCLUDES are the same for all subtargets
>   elfload: fix size of ABI-dependent fields in core dumps
>   elfload: fix size of registers for N32
>   elfload: use tswapreg consistently in elf_core_copy_regs
>   elfload: use abi_short/ushort instead of target_short/ushort
>   elfload: use abi_int/uint instead of target_int/uint
>   elfload: only give abi_long/ulong the alignment specified by the target
>   elfload: use abi_llong/ullong instead of target_llong/ullong
>   configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak
>   configure: move common libraries to config-host.mak
>   configure: eliminate target_libs_softmmu
>   configure: CONFIG_NO_XEN is duplicated
>   configure: remove duplicate test
> 
>  Makefile.target                  |  10 +--
>  configure                        | 129 ++++++++++++-----------------
>  default-configs/lm32-softmmu.mak |   1 +
>  hw/display/Makefile.objs         |   5 +-
>  include/exec/cpu-defs.h          |  14 +---
>  include/exec/user/abitypes.h     |  46 ++++++++--
>  include/hw/xen/xen.h             |   2 +-
>  linux-user/elfload.c             | 175 ++++++++++++++++++++-------------------
>  8 files changed, 196 insertions(+), 186 deletions(-)
> 
> -- 
> 1.8.1.4
> 

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

* Re: [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming
  2013-04-18 14:58 ` Riku Voipio
@ 2013-04-18 19:39   ` Paolo Bonzini
  0 siblings, 0 replies; 17+ messages in thread
From: Paolo Bonzini @ 2013-04-18 19:39 UTC (permalink / raw)
  To: Riku Voipio; +Cc: peter.maydell, qemu-devel, edgar.iglesias

Il 18/04/2013 16:58, Riku Voipio ha scritto:
>> > target_short/int/llong and the corresponding unsigned types are renamed
>> > to abi_short/int/llong, and TARGET_*_ALIGNMENT is similarly renamed to
>> > ABI_*_ALIGNMENT.  target_long/ulong, which identify the register width
>> > in the CPU, do not have special alignment anymore.  Core dumps are
>> > changed to use the new types, with fixes to include the full 64-bit
>> > contents of mipsn32 registers.
> What you using as the mipsn32 target distribution to test on?

I was just checking against the Linux kernel source code.

Paolo

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

end of thread, other threads:[~2013-04-18 19:43 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-17 14:26 [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 01/13] configure: QEMU_INCLUDES are the same for all subtargets Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 02/13] elfload: fix size of ABI-dependent fields in core dumps Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 03/13] elfload: fix size of registers for N32 Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 04/13] elfload: use tswapreg consistently in elf_core_copy_regs Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 05/13] elfload: use abi_short/ushort instead of target_short/ushort Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 06/13] elfload: use abi_int/uint instead of target_int/uint Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 07/13] elfload: only give abi_long/ulong the alignment specified by the target Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 08/13] elfload: use abi_llong/ullong instead of target_llong/ullong Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 09/13] configure: move CONFIG_QEMU_LDST_OPTIMIZATION to config-host.mak Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 10/13] configure: move common libraries " Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 11/13] configure: eliminate target_libs_softmmu Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 12/13] configure: CONFIG_NO_XEN is duplicated Paolo Bonzini
2013-04-17 14:26 ` [Qemu-devel] [PATCH 13/13] configure: remove duplicate test Paolo Bonzini
2013-04-18 14:49 ` [Qemu-devel] [PATCH v3 00/13] TARGET_*_ALIGNMENT cleanup, and config-target.mak trimming Edgar E. Iglesias
2013-04-18 14:58 ` Riku Voipio
2013-04-18 19:39   ` Paolo Bonzini

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).