www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D compiler assembly

reply Brand <Brand_member pathlink.com> writes:
Is it possible to make D compiler generate assembly listing? It's pretty
annoying to use external disassemblers (such as IDA) for that.
And obj2asm mentioned on this site can't be downloaded for free <g>
May 17 2004
next sibling parent Mike Swieton <mike swieton.net> writes:
On Mon, 17 May 2004 22:21:56 +0000, Brand wrote:
 And obj2asm mentioned on this site can't be downloaded for free <g>
Umm... yes, it can. It's in the dmd.zip file. Mike Swieton __ Freedom is the right to make the wrong decision.
May 17 2004
prev sibling next sibling parent reply "Walter" <newshound digitalmars.com> writes:
"Brand" <Brand_member pathlink.com> wrote in message
news:c8bdu4$16tq$1 digitaldaemon.com...
 Is it possible to make D compiler generate assembly listing? It's pretty
 annoying to use external disassemblers (such as IDA) for that.
 And obj2asm mentioned on this site can't be downloaded for free <g>
Obj2asm is an extremely useful tool, it's only $15 at www.digitalmars.com/eup.html, comes with a bunch of other very useful tools, and helps keep the monitors glowing at Digital Mars.
May 17 2004
parent reply Brand <Brand_member pathlink.com> writes:
Obj2asm is an extremely useful tool, it's only $15 at
www.digitalmars.com/eup.html, comes with a bunch of other very useful tools,
and helps keep the monitors glowing at Digital Mars.
I agree that this tool is very good. But using any 3rd party disassembler works too. I was wondering if D compiler will be able to produce assembly listing itself (as do most (if not all) C++ compilers). This feature will greatly help isolating bugs in code generation and should not hit your obj2asm sales much <g>
May 17 2004
parent reply Ilya Minkov <minkov cs.tum.edu> writes:
Brand schrieb:

 I agree that this tool is very good. But using any 3rd party disassembler works
 too. I was wondering if D compiler will be able to produce assembly listing
 itself (as do most (if not all) C++ compilers). This feature will greatly help
 isolating bugs in code generation and should not hit your obj2asm sales much
<g>
Portable C and C++ compilers like GCC and LCC usually handle assembly as text as their intermediate form, and then pass it to an assembler, which can be either embedded or even external. DigitalMars compilers are different in this respect, that they generate machine code directly without going through assembly. Well, it's no surprise their backends aren't "portable" either. Making the compiler output assembly would essentially mean embedding a disassembler. It doesn't seem Walter would intend to do it, since else he probably would have done it years ago. :) -eye
May 18 2004
parent reply Brand <Brand_member pathlink.com> writes:
Portable C and C++ compilers like GCC and LCC usually handle assembly as 
text as their intermediate form, and then pass it to an assembler, which 
can be either embedded or even external. DigitalMars compilers are 
different in this respect, that they generate machine code directly 
without going through assembly. Well, it's no surprise their backends 
aren't "portable" either. Making the compiler output assembly would 
essentially mean embedding a disassembler. It doesn't seem Walter would 
intend to do it, since else he probably would have done it years ago. :)
That makes sense, thanks for explanation. Will have to use some 3rd party disassembler then. BTW, are there any benefits in DM approach? Slightly faster compilation time, or something else?
May 18 2004
parent reply "Walter" <newshound digitalmars.com> writes:
"Brand" <Brand_member pathlink.com> wrote in message
news:c8dppa$2260$1 digitaldaemon.com...
Portable C and C++ compilers like GCC and LCC usually handle assembly as
text as their intermediate form, and then pass it to an assembler, which
can be either embedded or even external. DigitalMars compilers are
different in this respect, that they generate machine code directly
without going through assembly. Well, it's no surprise their backends
aren't "portable" either. Making the compiler output assembly would
essentially mean embedding a disassembler. It doesn't seem Walter would
intend to do it, since else he probably would have done it years ago. :)
BTW, are there any benefits in DM approach? Slightly faster compilation
time, or
 something else?
If you compare DMC compile speed with gcc, I think that'll be clear enough <g>.
May 18 2004
parent "Matthew" <matthew.hat stlsoft.dot.org> writes:
"Walter" <newshound digitalmars.com> wrote in message
news:c8e0a8$2d8n$3 digitaldaemon.com...
 "Brand" <Brand_member pathlink.com> wrote in message
 news:c8dppa$2260$1 digitaldaemon.com...
Portable C and C++ compilers like GCC and LCC usually handle assembly as
text as their intermediate form, and then pass it to an assembler, which
can be either embedded or even external. DigitalMars compilers are
different in this respect, that they generate machine code directly
without going through assembly. Well, it's no surprise their backends
aren't "portable" either. Making the compiler output assembly would
essentially mean embedding a disassembler. It doesn't seem Walter would
intend to do it, since else he probably would have done it years ago. :)
BTW, are there any benefits in DM approach? Slightly faster compilation
time, or
 something else?
If you compare DMC compile speed with gcc, I think that'll be clear enough <g>.
You're not kidding, my funky brother!
Jun 04 2004
prev sibling parent Andrew Edwards <ridimz_at yahoo.dot.com> writes:
Brand wrote:
 Is it possible to make D compiler generate assembly listing? It's pretty
 annoying to use external disassemblers (such as IDA) for that.
 And obj2asm mentioned on this site can't be downloaded for free <g>
 
 
obj2asm is included every time you download dmd.zip. It is located int the ../dmd/bin directory. Unless of course you are using a W$ OS, in which case there is none for M$. Later, Andrew
May 17 2004