RFR: 8277204: Implement PAC-RET branch protection on Linux/AArch64 [v18]

Alan Hayward duke at openjdk.java.net
Thu Feb 10 16:39:52 UTC 2022


On Mon, 7 Feb 2022 15:12:04 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> How about extending the existing enter() function: 
>> 
>> // Enter a new stack frame for the current method.
>> // nested:     Indicates a frame has already been entered (and not left) for the current method. 
>> void MacroAssembler::enter(bool nested=false) {
>>    if (nested) strip()
>>    protect()
>>    stp()
>>    mov()
>> }
>> 
>> This would add an additional bool check for every call of enter() - that's at code generation time, so probably not an issue.
>
> So, `nested` is true iff we are, say, pushing an extra frame for a runtime call in the middle of generated code, but for some mysterious reason the logic is inline instead of being implemented in the obvious way as a stub.
> 
> Please do this as:
> 
> ` MacroAssembler::enter(bool strip_return_address=false)`
> 
> and I'll be happy. Please make sure that all calls are commented, as in
> 
> `__ enter(/*strip_return_address*/true);`
> 
> and I'll be happy.

Just about to resolve this ... then spotted the "make sure that all calls are commented". Will fix up.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6334



More information about the build-dev mailing list