[Bug target/41900] call *%esp shouldn't be generated because of CPU errata
uros at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Nov 13 19:13:00 GMT 2009
------- Comment #7 from uros at gcc dot gnu dot org 2009-11-13 19:13 -------
Subject: Bug 41900
Author: uros
Date: Fri Nov 13 19:13:16 2009
New Revision: 154169
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154169
Log:
2009-11-13 Uros Bizjak <ubizjak@gmail.com>
PR target/41900
(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): Use "lsm"
as operand 1 constraint.
* config/i386/predicates.md (call_insn_operand): Depend on
index_register_operand to avoid %esp register.
2009-11-13 Uros Bizjak <ubizjak@gmail.com>
Revert:
2009-11-04 Uros Bizjak <ubizjak@gmail.com>
PR target/41900
* config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
(TARGET_CALL_ESP): New define.
* config/i386/i386.c (initial_ix86_tune_features): Initialize
X86_ARCH_CALL_ESP.
* config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
*call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
*call_1, *call_value_pop_1 and *call_value_1. Depend on
TARGET_CALL_ESP.
(*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
New patterns, use "lsm" as operand 1 constraint.
* config/i386/predicates.md (call_insn_operand): Depend on
index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/i386/i386.c
branches/gcc-4_4-branch/gcc/config/i386/i386.h
branches/gcc-4_4-branch/gcc/config/i386/i386.md
branches/gcc-4_4-branch/gcc/config/i386/predicates.md
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41900
More information about the Gcc-bugs
mailing list