From a4e5c0ff37ab0f85a7e006b6ea1f699fa6f72564 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Sun, 11 May 2008 13:05:40 +0000 Subject: [PATCH] - BugFix: flags for pad_return - use_bt added [r19579] --- ir/be/ia32/ia32_architecture.c | 3 ++- ir/be/ia32/ia32_architecture.h | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ir/be/ia32/ia32_architecture.c b/ir/be/ia32/ia32_architecture.c index 2903a4435..b70c2c50b 100644 --- a/ir/be/ia32/ia32_architecture.c +++ b/ir/be/ia32/ia32_architecture.c @@ -509,7 +509,8 @@ void ia32_setup_cg_config(void) ia32_cg_config.use_imul_mem_imm32 = !FLAGS(opt_arch, arch_k8 | arch_k10) || opt_size; ia32_cg_config.use_pxor = FLAGS(opt_arch, arch_netburst); ia32_cg_config.use_mov_0 = FLAGS(opt_arch, arch_k6) && !opt_size; - ia32_cg_config.use_pad_return = FLAGS(opt_arch, arch_athlon_plus | cpu_core2 | arch_generic32) && !opt_size; + ia32_cg_config.use_pad_return = FLAGS(opt_arch, arch_athlon_plus | arch_core2 | arch_generic32) && !opt_size; + ia32_cg_config.use_bt = FLAGS(opt_arch, arch_core2) || opt_size; ia32_cg_config.optimize_cc = opt_cc; ia32_cg_config.use_unsafe_floatconv = opt_unsafe_floatconv; diff --git a/ir/be/ia32/ia32_architecture.h b/ir/be/ia32/ia32_architecture.h index 45e3d6bcd..4712afc79 100644 --- a/ir/be/ia32/ia32_architecture.h +++ b/ir/be/ia32/ia32_architecture.h @@ -63,9 +63,11 @@ typedef struct { unsigned use_pxor:1; /** use mov reg, 0 instruction */ unsigned use_mov_0:1; - /** pad Ret that are destination of conditional jump or directly preceded + /** pad Ret instructions that are destination of conditional jump or directly preceded by other jump instruction. */ - unsigned use_pad_return; + unsigned use_pad_return:1; + /** use the bt instruction */ + unsigned use_bt:1; /** optimize calling convention where possible */ unsigned optimize_cc:1; /** -- 2.20.1