Where/what sets NoDbgRegParms?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
tty
Reply | Threaded
Open this post in threaded view
|

Where/what sets NoDbgRegParms?

tty
 
Hi guys,

On my system, NoDbgRegparms is set such that in Cog/src/vm/cogit.h and Cog/src/vm/cointerp.h the follwoing lines:


#if !PRODUCTION && defined(__GNUC__) && !defined(NoDbgRegParms)
# define NoDbgRegParms __attribute__ ((regparm (0)))
#endif

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
#endif
 
resolve to 


#if TRUE && TRUE && FALSE
# define NoDbgRegParms __attribute__ ((regparm (0)))
#endif

#if FALSE
# define NoDbgRegParms /*empty*/
#endif
 

which means the NoDbgRegParms in the function declarations are never removed in cogit.c and cointerp.c

example:
static sqInt abstractRegisterForConcreteRegister(AbstractInstruction * self_in_abstractRegisterForConcreteRegister, sqInt reg) NoDbgRegParms;

My problem is I cannot find where the dang thing is defined. I have grepped to no avail from the top of the Cog svn tree with 

grep -rn NoDbgRegParms --exclude=mvm --exclude=*.c *  

and nothing. 

Any ideas on where to look? 

thx.

btw, when I force the NoDbgRegparms to be empty, things compile just fine form build.linux32x86/squeak.cog.v3/bld/mvm which was my problem when I had to detour for a bit.