[rt.cpan.org #145723] Add support for Windows on ARM64

[email protected] ("Daniel Dragan via RT") Mon, 09 Jan 2023 21:14:16 -0500
Newsgroups perl.libwin32
Message-ID <[email protected]>
Mon Jan 09 21:14:15 2023: Request 145723 was acted upon.
Transaction: Correspondence added by BULKDD
       Queue: Win32-API
     Subject: Add support for Windows on ARM64
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: [email protected]
      Status: open
 Ticket <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.