+2013-06-26  Yufeng Zhang  <yufeng.zhang@arm.com>
+
+       * Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64elf32b.c.
+       (eaarch64elf32b.c): New dependency and rule.
+       * Makefile.in: Re-generated.
+       * configure.tgt (aarch64-*-elf): Add aarch64elf32b.
+       (aarch64_be-*-elf, aarch64_be-*-linux*, aarch64-*-linux*): Likewise.
+       * emulparams/aarch64elf32b.sh: New file.
+
 2013-06-26  Yufeng Zhang  <yufeng.zhang@arm.com>
 
        * Makefile.am (ALL_64_EMULATION_SOURCES): Add eaarch64elf32.c.
 
        eaarch64elf.c \
        eaarch64elf32.c \
        eaarch64elfb.c \
+       eaarch64elf32b.c \
        eaarch64linux.c \
        eaarch64linuxb.c \
        eelf32_x86_64.c \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} aarch64elfb "$(tdir_aarch64elfb)"
+eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aarch64elf32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} aarch64elf32b "$(tdir_aarch64elf32b)"
 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
        eaarch64elf.c \
        eaarch64elf32.c \
        eaarch64elfb.c \
+       eaarch64elf32b.c \
        eaarch64linux.c \
        eaarch64linuxb.c \
        eelf32_x86_64.c \
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deffilep.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Po@am__quote@
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} aarch64elfb "$(tdir_aarch64elfb)"
+eaarch64elf32b.c: $(srcdir)/emulparams/aarch64elf32b.sh $(srcdir)/emulparams/aarch64elf32.sh \
+  $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
+  $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} aarch64elf32b "$(tdir_aarch64elf32b)"
 eaarch64linux.c: $(srcdir)/emulparams/aarch64linux.sh \
   $(ELF_DEPS) $(srcdir)/emultempl/aarch64elf.em \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 # break the alpha sorting.
 case "${targ}" in
 aarch64_be-*-elf)      targ_emul=aarch64elfb
-                       targ_extra_emuls="aarch64elf aarch64elf32 armelfb armelf" ;;
+                       targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
 aarch64-*-elf)         targ_emul=aarch64elf
-                       targ_extra_emuls="aarch64elf32 aarch64elfb armelf armelfb" ;;
+                       targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
 aarch64_be-*-linux*)   targ_emul=aarch64linuxb
-                       targ_extra_emuls="aarch64linux aarch64elfb aarch64elf aarch64elf32 armelfb_linux_eabi armelf_linux_eabi armelfb armelf" ;;
+                       targ_extra_emuls="aarch64linux aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb_linux_eabi armelf_linux_eabi armelfb armelf" ;;
 aarch64-*-linux*)      targ_emul=aarch64linux
-                       targ_extra_emuls="aarch64linuxb aarch64elf aarch64elf32 aarch64elfb armelf_linux_eabi armelfb_linux_eabi armelf armelfb" ;;
+                       targ_extra_emuls="aarch64linuxb aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf_linux_eabi armelfb_linux_eabi armelf armelfb" ;;
 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
                        targ_emul=elf64alpha_fbsd
                        targ_extra_emuls="elf64alpha alpha"
 
--- /dev/null
+. ${srcdir}/emulparams/aarch64elf32.sh
+OUTPUT_FORMAT="elf32-bigaarch64"