Call for help: clang/llvm for sparc64
Roman Divacky
rdivacky at freebsd.org
Mon Jan 27 20:03:33 UTC 2014
Btw, can someone test this patch? ie. compile (with gcc) sparc64 kernel
with it and boot it?
> Yes, I had to fix that but forgot to upstream it.
>
> Index: sparc64/include/pcpu.h
> ===================================================================
> --- sparc64/include/pcpu.h (revision 259767)
> +++ sparc64/include/pcpu.h (working copy)
> @@ -70,9 +70,26 @@
> struct pcb;
> struct pcpu;
>
> -register struct pcb *curpcb __asm__(__XSTRING(PCB_REG));
> -register struct pcpu *pcpup __asm__(__XSTRING(PCPU_REG));
> +static __inline __pure2 struct pcb *
> +__curpcb(void)
> +{
> + struct pcb *pcb;
>
> + __asm("ldx [%" __XSTRING(PCB_REG) "], %0" : "=r" (pcb));
> + return (pcb);
> +}
> +#define curpcb (__curpcb())
> +
> +static __inline __pure2 struct pcpu *
> +__curpcpu(void)
> +{
> + struct pcpu *pcpu;
> +
> + __asm("ldx [%" __XSTRING(PCPU_REG) "], %0" : "=r" (pcpu));
> + return (pcpu);
> +}
> +#define pcpup (__curpcpu())
> +
> #define PCPU_GET(member) (pcpup->pc_ ## member)
>
> static __inline __pure2 struct thread *
>
>
> the llvm sparc64 is not yet ready for wide consumption. Once llvm 3.4 is imported
> (days now) the sparc64 backend will be enabled as well. Then I plan to backport
> all the fixes from llvm trunk to enable it to selfhost. So that we can build
> llvm 3.5 with llvm itself. This is necesary as llvm is becoming c++11 only.
>
> Roman
More information about the freebsd-sparc64
mailing list