This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Going a bit further, and based on following assumptions:It does, on function entry and exit (i386 and x86-64 ABI).
The we in fact need cld insn only after asm statements. MODE_ENTRY can be set to CLD_FLAG_SET (actually CLD_FLAG_CLEARED...) and call insns wouldn't set MODE_UNINITIALIZED anymore. If we specify MODE_EXIT as CLD_FLAG_CLEARED, then optimize_mode_switching pass will automatically emmit cld after every asm statement, fulfilling ABI requirement about exit mode.
Is this thinking pushing cld optimization too far?
No, I think that's exactly the right approach. The only problem I could see are functions written completely in asm, where the author did STD and forgot about the ABI (i.e. didn't CLD before exit). They happen to work right now, but will fail working with those changes. IMHO such routines would be extremely rare, if they exist at all, so that shouldn't hinder full progress by using mode switching for the direction flag.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |