RE: FW: RE: x86_64 port

2005-03-08 Thread Simon Marlow
On 07 March 2005 18:01, Kurt Roeckx wrote: On Mon, Mar 07, 2005 at 11:47:31AM -, Simon Marlow wrote: $ cat bug.c register void * R1 __asm__(%r13); extern void g(void); static void f(void) { R1 = g; goto *R1; } $ gcc -S -O bug.c $ And take a look at the generated assembly

Re: FW: RE: x86_64 port

2005-03-07 Thread Kurt Roeckx
: glasgow-haskell-users@haskell.org Subject: RE: x86_64 port On 04 March 2005 16:59, John Goerzen wrote: On Fri, Mar 04, 2005 at 04:57:04PM -, Simon Marlow wrote: On 04 March 2005 14:04, John Goerzen wrote: My amd64 hardware arrived yesterday, shouldn't be too long before we have

RE: x86_64 port

2005-03-07 Thread Simon Marlow
On 04 March 2005 17:48, Wolfgang Thaller wrote: On 4-Mar-05, at 11:57 AM, Simon Marlow wrote: Don't hold your breath, I have some bad news. It seems that gcc is still generating incorrect code for register variables (or maybe it's broken again?). So maybe this will be the first NCG-only

RE: FW: RE: x86_64 port

2005-03-07 Thread Simon Marlow
On 04 March 2005 17:32, Kurt Roeckx wrote: I have no idea what ghc has too do with gcc, A bit of background: GHC uses gcc as a backend compiler. GHC generates C code that is compiled using gcc (we also have a native code generator for some platforms; but not for x86_64 yet). or what the

RE: x86_64 port

2005-03-07 Thread Simon Marlow
On 04 March 2005 22:54, Donald Bruce Stewart wrote: simonmar: On 04 March 2005 16:59, John Goerzen wrote: On Fri, Mar 04, 2005 at 04:57:04PM -, Simon Marlow wrote: On 04 March 2005 14:04, John Goerzen wrote: My amd64 hardware arrived yesterday, shouldn't be too long before we have a

Re: FW: RE: x86_64 port

2005-03-07 Thread David Brown
On Mon, Mar 07, 2005 at 11:47:31AM -, Simon Marlow wrote: $ cat bug.c register void * R1 __asm__(%r13); extern void g(void); static void f(void) { R1 = g; goto *R1; } $ gcc -S -O bug.c $ And take a look at the generated assembly for the function f: f: .LFB2:

RE: FW: RE: x86_64 port

2005-03-07 Thread Simon Marlow
On 07 March 2005 16:18, David Brown wrote: On Mon, Mar 07, 2005 at 11:47:31AM -, Simon Marlow wrote: $ cat bug.c register void * R1 __asm__(%r13); extern void g(void); static void f(void) { R1 = g; goto *R1; } $ gcc -S -O bug.c $ And take a look at the generated assembly

RE: FW: RE: x86_64 port

2005-03-07 Thread Simon Marlow
On 07 March 2005 16:40, Simon Marlow wrote: On 07 March 2005 16:18, David Brown wrote: On Mon, Mar 07, 2005 at 11:47:31AM -, Simon Marlow wrote: $ cat bug.c register void * R1 __asm__(%r13); extern void g(void); static void f(void) { R1 = g; goto *R1; } $ gcc -S -O bug.c $

Re: FW: RE: x86_64 port

2005-03-07 Thread David Brown
On Mon, Mar 07, 2005 at 04:59:38PM -, Simon Marlow wrote: The mystery as to why this doesn't affect us on x86 is solved: on x86 we generate slightly different C code, including a dummy function call: extern void g(void); static void f(void) { R1 = g; dummy(); goto *R1; }

Re: FW: RE: x86_64 port

2005-03-07 Thread Duncan Coutts
In message [EMAIL PROTECTED] David Brown [EMAIL PROTECTED] writes: On Mon, Mar 07, 2005 at 04:59:38PM -, Simon Marlow wrote: The mystery as to why this doesn't affect us on x86 is solved: on x86 we generate slightly different C code, including a dummy function call: extern void

Re: FW: RE: x86_64 port

2005-03-07 Thread Kurt Roeckx
On Mon, Mar 07, 2005 at 11:47:31AM -, Simon Marlow wrote: $ cat bug.c register void * R1 __asm__(%r13); extern void g(void); static void f(void) { R1 = g; goto *R1; } $ gcc -S -O bug.c $ And take a look at the generated assembly for the function f: f: .LFB2:

Re: FW: RE: x86_64 port

2005-03-07 Thread Kurt Roeckx
On Mon, Mar 07, 2005 at 09:15:01AM -0800, David Brown wrote: gcc 3.3.4 on AMD64 appears to generate correct code when the dummy call is present. Ick. It generates the following code here: subq$8, %rsp movl$g, %r13d movl$0, %eax calldummy

