aboutsummaryrefslogtreecommitdiff
path: root/bfd/cpu-i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/cpu-i386.c')
-rw-r--r--bfd/cpu-i386.c189
1 files changed, 39 insertions, 150 deletions
diff --git a/bfd/cpu-i386.c b/bfd/cpu-i386.c
index a865a66..5df6435 100644
--- a/bfd/cpu-i386.c
+++ b/bfd/cpu-i386.c
@@ -130,173 +130,62 @@ bfd_arch_i386_onebyte_nop_fill (bfd_size_type count,
return fill;
}
+#define N(BITS, MACH, NAME, PRINT, DEF, FILL, NEXT) \
+ { BITS, /* Bits in a word. */ \
+ BITS, /* Bits in an address. */ \
+ 8, /* Bits in a byte. */ \
+ bfd_arch_i386, \
+ MACH, /* Machine number. */ \
+ NAME, \
+ PRINT, \
+ 3, /* Section alignment power. */ \
+ DEF, /* Default architecture version ? */ \
+ bfd_i386_compatible, \
+ bfd_default_scan, \
+ FILL, \
+ NEXT, \
+ 0 /* Maximum instruction length. */ \
+ }
+
static const bfd_arch_info_type bfd_x64_32_nacl_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32_nacl,
- "i386",
- "i386:x64-32:nacl",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- NULL
-};
+ N (64, bfd_mach_x64_32_nacl, "i386", "i386:x64-32:nacl",
+ FALSE, bfd_arch_i386_onebyte_nop_fill, NULL);
static const bfd_arch_info_type bfd_x86_64_nacl_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64_nacl,
- "i386",
- "i386:x86-64:nacl",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- &bfd_x64_32_nacl_arch
-};
+ N (64, bfd_mach_x86_64_nacl, "i386", "i386:x86-64:nacl",
+ FALSE, bfd_arch_i386_onebyte_nop_fill, &bfd_x64_32_nacl_arch);
const bfd_arch_info_type bfd_i386_nacl_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386_nacl,
- "i386",
- "i386:nacl",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_onebyte_nop_fill,
- &bfd_x86_64_nacl_arch
-};
+ N (32, bfd_mach_i386_i386_nacl, "i386", "i386:nacl",
+ TRUE, bfd_arch_i386_onebyte_nop_fill, &bfd_x86_64_nacl_arch);
+
static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32_intel_syntax,
- "i386:intel",
- "i386:x64-32:intel",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_i386_nacl_arch
-};
+ N (64, bfd_mach_x64_32_intel_syntax, "i386:intel", "i386:x64-32:intel",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_i386_nacl_arch);
static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64_intel_syntax,
- "i386:intel",
- "i386:x86-64:intel",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_x64_32_arch_intel_syntax,
-};
+ N (64, bfd_mach_x86_64_intel_syntax, "i386:intel", "i386:x86-64:intel",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch_intel_syntax);
static const bfd_arch_info_type bfd_i386_arch_intel_syntax =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386_intel_syntax,
- "i386:intel",
- "i386:intel",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_x86_64_arch_intel_syntax
-};
+ N (32, bfd_mach_i386_i386_intel_syntax, "i386:intel", "i386:intel",
+ TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch_intel_syntax);
+
static const bfd_arch_info_type i8086_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address (well, not really) */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i8086,
- "i8086",
- "i8086",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_i386_arch_intel_syntax
-};
+ N (32, bfd_mach_i386_i8086, "i8086", "i8086",
+ FALSE, bfd_arch_i386_short_nop_fill, &bfd_i386_arch_intel_syntax);
static const bfd_arch_info_type bfd_x64_32_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x64_32,
- "i386",
- "i386:x64-32",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &i8086_arch
-};
+ N (64, bfd_mach_x64_32, "i386", "i386:x64-32",
+ FALSE, bfd_arch_i386_long_nop_fill, &i8086_arch);
static const bfd_arch_info_type bfd_x86_64_arch =
-{
- 64, /* 64 bits in a word */
- 64, /* 64 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_x86_64,
- "i386",
- "i386:x86-64",
- 3,
- FALSE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_long_nop_fill,
- &bfd_x64_32_arch
-};
+ N (64, bfd_mach_x86_64, "i386", "i386:x86-64",
+ FALSE, bfd_arch_i386_long_nop_fill, &bfd_x64_32_arch);
const bfd_arch_info_type bfd_i386_arch =
-{
- 32, /* 32 bits in a word */
- 32, /* 32 bits in an address */
- 8, /* 8 bits in a byte */
- bfd_arch_i386,
- bfd_mach_i386_i386,
- "i386",
- "i386",
- 3,
- TRUE,
- bfd_i386_compatible,
- bfd_default_scan,
- bfd_arch_i386_short_nop_fill,
- &bfd_x86_64_arch
-};
+ N (32, bfd_mach_i386_i386, "i386", "i386",
+ TRUE, bfd_arch_i386_short_nop_fill, &bfd_x86_64_arch);