* your patch enabling Arm64's GCS extension
@ 2024-02-12 7:39 Jan Beulich
2024-02-12 23:42 ` Srinath Parvathaneni
0 siblings, 1 reply; 4+ messages in thread
From: Jan Beulich @ 2024-02-12 7:39 UTC (permalink / raw)
To: Srinath Parvathaneni
Cc: Binutils, Richard Earnshaw, Marcus Shawcroft, Nick Clifton
Srinath,
may I ask against what specification this was written? There are two
aspects I can't bring in line with what DDI0596 from December has, i.e.
even newer than the patch (dating back to October):
1) gcspopcx, gcspopx, and gcspushx supposedly all have an optional
register operand, which gas 2.42 doesn't accept.
2) gcsstr and gcssttr supposedly have a memory-form 2nd operand, i.e.
a register name enclosed in square brackets. Gas 2.42 expects a
plain register name instead.
Despite being newer it's of course possible that documentation is what
actually needs fixing. Can you please clarify which way it is?
Thanks, Jan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: your patch enabling Arm64's GCS extension
2024-02-12 7:39 your patch enabling Arm64's GCS extension Jan Beulich
@ 2024-02-12 23:42 ` Srinath Parvathaneni
2024-02-29 21:44 ` Srinath Parvathaneni
0 siblings, 1 reply; 4+ messages in thread
From: Srinath Parvathaneni @ 2024-02-12 23:42 UTC (permalink / raw)
To: Jan Beulich; +Cc: Binutils, Richard Earnshaw, Marcus Shawcroft, Nick Clifton
Hi Jan,
On 2/12/2024 7:39 AM, Jan Beulich wrote:
> Srinath,
>
> may I ask against what specification this was written? There are two
> aspects I can't bring in line with what DDI0596 from December has, i.e.
> even newer than the patch (dating back to October):
>
> 1) gcspopcx, gcspopx, and gcspushx supposedly all have an optional
> register operand, which gas 2.42 doesn't accept.
My understanding from the following specs is that the above mentioned
instructions does not take any optional arguments and this is aligned with
LLVM compiler behaviour.
https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPUSHX--Guarded-Control-Stack-Push-exception-return-record?lang=en
However, I am unsure about the statement "The value in the register by
<Xt> is ignored" in the
specs and need further clarification. I will discuss this internally and
get back to you with an update.
> 2) gcsstr and gcssttr supposedly have a memory-form 2nd operand, i.e.
> a register name enclosed in square brackets. Gas 2.42 expects a
> plain register name instead.
I agree this is a coding bug, I will create a bugzilla ticket and work
on fixing this issue.
Thank You.
Regards,
Srinath
> Despite being newer it's of course possible that documentation is what
> actually needs fixing. Can you please clarify which way it is?
>
> Thanks, Jan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: your patch enabling Arm64's GCS extension
2024-02-12 23:42 ` Srinath Parvathaneni
@ 2024-02-29 21:44 ` Srinath Parvathaneni
2024-03-01 6:48 ` Jan Beulich
0 siblings, 1 reply; 4+ messages in thread
From: Srinath Parvathaneni @ 2024-02-29 21:44 UTC (permalink / raw)
To: Jan Beulich; +Cc: Binutils, Richard Earnshaw, Marcus Shawcroft, Nick Clifton
[-- Attachment #1: Type: text/plain, Size: 2065 bytes --]
Hi Jan,
On 2/12/2024 11:42 PM, Srinath Parvathaneni wrote:
> Hi Jan,
>
> On 2/12/2024 7:39 AM, Jan Beulich wrote:
>> Srinath,
>>
>> may I ask against what specification this was written? There are two
>> aspects I can't bring in line with what DDI0596 from December has, i.e.
>> even newer than the patch (dating back to October):
>>
>> 1) gcspopcx, gcspopx, and gcspushx supposedly all have an optional
>> register operand, which gas 2.42 doesn't accept.
>
> My understanding from the following specs is that the above mentioned
>
> instructions does not take any optional arguments and this is aligned
> with
>
> LLVM compiler behaviour.
>
> https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPUSHX--Guarded-Control-Stack-Push-exception-return-record?lang=en
>
>
> However, I am unsure about the statement "The value in the register by
> <Xt> is ignored" in the
>
> specs and need further clarification. I will discuss this internally
> and get back to you with an update.
There is some confusion over the document for mentioned gcspushx, gcspopx and gcspopcx instructions.
The correct documentation for these instructions is here:
https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPOPX--Guarded-Control-Stack-Pop-exception-return-record?lang=en
As per above documentation, the mentioned instructions does not take optional argument and the current binutils implementation of these instructions is correct.
>> 2) gcsstr and gcssttr supposedly have a memory-form 2nd operand, i.e.
>> a register name enclosed in square brackets. Gas 2.42 expects a
>> plain register name instead.
>
> I agree this is a coding bug, I will create a bugzilla ticket and work
> on fixing this issue.
I have committed the fix for this issue to master and binutils-2_42-branch.
Regards,
Srinath.
> Thank You.
>
> Regards,
>
> Srinath
>
>> Despite being newer it's of course possible that documentation is what
>> actually needs fixing. Can you please clarify which way it is?
>>
>> Thanks, Jan
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: your patch enabling Arm64's GCS extension
2024-02-29 21:44 ` Srinath Parvathaneni
@ 2024-03-01 6:48 ` Jan Beulich
0 siblings, 0 replies; 4+ messages in thread
From: Jan Beulich @ 2024-03-01 6:48 UTC (permalink / raw)
To: Srinath Parvathaneni
Cc: Binutils, Richard Earnshaw, Marcus Shawcroft, Nick Clifton
On 29.02.2024 22:44, Srinath Parvathaneni wrote:
> On 2/12/2024 11:42 PM, Srinath Parvathaneni wrote:
>> On 2/12/2024 7:39 AM, Jan Beulich wrote:
>>> Srinath,
>>>
>>> may I ask against what specification this was written? There are two
>>> aspects I can't bring in line with what DDI0596 from December has, i.e.
>>> even newer than the patch (dating back to October):
>>>
>>> 1) gcspopcx, gcspopx, and gcspushx supposedly all have an optional
>>> register operand, which gas 2.42 doesn't accept.
>>
>> My understanding from the following specs is that the above mentioned
>>
>> instructions does not take any optional arguments and this is aligned
>> with
>>
>> LLVM compiler behaviour.
>>
>> https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPUSHX--Guarded-Control-Stack-Push-exception-return-record?lang=en
>>
>>
>> However, I am unsure about the statement "The value in the register by
>> <Xt> is ignored" in the
>>
>> specs and need further clarification. I will discuss this internally
>> and get back to you with an update.
>
> There is some confusion over the document for mentioned gcspushx, gcspopx and gcspopcx instructions.
>
> The correct documentation for these instructions is here:
> https://developer.arm.com/documentation/ddi0601/2023-12/AArch64-Instructions/GCSPOPX--Guarded-Control-Stack-Pop-exception-return-record?lang=en
>
> As per above documentation, the mentioned instructions does not take optional argument and the current binutils implementation of these instructions is correct.
And other (then wrong) documentation will be updated in due course?
Jan
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-01 6:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-12 7:39 your patch enabling Arm64's GCS extension Jan Beulich
2024-02-12 23:42 ` Srinath Parvathaneni
2024-02-29 21:44 ` Srinath Parvathaneni
2024-03-01 6:48 ` Jan Beulich
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).