diff --git a/smalltalksrc/VMMaker/CogX64Compiler.class.st b/smalltalksrc/VMMaker/CogX64Compiler.class.st index e90cda4299..24c964b20f 100644 --- a/smalltalksrc/VMMaker/CogX64Compiler.class.st +++ b/smalltalksrc/VMMaker/CogX64Compiler.class.st @@ -433,6 +433,13 @@ CogX64Compiler >> canZeroExtend [ ^true ] +{ #category : 'testing' } +CogX64Compiler >> checkIs32bit: offset [ + + (offset between: -2147483648 and: 2147483647) ifFalse: [ + self error: 'Cannot jump to distances larger than 32 bits' ] +] + { #category : 'accessing' } CogX64Compiler >> cmpC32RTempByteSize [ ^5 @@ -4276,13 +4283,6 @@ CogX64Compiler >> is32BitSignedImmediate: a64BitUnsignedOperand [ inSmalltalk: [((a64BitUnsignedOperand >> 32) signedIntFromLong + 1 bitXor: 1) = (a64BitUnsignedOperand >> 31 bitAnd: 1)] ] -{ #category : 'testing' } -CogX64Compiler >> checkIs32bit: offset [ - - (offset between: -2147483648 and: 2147483647) ifFalse: [ - self error: 'Cannot jump to distances larger than 32 bits' ] -] - { #category : 'testing' } CogX64Compiler >> isAddressRelativeToVarBase: varAddress [ "Support for addressing variables off the dedicated VarBaseReg. Allow for 1Mb of variables. diff --git a/smalltalksrc/VMMaker/StackToRegisterMappingCogit.class.st b/smalltalksrc/VMMaker/StackToRegisterMappingCogit.class.st index cedcb373b9..e188ade148 100644 --- a/smalltalksrc/VMMaker/StackToRegisterMappingCogit.class.st +++ b/smalltalksrc/VMMaker/StackToRegisterMappingCogit.class.st @@ -3738,7 +3738,7 @@ StackToRegisterMappingCogit >> populate: tuple withPICInfoFor: cPIC firstCacheTa picCaseMachineCodePC := self addressOfEndOfCase: i inCPIC: cPIC. cacheTag := i = 1 ifTrue: [firstCacheTag] - ifFalse: [backEnd literalBeforeFollowingAddress: picCaseMachineCodePC - backEnd jumpLongConditionalByteSize]. + ifFalse: [backEnd literal32BeforeFollowingAddress: picCaseMachineCodePC - backEnd jumpLongConditionalByteSize]. classOop := objectRepresentation classForInlineCacheTag: cacheTag. objectMemory storePointer: i * 2 - 1 ofObject: tuple withValue: classOop.