projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove remaining WITH_ILP uses, fix bug introduced when adapting lpp
[libfirm]
/
ir
/
be
/
ia32
/
ia32_architecture.c
diff --git
a/ir/be/ia32/ia32_architecture.c
b/ir/be/ia32/ia32_architecture.c
index
56af304
..
7917a4a
100644
(file)
--- a/
ir/be/ia32/ia32_architecture.c
+++ b/
ir/be/ia32/ia32_architecture.c
@@
-740,7
+740,7
@@
typedef union {
static void x86_cpuid(cpuid_registers *regs, unsigned level)
{
#if defined(__GNUC__)
static void x86_cpuid(cpuid_registers *regs, unsigned level)
{
#if defined(__GNUC__)
-# if
def __PIC__
// GCC cannot handle EBX in PIC
+# if
defined(__PIC__) && !defined(__amd64)
// GCC cannot handle EBX in PIC
__asm (
"pushl %%ebx\n\t"
"cpuid\n\t"
__asm (
"pushl %%ebx\n\t"
"cpuid\n\t"
@@
-811,13
+811,11
@@
static void autodetect_arch(void)
/* We use the cpuid instruction to detect the CPU features */
if (x86_toogle_cpuid()) {
cpuid_registers regs;
/* We use the cpuid instruction to detect the CPU features */
if (x86_toogle_cpuid()) {
cpuid_registers regs;
- unsigned highest_level;
char vendorid[13];
x86_cpu_info_t cpu_info;
/* get vendor ID */
x86_cpuid(®s, 0);
char vendorid[13];
x86_cpu_info_t cpu_info;
/* get vendor ID */
x86_cpuid(®s, 0);
- highest_level = regs.r.eax;
memcpy(&vendorid[0], ®s.r.ebx, 4);
memcpy(&vendorid[4], ®s.r.edx, 4);
memcpy(&vendorid[8], ®s.r.ecx, 4);
memcpy(&vendorid[0], ®s.r.ebx, 4);
memcpy(&vendorid[4], ®s.r.edx, 4);
memcpy(&vendorid[8], ®s.r.ecx, 4);
@@
-911,7
+909,7
@@
void ia32_setup_cg_config(void)
c->use_pxor = FLAGS(opt_arch, arch_netburst);
c->use_mov_0 = FLAGS(opt_arch, arch_k6) && !opt_size;
c->use_short_sex_eax = !FLAGS(opt_arch, arch_k6) && !opt_size;
c->use_pxor = FLAGS(opt_arch, arch_netburst);
c->use_mov_0 = FLAGS(opt_arch, arch_k6) && !opt_size;
c->use_short_sex_eax = !FLAGS(opt_arch, arch_k6) && !opt_size;
- c->use_pad_return = FLAGS(opt_arch, arch_athlon_plus
| arch_core2 | arch_generic32
) && !opt_size;
+ c->use_pad_return = FLAGS(opt_arch, arch_athlon_plus) && !opt_size;
c->use_bt = FLAGS(opt_arch, arch_core2 | arch_athlon_plus) || opt_size;
c->use_fisttp = FLAGS(opt_arch & arch, arch_feature_sse3);
c->use_sse_prefetch = FLAGS(arch, (arch_feature_3DNowE | arch_feature_sse1));
c->use_bt = FLAGS(opt_arch, arch_core2 | arch_athlon_plus) || opt_size;
c->use_fisttp = FLAGS(opt_arch & arch, arch_feature_sse3);
c->use_sse_prefetch = FLAGS(arch, (arch_feature_3DNowE | arch_feature_sse1));