public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* 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).