SEH is not implemented yet and needs to be disabled in mingw/winnt.cc. 
Disabling every SEH function that uses references to these macros might trigger 
significant refactoring, and to avoid this, required macros are defined with 0. 
It is needed only for compilation. A comment with an explanation will be added.

It looks like IL32P64 works. It has been tested on OpenSSL, OpenBLAS, 
libjpeg-turbo, and FFmpeg packages. No issues have been detected with it.

Correct, stack checking cannot be explicitly disabled by the user. It will be 
interesting to know cases when it is needed. GCC uses stack probing only when 
the stack size is exceeded; size optimization is not an option then.

Regards,
Evgeny


-----Original Message-----
Friday, February 23, 2024 6:16 PM 
Richard Sandiford wrote:
 
> +
> +#undef TARGET_SEH
> +#define TARGET_SEH 0
> +
> +#define SSE_REGNO_P(N) 0
> +#define GENERAL_REGNO_P(N) 0

Could you add a comment to explain how these two macros are consumed?
What is the effect of saying that everything is neither a general register nor 
an SSE register?

> +#define SEH_MAX_FRAME_SIZE 0


> +/* Windows64 continues to use a 32-bit long type.  */ #undef 
> +LONG_TYPE_SIZE #define LONG_TYPE_SIZE 32

Just curious: this is AFAIK the first IL32P64 ABI for AArch64.
Do things Just Work, including for things like arm_neon.h and other ACLE header 
files?  I'm pleasantly surprised if so :)

I suppose this is more of a generic mingw/cygwin question, but does this mean 
that stack checking cannot be explicitly disabled by a user who "knows what 
they are doing"?

Thanks,
Richard

Reply via email to