[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: Filling in ARM64 ABI structs
From:       Martin_Storsjö <martin () martin ! st>
Date:       2017-08-23 19:14:02
Message-ID: alpine.DEB.2.20.1708232208510.2300 () cone ! martin ! st
[Download RAW message or body]

Hi André,

On Wed, 23 Aug 2017, André Hentschel wrote:

> Am 22.08.2017 um 15:48 schrieb Martin Storsjö:
> > Hi,
> > 
> > I've noticed that some of the ABI specific structs for ARM64 are incomplete or \
> > missing - namely _JUMP_BUFFER in include/msvcrt/setjmp.h (not yet available) and \
> > _CONTEXT (not missing but only has got made-up content so far) and associated \
> > CONTEXT_* defines, and structs like RUNTIME_FUNCTION and UNWIND_HISTORY_TABLE in \
> > include/winnt.h. 
> > As far as I know, these structs should be available in the win10 sdk. (MSDN \
> > doesn't have them but just says to refer to winnt.h for the CONTEXT struct at \
> > least). In order not to accidentally make myself uneligible for contributing code \
> > on these matters, I've tried to not look at the sdk. 
> > Can someone help out with completeing these data structures according to whatever \
> > clean-room guidelines are required? When looking at existing code with git blame, \
> > they mostly appear as such without any further explanation on how they were \
> > derived, so I'm taking the more cautious route here. 
> > // Martin
> > 
> > 
> 
> Hi,
> 
> IANAL, but you should be fine as long as you only study the headers and 
> don't copy&paste...

Thanks - if someone else can confirm this I can proceed in this way 
myself.

> Sadly I have no idea anymore how I implemented JUMP_BUFFER for ARM, but 
> it's a good thing to have an application which needs it, as it seems we 
> only have tests for amd64

Since I've got a pretty much working compiler for this, I can create 
whatever calling code I want to test it. I can't know for sure that it's 
correct with what the so far non-public MSVC/arm64 would do, but I doubt 
it'd differ too much.

> What is also strongly needed is that distributions stop using x18, have 
> you done something in this regard?

Not really. In all the code I've tested so far, I haven't struck any 
concrete issues with only wine but not the rest of the distro built with 
-ffixed-x18. But then again, the apps I've built myself don't use the TEB 
at all, so I won't notice either - I've mostly tested uuidgen.exe and 
midl.exe from the win10 sdk, for generic compatibility and compatibility 
with the va_args.

// Martin


[Attachment #3 (text/plain)]




[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic