1988-02-03 12:48:58 +00:00
|
|
|
#define CODE_EXPANDER
|
1987-11-20 10:41:03 +00:00
|
|
|
#include <em.h>
|
|
|
|
#include "back.h"
|
|
|
|
|
1989-01-26 13:24:23 +00:00
|
|
|
extern int B_locals_created;
|
|
|
|
extern int B_procno;
|
1987-11-20 10:41:03 +00:00
|
|
|
|
|
|
|
C_pro_narg( s)
|
|
|
|
char*s;
|
|
|
|
|
1989-01-26 13:24:23 +00:00
|
|
|
/* The number of locals is unknown, but the stackframe must be made anyway.
|
|
|
|
* Solution: jump to end of procedure, where C_end() will generate code to
|
|
|
|
* create the stackframe, and also will generate code to jump back.
|
1987-11-20 10:41:03 +00:00
|
|
|
*/
|
|
|
|
{
|
1988-10-31 16:03:44 +00:00
|
|
|
char *ss;
|
1987-11-20 10:41:03 +00:00
|
|
|
swtxt();
|
|
|
|
|
|
|
|
symbol_definition( extnd_name( s));
|
1989-01-26 13:24:23 +00:00
|
|
|
B_procno++;
|
1989-01-26 14:04:11 +00:00
|
|
|
C_prolog();
|
1989-01-26 13:24:23 +00:00
|
|
|
B_locals_created = 0;
|
1989-01-26 14:04:11 +00:00
|
|
|
C_jump( extnd_pro( B_procno));
|
1989-01-26 13:24:23 +00:00
|
|
|
symbol_definition( ss = extnd_start( B_procno));
|
1988-10-31 16:03:44 +00:00
|
|
|
set_local_visible( ss);
|
1987-11-20 10:41:03 +00:00
|
|
|
}
|