Commit 918fc54c authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Edgar E. Iglesias
Browse files

elfload: use abi_llong/ullong instead of target_llong/ullong



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

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarEdgar E. Iglesias <edgar.iglesias@gmail.com>
parent 6cfd9b52
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -4153,7 +4153,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"
@@ -4174,7 +4173,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"
@@ -4185,7 +4183,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
@@ -4284,7 +4281,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
+0 −2
Original line number Diff line number Diff line
@@ -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;
+10 −0
Original line number Diff line number Diff line
@@ -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)));
+2 −2
Original line number Diff line number Diff line
@@ -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)