Masm32 SDK description, downloads and other helpful links
Started by FlySky, March 09, 2015, 02:24:23 AM
Quote from: vertograd on March 12, 2015, 06:53:16 AMThank you, AlexThat's an interesting and helpful link !Here it is:
Quote from: rrr314159 on March 12, 2015, 01:13:22 PMI'll be darned - this is exactly the idea we've been beating to death in the laboratory! I'd say William Chan stole it from me, except he's 9 years prior, so it would be a hard sell. But this algo has major drawbacks,Quote from: Zach sawNote though, that you'll need to give it 16-byte aligned memory and it copies in 128-byte blocks.Also prefetchnta seems useless, and movntdq worse-than-useless on my modern machine. Admittedly only tried them once but also saw ref's saying the same thing, that modern processors don't get much from them. (Of course u can't trust ref's)
Quote from: Zach sawNote though, that you'll need to give it 16-byte aligned memory and it copies in 128-byte blocks.
Quote from: rrr314159 on March 12, 2015, 01:13:22 PMI find that incrementing edi and esi midway through the list of mov's is better. Keeps the max offset down to 30h, no reason it should make a difference, but seems to help. And of course u should dec ebx long b4 the jnz branch, maximizes processor's ability to predict branch correctly in advance. Minor points, of course; see laboratory thread for a couple dozen more if interested
Quote from: rrr314159 on March 12, 2015, 01:13:22 PMDunno what this is doing here, would be more relevant over in the laboratory, but it was such a surprise to see it I had to comment.
Quote from: hutch-- on December 31, 2018, 06:05:20 PMSomething you must do with some values when you are using /LARGEADDRESSAWARE is to write the value to a 64 bit register then write the register to the 64 bit variable. It is not an assembler issue but part of the Win64 ABI.