Message170985
> Given all the problems, I'll stop using PGO on all branches and
> as the compiler apparently generates bad code.
That is probably the best solution.
The problem in memoryview.c:pack_single() is that Visual Studio optimizes the
memcpy() to mov instructions, but exchanges the low and high dwords:
unsigned __int64 llu = 1;
do { unsigned __int64 x;
x = (unsigned __int64)llu;
// At this point x=llu is in edx=1 and ecx=0.
// The memcpy() is optimized to:
// mov dword ptr [esi], ecx
// mov dword ptr [esi+4], edx
memcpy(ptr, (char *)&x, sizeof x);
} while (0); |
|
| Date |
User |
Action |
Args |
| 2012-09-22 11:09:29 | skrah | set | recipients:
+ skrah, loewis, vstinner, nadeem.vawda, brian.curtin |
| 2012-09-22 11:09:29 | skrah | set | messageid: <[email protected]> |
| 2012-09-22 11:09:28 | skrah | link | issue15993 messages |
| 2012-09-22 11:09:28 | skrah | create | |
|