dschmenk / PLASMA

Proto Language AsSeMbler for All (formerly Apple)
MIT License
189 stars 26 forks source link

size optimisations for several routines #3

Closed peterferrie closed 10 years ago

dschmenk commented 10 years ago

Hi Peter,

Thanks so much for the optimizations! Some of the code I didn't incorporate or I changed for correctness, so I didn't use the pull request directly. I did attribute the optimizations to you in the commit comments, though. You may notice I didn't use the diffs for memset() because that routine actually fills memory with a 16 bit value. That's why the code is as ugly as it is, a very awkward and not-well-written function. If you want to rework it to fill with a 16 bit value (it alternates filling ESKL.X and ESTKH,X), I'd appreciate that! We now have a few more bytes freed up for a better optimized routine. I'm also in the process of reorganizing the source into subdirectories so it's not so much of a mess. Hopefully it will make sense. Thanks again for all your work,

Dave..

peterferrie commented 10 years ago

Hi David,

You may notice I didn't use the diffs for memset() because that routine actually fills memory with a 16 bit value.

Yes, I am aware of the required behaviour. My version does that, too. I used the carry as a flip-flop device, to alternate between storing the two 8-bit values. I should have added comments to that effect, to make it clear that that's what I was doing. Please reconsider using it. :-)

dschmenk commented 10 years ago

Well damn these old eyes. Sure enough, I just got lost in the diffs. Checked in and attributed to you. Thanks again for your clever code!