RFR: 8339783: Implement JEP 479: Remove the Windows 32-bit x86 Port [v31]
David Holmes
dholmes at openjdk.org
Fri Nov 8 05:46:58 UTC 2024
On Fri, 8 Nov 2024 05:26:37 GMT, Julian Waters <jwaters at openjdk.org> wrote:
>>> Can someone confirm that use of `__stdcall` has no affect on name decorations, as there is no mention here about anything being ignored:
>>>
>>> https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170
>>>
>>> I would have expected that if argument passing needs to use the stack then the decorated name would still need to encode that somehow.
>>
>> In the page you mentioned:
>>
>> Format of a C decorated name
>> The form of decoration for a C function depends on the calling convention used in its declaration, as shown in the following table. It's also the decoration format that's used when C++ code is declared to have extern "C" linkage. The default calling convention is __cdecl. **In a 64-bit environment, C or extern "C" functions are only decorated when using the __vectorcall calling convention**.
>
>> Can someone confirm that use of `__stdcall` has no affect on name decorations, as there is no mention here about anything being ignored:
>>
>> https://learn.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-170
>>
>> I would have expected that if argument passing needs to use the stack then the decorated name would still need to encode that somehow.
>
> Not __stdcall: https://godbolt.org/z/nvjTP5WPc
> __stdcall: https://godbolt.org/z/1KejW44vY
Thanks @TheShermanTanker . I see the arguments do affect the encoding but the `__stdcall` makes no difference.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21744#issuecomment-2463816359
More information about the build-dev
mailing list