<div dir="ltr"><div dir="ltr">Hi Nicolas,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 24, 2020 at 1:06 PM Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com">nicolas.cellier.aka.nice@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> <div dir="ltr"><div>Hi Eliot,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 24 janv. 2020 à 01:57, <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"> <br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2675.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2675.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.2675<br>
Author: eem<br>
Time: 23 January 2020, 4:57:20.930803 pm<br>
UUID: ac4a578f-84c7-491c-924d-ca554ddc19a9<br>
Ancestors: VMMaker.oscog-eem.2674<br>
<br>
Cogit: Correct the definition of genPrimitiveHighBit.  If there is no implementation of LZCNT then it should return UnimplementedPrimitive, not CompletedPrimtiive.<br></blockquote><div>+1 <br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Reverse the order of operands in ClzR:R:; this is a left-to-right assembler, not an ATT syntax right-to-left one.<br></blockquote><div>+1, case of brain failure to mimic existing operations...</div><div>For some low level ops, it seems I would make an equally bright choice by flipping a coin ;)<br></div></div></div></blockquote><div><br></div><div>Yes.  Thus was perhaps not my best choice.  Early on I was exposed to left-to-right assemblers and found right-to-left assembler, such as that for the ARM, distasteful.  Now that I've spent so much time with the ARMv8 I'm starting to change my mind.  But since we have what we have, we should be consistent.  The most maddening thing for me is CmpR:R: CmpCq:R: et al.  I still can't understand which way is which and continually have to look at examples to get it right.  Sigh...</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Implement OrCq:R:R: to save an instruction in genPrimitiveHighBit.<br>
Move genHighBitIn:ofSmallIntegerOopWithSingleTagBit: into the backEnd where it belongs.  </blockquote><div>+1,</div><div>it probably ended here at the beginning of my iterations, then code generation is lax enough so I forgot<br></div><div>it's always a problem to know where to put the slang code (since it does rarely use receiver)<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Nuke the useless genHighBitAlternativeIn:ofSmallIntegerOopWithSingleTagBit:.<br></blockquote><div>+/- 1 ? <br></div><div>genHighBitAlternativeIn:ofSmallIntegerOopWithSingleTagBit: was for using the BSR instruction when there is no LZCNT</div><div>Do you mean useless because those µproc are obsolete enough to not bother?</div></div></div></blockquote><div><br></div><div>Oops!  I did not realize that's what it was for.  I only looked deep enough to see that it answered zero and thought OK let's nuke it.  I apologize!  This would have been good to comment, as in "This is a place-holder for an implementation that uses BSR when LZCNT is unavailable.".  I'll restore it soon (but right now I've discovered that I *can* get around the memory protections against self-modifying code in current linux, and in an elegant way, and I have only hours before tomorrow's meet in Palo Alto, so I'm under the gun :-) )</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
=============== Diff against VMMaker.oscog-eem.2674 ===============<br></blockquote></div></div></blockquote><div>[snip]</div><div> </div></div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div></div>