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%  :(
I have a loop somewhere.

This is the current implementation of #primitiveBitOr for example:

primitiveBitOr
    | integerReceiver integerArgument |
    integerArgument := self popPos32BitInteger.
    integerReceiver := self popPos32BitInteger.
    successFlag
        ifTrue: [self push: (self positive32BitIntegerFor:
                    (integerReceiver bitOr: integerArgument))]
        ifFalse: [self unPop: 2]


I NEED to have the receiver oop and the argument oop. So, I've change it to:

primitiveBitOr
    | integerReceiver integerArgument arg rcvr |
    arg := self popStack.
    integerArgument := self positive32BitValueOf: arg.
    rcvr := self popStack.
    integerReceiver := self positive32BitValueOf: rcvr.
   
    successFlag
        ifTrue: [
            self push: (self positive32BitIntegerFor:
                    (integerReceiver bitOr: integerArgument))]
        ifFalse: [self unPop: 2]


And then to:

primitiveBitOr
    | integerReceiver integerArgument arg rcvr |
    arg := self stackValue: 0.
    integerArgument := self positive32BitValueOf: arg.
    rcvr := self stackValue: 1.
    integerReceiver := self positive32BitValueOf: rcvr.

    successFlag
        ifTrue: [
            self push: (self positive32BitIntegerFor:
                    (integerReceiver bitOr: integerArgument))]
        ifFalse: [self unPop: 2]

But in both cases, while trying to start an image, I have cpu 100%
Of course, the same happens if I do this in #primitiveBitAnd

Any ideas what can be happening? because I tried to understand but nothing :(

Thanks in advance

Mariano