Bi-endian patches for moxie
This commit is contained in:
parent
b9516fa158
commit
e202fa84e7
@ -1,3 +1,13 @@
|
||||
2012-09-13 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* targets.c (bfd_elf32_bigmoxie_vec, bfd_elf32_littlemoxie_vec):
|
||||
Define.
|
||||
(bfd_elf32_moxie_vec): Remove.
|
||||
* config.bfd, configure.in: Add bi-endian support for moxie.
|
||||
* configure: Rebuilt.
|
||||
* elf32-moxie.c (TARGET_LITTLE_NAME, TARGET_LITTLE_SYM): Define.
|
||||
(TARGET_BIG_NAME, TARGET_BIG_SYM): Update for bi-endian support.
|
||||
|
||||
2012-09-12 Doug Kwan <dougkwan@google.com>
|
||||
|
||||
* elf64-ppc.c (ppc64_elf_relocate_section): Use pre-adjusted
|
||||
|
||||
@ -419,7 +419,8 @@ case "${targ}" in
|
||||
;;
|
||||
|
||||
moxie-*-elf | moxie-*-rtems | moxie-*-uclinux)
|
||||
targ_defvec=bfd_elf32_moxie_vec
|
||||
targ_defvec=bfd_elf32_bigmoxie_vec
|
||||
targ_selvecs=bfd_elf32_littlemoxie_vec
|
||||
;;
|
||||
|
||||
h8300*-*-rtemscoff*)
|
||||
|
||||
3
bfd/configure
vendored
3
bfd/configure
vendored
@ -15221,6 +15221,7 @@ do
|
||||
bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
|
||||
@ -15232,7 +15233,6 @@ do
|
||||
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frv_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frvfdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_moxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_h8300_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
@ -15263,6 +15263,7 @@ do
|
||||
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
|
||||
@ -704,6 +704,7 @@ do
|
||||
bfd_elf32_bigmips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_bigmoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16_vec) tb="$tb elf32-cr16.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cr16c_vec) tb="$tb elf32-cr16c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
|
||||
@ -715,7 +716,6 @@ do
|
||||
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frv_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_frvfdpic_vec) tb="$tb elf32-frv.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_moxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_h8300_vec) tb="$tb elf32-h8300.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_linux_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_hppa_nbsd_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
|
||||
@ -746,6 +746,7 @@ do
|
||||
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemips_vxworks_vec)
|
||||
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
|
||||
bfd_elf32_littlemoxie_vec) tb="$tb elf32-moxie.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32c_vec) tb="$tb elf32-m32c.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
bfd_elf32_m32rle_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
|
||||
|
||||
@ -366,8 +366,10 @@ moxie_elf_check_relocs (bfd *abfd,
|
||||
#define ELF_MACHINE_CODE EM_MOXIE
|
||||
#define ELF_MAXPAGESIZE 0x1
|
||||
|
||||
#define TARGET_BIG_SYM bfd_elf32_moxie_vec
|
||||
#define TARGET_BIG_NAME "elf32-moxie"
|
||||
#define TARGET_BIG_SYM bfd_elf32_bigmoxie_vec
|
||||
#define TARGET_BIG_NAME "elf32-bigmoxie"
|
||||
#define TARGET_LITTLE_SYM bfd_elf32_littlemoxie_vec
|
||||
#define TARGET_LITTLE_NAME "elf32-littlemoxie"
|
||||
|
||||
#define elf_info_to_howto_rel NULL
|
||||
#define elf_info_to_howto moxie_info_to_howto_rela
|
||||
|
||||
@ -606,6 +606,7 @@ extern const bfd_target bfd_elf32_bigarm_symbian_vec;
|
||||
extern const bfd_target bfd_elf32_bigarm_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_bigmips_vec;
|
||||
extern const bfd_target bfd_elf32_bigmips_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_bigmoxie_vec;
|
||||
extern const bfd_target bfd_elf32_cr16_vec;
|
||||
extern const bfd_target bfd_elf32_cr16c_vec;
|
||||
extern const bfd_target bfd_elf32_cris_vec;
|
||||
@ -617,7 +618,6 @@ extern const bfd_target bfd_elf32_epiphany_vec;
|
||||
extern const bfd_target bfd_elf32_fr30_vec;
|
||||
extern const bfd_target bfd_elf32_frv_vec;
|
||||
extern const bfd_target bfd_elf32_frvfdpic_vec;
|
||||
extern const bfd_target bfd_elf32_moxie_vec;
|
||||
extern const bfd_target bfd_elf32_h8300_vec;
|
||||
extern const bfd_target bfd_elf32_hppa_linux_vec;
|
||||
extern const bfd_target bfd_elf32_hppa_nbsd_vec;
|
||||
@ -645,6 +645,7 @@ extern const bfd_target bfd_elf32_littlearm_symbian_vec;
|
||||
extern const bfd_target bfd_elf32_littlearm_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_littlemips_vec;
|
||||
extern const bfd_target bfd_elf32_littlemips_vxworks_vec;
|
||||
extern const bfd_target bfd_elf32_littlemoxie_vec;
|
||||
extern const bfd_target bfd_elf32_m32c_vec;
|
||||
extern const bfd_target bfd_elf32_m32r_vec;
|
||||
extern const bfd_target bfd_elf32_m32rle_vec;
|
||||
@ -979,6 +980,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
&bfd_elf32_bigarm_vxworks_vec,
|
||||
&bfd_elf32_bigmips_vec,
|
||||
&bfd_elf32_bigmips_vxworks_vec,
|
||||
&bfd_elf32_bigmoxie_vec,
|
||||
&bfd_elf32_cr16_vec,
|
||||
&bfd_elf32_cr16c_vec,
|
||||
&bfd_elf32_cris_vec,
|
||||
@ -990,7 +992,6 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
&bfd_elf32_fr30_vec,
|
||||
&bfd_elf32_frv_vec,
|
||||
&bfd_elf32_frvfdpic_vec,
|
||||
&bfd_elf32_moxie_vec,
|
||||
&bfd_elf32_h8300_vec,
|
||||
&bfd_elf32_hppa_linux_vec,
|
||||
&bfd_elf32_hppa_nbsd_vec,
|
||||
@ -1020,6 +1021,7 @@ static const bfd_target * const _bfd_target_vector[] =
|
||||
&bfd_elf32_littlearm_vxworks_vec,
|
||||
&bfd_elf32_littlemips_vec,
|
||||
&bfd_elf32_littlemips_vxworks_vec,
|
||||
&bfd_elf32_littlemoxie_vec,
|
||||
&bfd_elf32_m32c_vec,
|
||||
&bfd_elf32_m32r_vec,
|
||||
&bfd_elf32_m32rle_vec,
|
||||
|
||||
@ -1,3 +1,14 @@
|
||||
2012-09-13 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* config/tc-moxie.h (DEFAULT_TARGET_FORMAT): Define.
|
||||
(TARGET_FORMAT): Don't hard-code endian-ness.
|
||||
* config/tc-moxie.c (target_big_endian, moxie_target_format):
|
||||
Define.
|
||||
(md_assemble): Handle bi-endian encodings.
|
||||
(md_shortopts, md_parse_option, md_show_usage, md_apply_fix)
|
||||
(md_number_to_chars, md_chars_to_number): Update for bi-endian
|
||||
support.
|
||||
|
||||
2012-09-12 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
|
||||
|
||||
* config/tc-aarch64.c
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* tc-moxie.c -- Assemble code for moxie
|
||||
Copyright 2009
|
||||
Copyright 2009, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
@ -43,7 +43,11 @@ const pseudo_typeS md_pseudo_table[] =
|
||||
const char FLT_CHARS[] = "rRsSfFdDxXpP";
|
||||
const char EXP_CHARS[] = "eE";
|
||||
|
||||
static int md_chars_to_number (char *val, int n);
|
||||
static valueT md_chars_to_number (char * buf, int n);
|
||||
|
||||
/* Byte order. */
|
||||
extern int target_big_endian;
|
||||
const char *moxie_target_format = DEFAULT_TARGET_FORMAT;
|
||||
|
||||
void
|
||||
md_operand (expressionS *op __attribute__((unused)))
|
||||
@ -203,7 +207,7 @@ md_assemble (char *str)
|
||||
op_end++;
|
||||
op_end = parse_exp_save_ilp (op_end, &arg);
|
||||
fix_new_exp (frag_now,
|
||||
((p+1) - frag_now->fr_literal),
|
||||
((p + (target_big_endian ? 1 : 0)) - frag_now->fr_literal),
|
||||
1,
|
||||
&arg,
|
||||
0,
|
||||
@ -589,26 +593,50 @@ md_atof (int type, char *litP, int *sizeP)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *md_shortopts = "";
|
||||
|
||||
enum options
|
||||
{
|
||||
OPTION_EB = OPTION_MD_BASE,
|
||||
OPTION_EL,
|
||||
};
|
||||
|
||||
struct option md_longopts[] =
|
||||
{
|
||||
{NULL, no_argument, NULL, 0}
|
||||
{ "EB", no_argument, NULL, OPTION_EB},
|
||||
{ "EL", no_argument, NULL, OPTION_EL},
|
||||
{ NULL, no_argument, NULL, 0}
|
||||
};
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
/* We have no target specific options yet, so these next
|
||||
two functions are empty. */
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
const char *md_shortopts = "";
|
||||
|
||||
int
|
||||
md_parse_option (int c ATTRIBUTE_UNUSED, char *arg ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return 0;
|
||||
switch (c)
|
||||
{
|
||||
case OPTION_EB:
|
||||
target_big_endian = 1;
|
||||
moxie_target_format = "elf32-bigmoxie";
|
||||
break;
|
||||
case OPTION_EL:
|
||||
target_big_endian = 0;
|
||||
moxie_target_format = "elf32-littlemoxie";
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
|
||||
{
|
||||
fprintf (stream, _("\
|
||||
-EB assemble for a big endian system (default)\n\
|
||||
-EL assemble for a little endian system\n"));
|
||||
}
|
||||
|
||||
/* Apply a fixup to the object file. */
|
||||
@ -626,15 +654,35 @@ md_apply_fix (fixS *fixP ATTRIBUTE_UNUSED,
|
||||
switch (fixP->fx_r_type)
|
||||
{
|
||||
case BFD_RELOC_32:
|
||||
*buf++ = val >> 24;
|
||||
*buf++ = val >> 16;
|
||||
*buf++ = val >> 8;
|
||||
*buf++ = val >> 0;
|
||||
if (target_big_endian)
|
||||
{
|
||||
buf[0] = val >> 24;
|
||||
buf[1] = val >> 16;
|
||||
buf[2] = val >> 8;
|
||||
buf[3] = val >> 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[3] = val >> 24;
|
||||
buf[2] = val >> 16;
|
||||
buf[1] = val >> 8;
|
||||
buf[0] = val >> 0;
|
||||
}
|
||||
buf += 4;
|
||||
break;
|
||||
|
||||
case BFD_RELOC_16:
|
||||
*buf++ = val >> 8;
|
||||
*buf++ = val >> 0;
|
||||
if (target_big_endian)
|
||||
{
|
||||
buf[0] = val >> 8;
|
||||
buf[1] = val >> 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
buf[1] = val >> 8;
|
||||
buf[0] = val >> 0;
|
||||
}
|
||||
buf += 2;
|
||||
break;
|
||||
|
||||
case BFD_RELOC_8:
|
||||
@ -665,28 +713,43 @@ md_apply_fix (fixS *fixP ATTRIBUTE_UNUSED,
|
||||
fixP->fx_done = 1;
|
||||
}
|
||||
|
||||
/* Put number into target byte order (big endian). */
|
||||
/* Put number into target byte order. */
|
||||
|
||||
void
|
||||
md_number_to_chars (char *ptr, valueT use, int nbytes)
|
||||
md_number_to_chars (char * ptr, valueT use, int nbytes)
|
||||
{
|
||||
number_to_chars_bigendian (ptr, use, nbytes);
|
||||
if (target_big_endian)
|
||||
number_to_chars_bigendian (ptr, use, nbytes);
|
||||
else
|
||||
number_to_chars_littleendian (ptr, use, nbytes);
|
||||
}
|
||||
|
||||
/* Convert from target byte order to host byte order. */
|
||||
|
||||
static int
|
||||
md_chars_to_number (char *val, int n)
|
||||
static valueT
|
||||
md_chars_to_number (char * buf, int n)
|
||||
{
|
||||
int retval = 0;
|
||||
valueT result = 0;
|
||||
unsigned char * where = (unsigned char *) buf;
|
||||
|
||||
while (n--)
|
||||
if (target_big_endian)
|
||||
{
|
||||
retval <<= 8;
|
||||
retval |= (*val++ & 255);
|
||||
while (n--)
|
||||
{
|
||||
result <<= 8;
|
||||
result |= (*where++ & 255);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while (n--)
|
||||
{
|
||||
result <<= 8;
|
||||
result |= (where[n] & 255);
|
||||
}
|
||||
}
|
||||
|
||||
return retval;
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Generate a machine-dependent relocation. */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/* tc-moxie.h -- Header file for tc-moxie.c.
|
||||
|
||||
Copyright 2009 Free Software Foundation, Inc.
|
||||
Copyright 2009, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
||||
@ -22,11 +22,11 @@
|
||||
#define TARGET_BYTES_BIG_ENDIAN 1
|
||||
#define WORKING_DOT_WORD
|
||||
|
||||
/* This macro is the BFD target name to use when creating the output
|
||||
file. This will normally depend upon the `OBJ_FMT' macro. */
|
||||
#define TARGET_FORMAT "elf32-moxie"
|
||||
|
||||
/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */
|
||||
const char *moxie_target_format;
|
||||
#define DEFAULT_TARGET_FORMAT "elf32-bigmoxie"
|
||||
#define TARGET_FORMAT moxie_target_format
|
||||
|
||||
#define TARGET_ARCH bfd_arch_moxie
|
||||
|
||||
#define md_undefined_symbol(NAME) 0
|
||||
|
||||
@ -1,3 +1,10 @@
|
||||
2012-09-13 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* emulparams/elf32moxie.sh (BIG_OUTPUT_FORMAT,
|
||||
LITTLE_OUTPUT_FORMAT): Define.
|
||||
(OUTPUT_FORMAT): Change to elf32-bigmoxie.
|
||||
(EMBEDDED): Define.
|
||||
|
||||
2012-09-12 DJ Delorie <dj@redhat.com>
|
||||
|
||||
* emulparams/elf32rx.sh (OTHER_READONLY_SECTIONS): Add W_* sections.
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
SCRIPT_NAME=elf
|
||||
TEMPLATE_NAME=generic
|
||||
EXTRA_EM_FILE=genelf
|
||||
OUTPUT_FORMAT="elf32-moxie"
|
||||
OUTPUT_FORMAT="elf32-bigmoxie"
|
||||
BIG_OUTPUT_FORMAT="elf32-bigmoxie"
|
||||
LITTLE_OUTPUT_FORMAT="elf32-littlemoxie"
|
||||
TEXT_START_ADDR=0x1000
|
||||
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||||
ARCH=moxie
|
||||
EMBEDDED=yes
|
||||
STACK_ADDR=0x400000
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
2012-09-13 Anthony Green <green@moxielogic.com>
|
||||
|
||||
* moxie-dis.c (print_insn_moxie): Handle bi-endian encodings.
|
||||
|
||||
2012-09-10 Matthias Klose <doko@ubuntu.com>
|
||||
|
||||
* config.in: Disable sanity check for kfreebsd.
|
||||
|
||||
@ -53,7 +53,11 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
|
||||
if ((status = info->read_memory_func (addr, buffer, 2, info)))
|
||||
goto fail;
|
||||
iword = bfd_getb16 (buffer);
|
||||
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
iword = bfd_getb16 (buffer);
|
||||
else
|
||||
iword = bfd_getl16 (buffer);
|
||||
|
||||
/* Form 1 instructions have the high bit set to 0. */
|
||||
if ((iword & (1<<15)) == 0)
|
||||
@ -79,7 +83,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t%s, 0x%x", opcode->name,
|
||||
reg_names[OP_A(iword)], imm);
|
||||
length = 6;
|
||||
@ -90,7 +97,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t0x%x", opcode->name, imm);
|
||||
length = 6;
|
||||
}
|
||||
@ -100,7 +110,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t", opcode->name);
|
||||
info->print_address_func ((bfd_vma) imm, info);
|
||||
length = 6;
|
||||
@ -119,7 +132,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t0x%x, %s",
|
||||
opcode->name, imm, reg_names[OP_A(iword)]);
|
||||
length = 6;
|
||||
@ -130,7 +146,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr+2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t0x%x(%s), %s", opcode->name,
|
||||
imm,
|
||||
reg_names[OP_A(iword)],
|
||||
@ -143,7 +162,10 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
|
||||
unsigned imm;
|
||||
if ((status = info->read_memory_func (addr+2, buffer, 4, info)))
|
||||
goto fail;
|
||||
imm = bfd_getb32 (buffer);
|
||||
if (info->endian == BFD_ENDIAN_BIG)
|
||||
imm = bfd_getb32 (buffer);
|
||||
else
|
||||
imm = bfd_getl32 (buffer);
|
||||
fpr (stream, "%s\t%s, 0x%x(%s)",
|
||||
opcode->name,
|
||||
reg_names[OP_A(iword)],
|
||||
|
||||
Loading…
Reference in New Issue
Block a user