Re: FW: RE: x86_64 port

2005-03-07 Thread David Brown
On Mon, Mar 07, 2005 at 07:01:16PM +0100, Kurt Roeckx wrote: Also, it should be a movq $g, %rax instead of movl. The default x86_64 model on gcc is -mcmodel=small, which assumes that all symbols are within the first 2GB. If you compile it with -mcmodel=medium it'll generate: movabsq $g,

RE: x86_64 port

2005-03-04 Thread Simon Marlow
On 02 March 2005 14:15, John Goerzen wrote: Kip Macy kip.macy at gmail.com writes: I've followed the instructions to the letter. Debian has had a working amd64 package of ghc for some time now. It is built out of the standard source base for it. You can find that at:

Re: x86_64 port

2005-03-04 Thread Gour
Simon Marlow ([EMAIL PROTECTED]) wrote: My amd64 hardware arrived yesterday, shouldn't be too long before we have a registerised port of GHC, and possibly a native code generator... :- As soon as you have some pre-alpha release, I'm ready to test ;) Sincerely, Gour -- Registered Linux

Re: x86_64 port

2005-03-04 Thread Ralf Hinze
My amd64 hardware arrived yesterday, shouldn't be too long before we have a registerised port of GHC, and possibly a native code generator... That would be great! I just assembled an amd64 box and I am mssing ghci badly. Let me know if I can be of any help (testing ..). Cheers, Ralf

Re: x86_64 port

2005-03-04 Thread John Goerzen
On Fri, Mar 04, 2005 at 09:38:47AM -, Simon Marlow wrote: Even if you're not running Debian, there are tools available to convert a .deb to a RPM or tgz package. Or, you can easily unpack a deb using only ar(1) and tar(1). My amd64 hardware arrived yesterday, shouldn't be too long

RE: x86_64 port

2005-03-04 Thread Simon Marlow
On 04 March 2005 14:04, John Goerzen wrote: On Fri, Mar 04, 2005 at 09:38:47AM -, Simon Marlow wrote: Even if you're not running Debian, there are tools available to convert a .deb to a RPM or tgz package. Or, you can easily unpack a deb using only ar(1) and tar(1). My amd64 hardware

Re: x86_64 port

2005-03-04 Thread John Goerzen
On Fri, Mar 04, 2005 at 04:57:04PM -, Simon Marlow wrote: On 04 March 2005 14:04, John Goerzen wrote: My amd64 hardware arrived yesterday, shouldn't be too long before we have a registerised port of GHC, and possibly a native code generator... burns excellent /burns Don't hold

RE: x86_64 port

2005-03-04 Thread Simon Marlow
On 04 March 2005 16:59, John Goerzen wrote: On Fri, Mar 04, 2005 at 04:57:04PM -, Simon Marlow wrote: On 04 March 2005 14:04, John Goerzen wrote: My amd64 hardware arrived yesterday, shouldn't be too long before we have a registerised port of GHC, and possibly a native code generator...

Re: x86_64 port

2005-03-04 Thread Wolfgang Thaller
On 4-Mar-05, at 11:57 AM, Simon Marlow wrote: Don't hold your breath, I have some bad news. It seems that gcc is still generating incorrect code for register variables (or maybe it's broken again?). So maybe this will be the first NCG-only port of GHC :-). Death to the Mangler! Cheers, Wolfgang

Re: x86_64 port

2005-03-02 Thread John Goerzen
Kip Macy kip.macy at gmail.com writes: I've followed the instructions to the letter. Debian has had a working amd64 package of ghc for some time now. It is built out of the standard source base for it. You can find that at: http://ftp.debian.org/debian/pool/main/g/ghc6 You'll want to grab

Re: x86_64 port

2005-02-26 Thread Kip Macy
Much of this is done already. Simon Marlow's done the register mapping (ghc/includes/MachRegs.h) and done other registerisation work. There was a bug in gcc-3.3x that halted things for a while, but this has been fixed in 6.4 All the files mentioned except for the Adjustor appear to have

Re: x86_64 port

2005-02-25 Thread Donald Bruce Stewart
kip.macy: Sorry if this is a RTFM type question - but what is the status of the x86_64 port? As it says on http://www.haskell.org/ghc/docs/latest/html/building/sec-port-info.html it currently works unregisterised (and is available in binary form on a number of platforms). The registerised

Re: x86_64 port

2005-02-25 Thread Kip Macy
number of platforms). The registerised port is being held up as none of the developers have regular access to such a machine. I'm new to Haskell but not to assembler - is the work required something that someone in my position could contribute to? ___

Re: x86_64 port

2005-02-25 Thread Donald Bruce Stewart
kip.macy: number of platforms). The registerised port is being held up as none of the developers have regular access to such a machine. I'm new to Haskell but not to assembler - is the work required something that someone in my position could contribute to? Certainly. Not much Haskell is