* @author Michael Beck, Matthias Braun
* @version $Id: bearch_ia32_t.h 16363 2007-10-25 23:27:07Z beck $
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include "lc_opts.h"
#include "lc_opts_enum.h"
static int opt_size = 0;
static cpu_support arch = cpu_generic;
-static cpu_support opt_arch = cpu_core2;
+static cpu_support opt_arch = cpu_generic;
static int use_sse2 = 0;
static int opt_cc = 1;
static int opt_unsafe_floatconv = 0;
1, /* cost of a constant shift instruction */
3, /* starting cost of a multiply instruction */
0, /* cost of multiply for every set bit */
+#if 0 /* TEST */
4, /* logarithm for alignment of function labels */
4, /* logarithm for alignment of loops labels */
7, /* maximum skip for alignment of loops labels */
+#else
+ 0,
+ 0,
+ 0
+#endif
};
/* costs for the K10 */
ia32_cg_config.use_sse2 = use_sse2 && FLAGS(arch, arch_feature_sse2);
ia32_cg_config.use_ffreep = FLAGS(opt_arch, arch_athlon_plus);
ia32_cg_config.use_ftst = !FLAGS(arch, arch_feature_p6_insn);
+ /* valgrind can't cope with femms yet and the usefullness of the optimisation is questionable anyway */
+#if 0
ia32_cg_config.use_femms = FLAGS(opt_arch, arch_athlon_plus) &&
FLAGS(arch, arch_feature_mmx | arch_all_amd);
+#else
+ ia32_cg_config.use_femms = 0;
+#endif
ia32_cg_config.use_fucomi = FLAGS(arch, arch_feature_p6_insn);
ia32_cg_config.use_cmov = FLAGS(arch, arch_feature_p6_insn);
ia32_cg_config.use_modeD_moves = FLAGS(opt_arch, arch_athlon_plus | arch_geode | arch_ppro |