projects
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
opcodes: support insn endianness in cgen_cpu_open
[binutils-gdb.git]
/
opcodes
/
fr30-dis.c
diff --git
a/opcodes/fr30-dis.c
b/opcodes/fr30-dis.c
index 071eeba21d16675c293f8faf94a34799de173dcf..b98ea94a1a6e1f87f8079ca73b72fa4d5710a78d 100644
(file)
--- a/
opcodes/fr30-dis.c
+++ b/
opcodes/fr30-dis.c
@@
-1,10
+1,11
@@
+/* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
/* Disassembler interface for targets using CGEN. -*- C -*-
CGEN: Cpu tools GENerator
THIS FILE IS MACHINE GENERATED WITH CGEN.
- the resultant file is machine generated, cgen-dis.in isn't
/* Disassembler interface for targets using CGEN. -*- C -*-
CGEN: Cpu tools GENerator
THIS FILE IS MACHINE GENERATED WITH CGEN.
- the resultant file is machine generated, cgen-dis.in isn't
- Copyright (C) 1996-20
17
Free Software Foundation, Inc.
+ Copyright (C) 1996-20
20
Free Software Foundation, Inc.
This file is part of libopcodes.
This file is part of libopcodes.
@@
-28,7
+29,7
@@
#include "sysdep.h"
#include <stdio.h>
#include "ansidecl.h"
#include "sysdep.h"
#include <stdio.h>
#include "ansidecl.h"
-#include "dis
-asm
.h"
+#include "dis
assemble
.h"
#include "bfd.h"
#include "symcat.h"
#include "libiberty.h"
#include "bfd.h"
#include "symcat.h"
#include "libiberty.h"
@@
-295,9
+296,10
@@
fr30_cgen_print_operand (CGEN_CPU_DESC cd,
default :
/* xgettext:c-format */
default :
/* xgettext:c-format */
- fprintf (stderr, _("Unrecognized field %d while printing insn.\n"),
- opindex);
- abort ();
+ opcodes_error_handler
+ (_("internal error: unrecognized field %d while printing insn"),
+ opindex);
+ abort ();
}
}
}
}
@@
-601,6
+603,7
@@
typedef struct cpu_desc_list
CGEN_BITSET *isa;
int mach;
int endian;
CGEN_BITSET *isa;
int mach;
int endian;
+ int insn_endian;
CGEN_CPU_DESC cd;
} cpu_desc_list;
CGEN_CPU_DESC cd;
} cpu_desc_list;
@@
-613,12
+616,16
@@
print_insn_fr30 (bfd_vma pc, disassemble_info *info)
static CGEN_BITSET *prev_isa;
static int prev_mach;
static int prev_endian;
static CGEN_BITSET *prev_isa;
static int prev_mach;
static int prev_endian;
+ static int prev_insn_endian;
int length;
CGEN_BITSET *isa;
int mach;
int endian = (info->endian == BFD_ENDIAN_BIG
? CGEN_ENDIAN_BIG
: CGEN_ENDIAN_LITTLE);
int length;
CGEN_BITSET *isa;
int mach;
int endian = (info->endian == BFD_ENDIAN_BIG
? CGEN_ENDIAN_BIG
: CGEN_ENDIAN_LITTLE);
+ int insn_endian = (info->endian_code == BFD_ENDIAN_BIG
+ ? CGEN_ENDIAN_BIG
+ : CGEN_ENDIAN_LITTLE);
enum bfd_architecture arch;
/* ??? gdb will set mach but leave the architecture as "unknown" */
enum bfd_architecture arch;
/* ??? gdb will set mach but leave the architecture as "unknown" */
@@
-648,7
+655,7
@@
print_insn_fr30 (bfd_vma pc, disassemble_info *info)
cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
}
#else
cgen_bitset_add (isa, CGEN_COMPUTE_ISA (info));
}
#else
- isa = info->
insn_sets
;
+ isa = info->
private_data
;
#endif
/* If we've switched cpu's, try to find a handle we've used before */
#endif
/* If we've switched cpu's, try to find a handle we've used before */
@@
-684,9
+691,11
@@
print_insn_fr30 (bfd_vma pc, disassemble_info *info)
prev_isa = cgen_bitset_copy (isa);
prev_mach = mach;
prev_endian = endian;
prev_isa = cgen_bitset_copy (isa);
prev_mach = mach;
prev_endian = endian;
+ prev_insn_endian = insn_endian;
cd = fr30_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa,
CGEN_CPU_OPEN_BFDMACH, mach_name,
CGEN_CPU_OPEN_ENDIAN, prev_endian,
cd = fr30_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa,
CGEN_CPU_OPEN_BFDMACH, mach_name,
CGEN_CPU_OPEN_ENDIAN, prev_endian,
+ CGEN_CPU_OPEN_INSN_ENDIAN, prev_insn_endian,
CGEN_CPU_OPEN_END);
if (!cd)
abort ();
CGEN_CPU_OPEN_END);
if (!cd)
abort ();