[fpc-pascal] Invalid combination of opcode and operands

Adriaan van Os adriaan at adriaan.biz
Mon Feb 23 17:12:32 CET 2026


Marco van de Voort via fpc-pascal wrote:
> 
> Op 23-2-2026 om 16:35 schreef Adriaan van Os via fpc-pascal:
>>
>> The following error message seeems to be new for fpc-3.3.1 (using 
>> -RIntel)
>>
>> ....
>>
>>     @Remainder_1:
>>      MOV   Length,EBX
>>      AND   Length,1
>>      JZ    @TheEnd
>>      MOVSS xmm2,[SourceBuffer] <--- Asm: [movss xmmreg2,mem64] invalid 
>> combination of opcode and operands
>>      MINSS xmm0,xmm2
>>      MAXSS xmm1,xmm2
>>
>>
>> Has anything changed here ?
>>
> Disclaimer:  I don't known 100% how OS X handles the analogue, so 
> assuming windows for a moment.

This is on macOS indeed, originally for Windows only, later ported to macOS. Strangely, the code 
still has MS_ABI_Default in the code. I were told, this was needed for 32-bit x86.

> 
> Was this code meant for 64-bit or 32-bit, and are you running it on the 
> same architecture where you originally tested/used it?
> 
> This because the sourcebuffer seems to indicate [mem64], which sounds 
> like target 64-bit intel, which might expect a rip relative addressing like
> 
> MOVSS xmm2,[rip+SourceBuffer]
> 
> But if the code was originally 32-bit the original expression would have 
> been valid.

The code was originally for 32-bit x86, yes but 32-bit is no longer built now.

An older FPC compiler accepts the assembly (but I am not trying to say that the asm is correct ...)

Regards,

Adriaan van Os


More information about the fpc-pascal mailing list