[fpc-pascal] x86_64 assembler

Tomas Hajny XHajT03 at mbox.vol.cz
Fri Jun 6 18:29:34 CEST 2008


On Fri, June 6, 2008 17:19, mm wrote:
> Tomas Hajny a écrit :
>> On Thu, June 5, 2008 15:29, mm wrote:
>>> Jonas Maebe a écrit :
>>>>> How can one declare a constant of type qword with the INTEL
>>>>> assembler?
>>>>> I am using FPC 2.2.0 and the mnemonic "dq"  stops the compilation
>>>>> with
>>>>> the message "Error: Unrecognized opcode DQ".
>>>> As far as I can see, that's not possible at this time.
>>> That's what I was afraid of. Thanks anyway.
>>>
>>> So the simplest solution is to use the ATT (GAS?) assembler.
>>
>> Can't you just split the constant to two hexadecimal (or alphanumeric)
>> values put after "dd"?
>
> Unfortunately, no. I have to use it with something like
>
>    dq  @@R0,@@R1,@@R2,@@R3
>
> where the @@nn are labels (this is done to select the right jump at
> run time).
>
> I thought to use hexadecimal code to replace the mnemonic "dq" itself
> but 1) I don't know its code and 2) I am not even sure it would work.

There's no hexadecimal code for 'dq' (or any other d?) - this directive
simply tells the assembler that the following constants shall be put
directly into the code (instead of being compiled into some CPU
instructions)...

I suggest that you add this issue as a request to our bug tracker so that
it doesn't get forgotten (I believe that adding it shouldn't be a problem
for somebody knowing the related part of FPC).

Tomas





More information about the fpc-pascal mailing list