[Python-Dev] acceptability of asm in python code?

Tim Peters tim.one@comcast.net
Sat, 08 Mar 2003 22:41:55 -0500


[Damien Morton]
> In the BINARY_ADD opcode, and in most arithmetic opcodes,

Aren't add and subtract the whole story here?

> there is a line that checks for overflow that looks like this:
>
> if ((i^a) < 0 && (i^b) < 0) goto slow_add;
>
> I got a small speedup by replacing this with a macro defined thusly:
>
> #if defined(_MSC_VER) and defined(_M_IX86)

"and" isn't C, so I assume you were very lucky <wink>.

> #define IF_OVERFLOW_GOTO(X) __asm { jo X };
> #else
> #define IF_OVERFLOW_GOTO(X) if ((i^a) < 0 && (i^b) < 0) goto X;
> #endif
>
> Would this case be an acceptable use of snippets of inline assembler?

If you had said "a huge speedup, on all programs", on the weak end of maybe.
"Small speedup" isn't worth the obscurity.  Note that Python contains no
assembler now.