[Vm-dev] VM Maker: VMMaker.oscog-eem.1574.mcz

Eliot Miranda eliot.miranda at gmail.com
Sat Dec 12 20:44:08 UTC 2015


Apologies, Ryan.  Fixed now.  That's an example of arg names hidden in a
string providing the signature of a method that answers a function
pointer.  Slang can't deal so it's hacked.

On Sat, Dec 12, 2015 at 10:54 AM, Ryan Macnak <rmacnak at gmail.com> wrote:

>
> IA32 Cog has been broken
> <https://travis-ci.org/newspeaklanguage/nsvm-linux-ci/jobs/96085275>
> since this commit.
>
> /home/travis/build/newspeaklanguage/nsvm-linux-ci/oscogvm/nsspursrc/vm/cogitIA32.c:
> In function ‘genEnilopmartForandandforCallcalled’:
> /home/travis/build/newspeaklanguage/nsvm-linux-ci/oscogvm/nsspursrc/vm/cogitIA32.c:9844:6:
> error: ‘regArg3OrNone’ undeclared (first use in this function)
>
> On Thu, Dec 10, 2015 at 9:37 AM, <commits at source.squeak.org> wrote:
>
>>
>> Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
>> http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1574.mcz
>>
>> ==================== Summary ====================
>>
>> Name: VMMaker.oscog-eem.1574
>> Author: eem
>> Time: 10 December 2015, 9:36:18.933 am
>> UUID: ce2daaa5-0130-4ed4-abdb-26b8b6c06c6e
>> Ancestors: VMMaker.oscog-eem.1573
>>
>> Cogit:
>> Introduce the "abstract register" NoReg and use it everywhere we used nil
>> before to indicate no register.  Rename selectors and temporaries of the
>> form *registerOrNil*" to "*registerOrNone*".  Rewrite all uses of reg
>> ifNil: to be reg = NoReg ifTrue:.
>>
>>
>> This is prior to the putsch to replace the use of -1 to -N for abstract
>> registers, collapsing them down onto the same 0-N range used for concrete
>> registers.
>>
>> Ryan, Tim, Clément et al, perhaps you could review this carefully and
>> check your own tests to ensure I've got this right.  At least the x64 and
>> x86 Cogits look fine after this intermediate change.
>>
>> BTW, I used this to identify potential methods to change:
>>
>> self systemNavigation
>>         browseMessageList: (self systemNavigation allMethodsSelect: [:m|
>> (m methodClass category beginsWith:  #'VMMaker-JIT') and: [(m literals
>> includesAnyOf: #(isNil notNil ifNil: ifNotNil: ifNil:ifNotNil:
>> ifNotNil:ifNil:)) and: [m methodNode tempNames anySatisfy: [:t| '*reg*'
>> match: t]]]] localToPackage: #VMMaker)
>>         name: 'Uses of nil'
>>         autoSelect: 'Nil'
>>
>> and message names with the pattern "*reg*ornil*" to find selectors.
>
>
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20151212/e1a95f58/attachment.htm


More information about the Vm-dev mailing list