Port-hppa archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [Re: [patch] Add NetBSD/hppa target]



On Fri, Jun 14, 2019 at 05:59:53PM +0000, coypu%sdf.org@localhost wrote:
> Hi folks, we never upstreamed the GCC target, and now with the new QEMU
> support, I thought it's a good time to do it.
> 
> A discussion came up on ABI choices on gcc-patches:
> https://gcc.gnu.org/ml/gcc-patches/2019-06/threads.html#00846
> 
> ----- Forwarded message from John David Anglin <dave.anglin%bell.net@localhost> -----
> On 2019-06-14 12:02 p.m., Jeff Law wrote:
> >> diff --git a/gcc/config.gcc b/gcc/config.gcc
> >> index 76bb316942d..ba93bb41ec8 100644
> >> --- a/gcc/config.gcc
> >> +++ b/gcc/config.gcc
> >> @@ -1481,6 +1481,14 @@ hppa*-*-openbsd*)
> >>  	gas=yes
> >>  	gnu_ld=yes
> >>  	;;
> >> +hppa*-*-netbsd*)
> >> +	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
> > Any reason to not use the PA 2.0 ISA?   I'm virtually certain we
> > supported the 32bit ABI running on PA 2.0 hardware in hpbsd (which is
> > where the netbsd PA code is ultimately derived from).   I'd be really
> > surprised if there's any PA1.1 hardware running anywhere, though there's
> > certainly some PA2.0 hardware out in the wild.

Eh? All PA-7xxx CPUs are 1.1 only.
https://en.wikipedia.org/wiki/PA-RISC#CPU_specifications

Tons of classic HP workstations/servers have those, so what's Jeff
talking about?

Or does he mean gcc generates code in PA 2.0/32 bit mode that is
compatible with 1.1?


> You might also consider adding MASK_CALLER_COPIES as libgomp is broken for callee
> copies.  This is an ABI choice so ideally you should do it now or not at all.
> 
> ----- End forwarded message -----
> 
> From GCC's sources:
> 
> MASK_NO_SPACE_REGS
>        -mno-space-regs
>            Generate code that assumes the target has no space registers.  This
>            allows GCC to generate faster indirect calls and use unscaled index
>            address modes.
> 
>            Such code is suitable for level 0 PA systems and kernels.
> 
> 
> MASK_CALLER_COPIES
> /* Implement TARGET_CALLEE_COPIES.  The callee is responsible for copying
>    arguments passed by hidden reference in the 32-bit HP runtime.  Users
>    can override this behavior for better compatibility with openmp at the
>    risk of library incompatibilities.  Arguments are always passed by value
>    in the 64-bit HP runtime.  */
> 
> 
> These could introduce binary compatibility problems, but it's not my
> call to make.
> 
> Thoughts?


Home | Main Index | Thread Index | Old Index