www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/05/06/06:17:55

Message-Id: <199605061003.GAA04578@delorie.com>
Date: Mon, 06 May 96 12:36:08 LIT
From: Martynas Kunigelis <martynas DOT kunigelis AT VM DOT KTU DOT LT>
Subject: Lots of Q's
To: DJGPP mailing list <djgpp AT delorie DOT com>

 I've so many DJGPP and non-DJGPP related questions spinning in my head,
that I'm even afraid to forget some of them...

*1* Which sbrk() algorythm is used in v2 by default?

*2* Is the v2 executable packer `djp' buggy or not?

*3* Eli, when will EMACS compiled with v2 be out?

*4* Where do I find the latest (i.e. DJGPP v2 compileable) version of JED?

*5* How do I debug C++ progs with GDB??? This one bothers me the most. The docs
    say debugging C++ requires additional debug info, not supported by COFF.
    They suggest -gstabs, though. However, it doesn't help. I try to say:
    `break Class::Method', but GDB says `class Class not found'. Is it true,
    that you can't debug C++ programs with COFF? I mean that's a major loss.
    If so, moving to ELF is really necessary IMHO, because NT compatibility
    is not worth losing C++ debugging ability. Please advise if I'm wrong.
    I really need to debug C++.

To continue the Register Calling Convention thread: I am now almost sure, that
this calling convention wouldn't cause real speedup. I checked the GCC assembly
output. When it comes to a non-trivial function with local vars and stuff, gcc
tries to act smart and uses esi, edi and ebx, but this, again, implies pushes,
thus no gain. For some trivial simple functions, you can specify the regparm
attribute. More, I think for a specific function the performance depends on
the particular number of registers used for parameters, this is what the
argument of the regparm attribute is for. The conclusion: optimize your
algorythms, not the compiler calling sequence. That's what ID guys did. How
come they don't complain about this? Anyway, I have Watcom C v9, I'll try to
time a non-trivial program compiled with register and stack calling convs. BTW
Watcom uses 4 (not 3) registers to pass parameters.

Regards,

Martynas

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019