On Tue, May 10, 2005 at 05:08:34PM +0200, Nils Philippsen wrote:
> If the only place that you want to enable -msse2 for are the
clobber
> lists of __asm statements, then perhaps best would be to conditionalize
> them:
> __asm ("something" : ... : ... :
> #ifdef __SSE2__
> "xmm0", "xmm1"
> #endif
> );
> etc., because without -msse2 (resp. -msse (__SSE__ macro)), the registers
> are not known to the compiler, so there is no point to tell the compiler
> about them.
Ahh. If I understand you correctly, given that the various asm optimized
functions are in separate source files, it should be ensured that
-mmmx/sse/sse2/3dnow are used only for the relevant source files?
Yes (and assuming they don't also contain code that is called
unconditionally).
Or don't pass -mmmx/-msse/-msse2/-m3dnow etc. at all, and hide all the
SSE2 etc. stuff in __asm and conditionally don't expose the clobbers
to GCC.
Jakub