[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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4