lto-coff.c (validate_file): Add x64-coff support.
2010-05-11 Kai Tietz <kai.tietz@onevision.com> * lto-coff.c (validate_file): Add x64-coff support. * lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New. (COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64. * lto-lang.c (lto_build_c_type_nodes): Add check for 'long long unsigned int' for x64-windows. (lto_init): Likewise. From-SVN: r159271
This commit is contained in:
parent
90829bcb0c
commit
94f6424987
|
@ -1,3 +1,13 @@
|
|||
2010-05-11 Kai Tietz <kai.tietz@onevision.com>
|
||||
|
||||
* lto-coff.c (validate_file): Add x64-coff support.
|
||||
* lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
|
||||
(COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
|
||||
* lto-lang.c (lto_build_c_type_nodes): Add check for
|
||||
'long long unsigned int' for x64-windows.
|
||||
(lto_init): Likewise.
|
||||
|
||||
|
||||
2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
|
||||
|
||||
* lto.h (struct lto_file_struct): Document offset member.
|
||||
|
|
|
@ -379,9 +379,10 @@ validate_file (lto_coff_file *coff_file)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (COFF_CHARACTERISTICS != (COFF_CHARACTERISTICS & charact))
|
||||
if (mach != IMAGE_FILE_MACHINE_ADM64
|
||||
&& COFF_CHARACTERISTICS != (COFF_CHARACTERISTICS & charact))
|
||||
{
|
||||
/* ECOFF/XCOFF/PE+ support not implemented. */
|
||||
/* ECOFF/XCOFF support not implemented. */
|
||||
error ("not a 32-bit COFF object file");
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -79,11 +79,13 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* COFF header machine codes. */
|
||||
|
||||
#define IMAGE_FILE_MACHINE_I386 (0x014c)
|
||||
#define IMAGE_FILE_MACHINE_ADM64 (0x8664)
|
||||
|
||||
/* Known header magics for validation, as an array initialiser. */
|
||||
|
||||
#define COFF_KNOWN_MACHINES \
|
||||
{ IMAGE_FILE_MACHINE_I386/*, ... add more here when working. */ }
|
||||
{ IMAGE_FILE_MACHINE_I386, \
|
||||
IMAGE_FILE_MACHINE_ADM64/*, ... add more here when working. */ }
|
||||
|
||||
/* COFF object file header, section and symbol flags and types. These are
|
||||
currently specific to PE-COFF, which is the only LTO-COFF format at the
|
||||
|
|
|
@ -1019,6 +1019,12 @@ lto_build_c_type_nodes (void)
|
|||
uintmax_type_node = long_unsigned_type_node;
|
||||
signed_size_type_node = long_integer_type_node;
|
||||
}
|
||||
else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
|
||||
{
|
||||
intmax_type_node = long_long_integer_type_node;
|
||||
uintmax_type_node = long_long_unsigned_type_node;
|
||||
signed_size_type_node = long_long_integer_type_node;
|
||||
}
|
||||
else
|
||||
gcc_unreachable ();
|
||||
|
||||
|
@ -1062,6 +1068,11 @@ lto_init (void)
|
|||
set_sizetype (long_unsigned_type_node);
|
||||
size_type_node = long_unsigned_type_node;
|
||||
}
|
||||
else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
|
||||
{
|
||||
set_sizetype (long_long_unsigned_type_node);
|
||||
size_type_node = long_long_unsigned_type_node;
|
||||
}
|
||||
else
|
||||
gcc_unreachable ();
|
||||
|
||||
|
|
Loading…
Reference in New Issue