Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
January 15, 2011 [dmd-beta] dmd 1.067 alpha | ||||
---|---|---|---|---|
| ||||
On 15/01/11 09:39, Walter Bright wrote: > This is the 64 bit Linux version! Hopefully, the D2 64 bit alpha isn't too far behind. > > http://ftp.digitalmars.com/dmd1beta.zip > > The 64 bit support is ALPHA, so expect problems! Please post bugs here, not in bugzilla, until we do a real release. > > > Known Problems > -------------- > > Code gen is not tuned for 64 bits. It's inefficient, especially with floating point. > > C ABI for struct and complex number pass/return is not followed. > > Dwarf symbolic debug info is generated, but not recognized by gdb. I have no idea what the problem is. > > std.zip is not working. > > std.boxer is not working. > > > > _______________________________________________ > dmd-beta mailing list > dmd-beta at puremagic.com > http://lists.puremagic.com/mailman/listinfo/dmd-beta It seems the following doesn't work yet? (First issue I hit while trying to run tango unittests - it compiles fine with the exception of the 64bit vararg support for dmd which I'm working on). test.d: ---- void foo(int, ...) { } ---- dmd -c -m64 test.d gives: test.d(1): Error: '__va_argsave_t' is not defined, perhaps you need to import std.c.stdarg; ? test.d(1): Error: __va_argsave_t is used as a type test.d(1): Error: variable test.foo.__va_argsave voids have no value -- Robert http://octarineparrot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.puremagic.com/pipermail/dmd-beta/attachments/20110115/85fa783d/attachment.html> |
January 15, 2011 [dmd-beta] dmd 1.067 alpha | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert | Having hacked around that, it seems not all x86_64 opcodes are supported? Not looked extensively, the first issue tango hits is the lack of pushq, no doubt there'll be others. On 15 January 2011 12:19, Robert <robert at octarineparrot.com> wrote: > On 15/01/11 09:39, Walter Bright wrote: > > This is the 64 bit Linux version! Hopefully, the D2 64 bit alpha isn't too far behind. > > > > http://ftp.digitalmars.com/dmd1beta.zip > > > > The 64 bit support is ALPHA, so expect problems! Please post bugs here, not in bugzilla, until we do a real release. > > > > > > Known Problems > > -------------- > > > > Code gen is not tuned for 64 bits. It's inefficient, especially with floating point. > > > > C ABI for struct and complex number pass/return is not followed. > > > > Dwarf symbolic debug info is generated, but not recognized by gdb. I have no idea what the problem is. > > > > std.zip is not working. > > > > std.boxer is not working. > > > > > > > > _______________________________________________ > > dmd-beta mailing list > > dmd-beta at puremagic.com > > http://lists.puremagic.com/mailman/listinfo/dmd-beta > > It seems the following doesn't work yet? (First issue I hit while trying to > run tango unittests - it compiles fine with the exception of the 64bit > vararg support for dmd which I'm working on). > test.d: > ---- > void foo(int, ...) > { > } > ---- > dmd -c -m64 test.d gives: > > test.d(1): Error: '__va_argsave_t' is not defined, perhaps you need to > import std.c.stdarg; ? > test.d(1): Error: __va_argsave_t is used as a type > test.d(1): Error: variable test.foo.__va_argsave voids have no value > > -- > Robert > http://octarineparrot.com/ > -- Robert http://octarineparrot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.puremagic.com/pipermail/dmd-beta/attachments/20110115/b2b34583/attachment.html> |
January 15, 2011 [dmd-beta] dmd 1.067 alpha | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert |
Robert wrote:
> Having hacked around that, it seems not all x86_64 opcodes are supported? Not looked extensively, the first issue tango hits is the lack of pushq, no doubt there'll be others.
>
According to my (AMD) instruction set reference, there is no pushq instruction. Just use push; they all push 8 bytes regardless of overrides.
|
January 15, 2011 [dmd-beta] dmd 1.067 alpha | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | On 15/01/11 19:48, Walter Bright wrote: > > > Robert wrote: >> Having hacked around that, it seems not all x86_64 opcodes are supported? Not looked extensively, the first issue tango hits is the lack of pushq, no doubt there'll be others. >> > > According to my (AMD) instruction set reference, there is no pushq instruction. Just use push; they all push 8 bytes regardless of overrides. Yes, I realised this shortly after I posted it, didn't get chance to reply though - ldc and gdc both accept it, just needed replacing to work with dmd. -- Robert http://octarineparrot.com/ |
January 15, 2011 [dmd-beta] dmd 1.067 alpha | ||||
---|---|---|---|---|
| ||||
Posted in reply to Robert Clipsham |
Robert Clipsham wrote:
>
> Yes, I realised this shortly after I posted it, didn't get chance to reply though - ldc and gdc both accept it, just needed replacing to work with dmd.
>
I should add that dmd's 64 bit inline assembler has been tested only with Phobos' inline assembler usage.
obj2asm should work correctly with 64 bit elf files. As usual, I find obj2asm to be an invaluable tool in tracking down bad code gen.
|
Copyright © 1999-2021 by the D Language Foundation