Mon Jan 09 23:32:39 2023: Request 145723 was acted upon.
Transaction: Correspondence added by stephenj...@gmail.com
       Queue: Win32-API
     Subject: Re: [rt.cpan.org #145723] Add support for Windows on ARM64
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: stephenj...@gmail.com
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=145723 >


I'm targeting ARM64 primarily. ARM64EC is interesting in that it would
allow an ARM64 perl to call x64 code (and is probably significantly easier
to implement), but in my porting scenario everything is native ARM64
already.
I think I've at least solved "single Doubles/floats params, in reg, and
then stack spill over" already for the win32::api::call code path in the
commit I originally attached. I'm happy to continue working through the
other parameter/return scenarios if you can help to get the callback path
working with priority 1 scenarios.

I'll provide a VM separately via email.

On Mon, Jan 9, 2023 at 6:14 PM Daniel Dragan via RT <
bug-win32-...@rt.cpan.org> wrote:

> <URL: https://rt.cpan.org/Ticket/Display.html?id=145723 >
>
>
> https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170
>
> Are you targeting ARM32  ARM64 or ARM64 EC?
>
> Could you get me a login to a VM with the right OS and the right CPU and a
> step debugger?  email me direct or leave your email
>
> single Doubles/floats params, in reg, and then stack spill over are drama.
>
> 128 bit integers are drama (secret &i128var pointer or split between 2 64b
> regs?)
>
> reading some docs, integer types and C structs upto 16byte are x0/x1
> retval split, FPs are v0-v32 128bit with v0-v3 used to return a single FP
> or SMID vector types. C structs over 16 bytes are return by memory,
> I/nobody didn't implement that in Win32::API.
>
> Basically getting char/short/U32/U64 params, and float/double/fp128 params
> right, and return types right is priority 1. variodic and pass by copy C
> structs are priority 2. SIMD variables like __m128 and XMMs
> (vectors/machine type array of same size scalars) are priority 3.
>
> I'd really need VM access to work on this solo since I dont own any Win
> ARM machines.
>
> There might be other things like "Callguard" or "Super Secure Structured
> Stack Exception Handling Platinum Plus With SecureGuard Gold" in Win
> 8/10/11 that needs to be bypassed since someone reported VC 2022 on x86-32
> crashes during unit testing but gave no other details.
>
>
>

Reply via email to