Hi, I want to change #primitiveBitOr or #primitiveBitAnd and in both cases, I compile the VM, I run an image, and the image cannot even start and CPU 100%  :(<br>I have a loop somewhere.<br><br>This is the current implementation of #primitiveBitOr for example:<br>
<br>primitiveBitOr<br>    | integerReceiver integerArgument |<br>    integerArgument := self popPos32BitInteger.<br>    integerReceiver := self popPos32BitInteger.<br>    successFlag<br>        ifTrue: [self push: (self positive32BitIntegerFor:<br>
                    (integerReceiver bitOr: integerArgument))]<br>        ifFalse: [self unPop: 2]<br><br><br>I NEED to have the receiver oop and the argument oop. So, I&#39;ve change it to:<br><br>primitiveBitOr<br>    | integerReceiver integerArgument arg rcvr |<br>
    arg := self popStack.<br>    integerArgument := self positive32BitValueOf: arg.<br>    rcvr := self popStack.<br>    integerReceiver := self positive32BitValueOf: rcvr.<br>    <br>    successFlag<br>        ifTrue: [<br>
            self push: (self positive32BitIntegerFor:<br>                    (integerReceiver bitOr: integerArgument))]<br>        ifFalse: [self unPop: 2]<br><br><br>And then to:<br><br>primitiveBitOr<br>    | integerReceiver integerArgument arg rcvr |<br>
    arg := self stackValue: 0.<br>    integerArgument := self positive32BitValueOf: arg.<br>    rcvr := self stackValue: 1.<br>    integerReceiver := self positive32BitValueOf: rcvr.<br><br>    successFlag<br>        ifTrue: [<br>
            self push: (self positive32BitIntegerFor:<br>                    (integerReceiver bitOr: integerArgument))]<br>        ifFalse: [self unPop: 2]<br><br>But in both cases, while trying to start an image, I have cpu 100%<br>
Of course, the same happens if I do this in #primitiveBitAnd<br><br>Any ideas what can be happening? because I tried to understand but nothing :(<br><br>Thanks in advance<br><br>Mariano<br><br><br><br><br><br><br><br><br>