On 04 Sep 2014, at 10:12, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:I�ve investigated an error.It occurs as follows:
1. Two class variables (assoc subclass) are checked for equality. This also checks the equality of assoc. values.
2. When two registers are checked for equality their code is checked. #code method in AJx64RipRegister throws an error.one thing that bothers me is that global variables comparison relies on their content�s functionality.On the other hand there is no way to compare AJx64RipRegister registers, as #= inherited from AJBaseReg will %100 crash.I think the solution is to use #identityIncludes: in
whichSelectorsReferTo: literal special: specialFlag byte: specialByte
"Answer a set of selectors whose methods access the argument as a literal."
| who |
who := IdentitySet new.
self selectorsAndMethodsDo:
[:sel :method |
((method hasLiteral: literal) or: [specialFlag and: [method scanFor: specialByte]])
ifTrue:
[((literal isVariableBinding) not
or: [method literals allButLast identityIncludes: literal])
ifTrue: [who add: sel]]].
^ whoUkoOn 04 Sep 2014, at 09:55, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:Sure https://pharo.fogbugz.com/f/cases/13952/Pool-access-lookup-crashOn 04 Sep 2014, at 09:44, Marcus Denker <marcus.denker@inria.fr> wrote:Hi,No, not yet reported. Can you open an issue?On Wed, Sep 3, 2014 at 8:43 PM, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
Hi everyone,when you go to AJx86Registers class, press �Show class variables� and select �IP�, then it crashes with: 'RIP register IP cannot be used only for relative addressing�. I couldn�t find related bug report, should I open one?<Screen Shot 2014-09-03 at 20.40.17.png>Uko--
--
Marcus Denker -- denker@acm.org
http://www.marcusdenker.de