emit/__emit: Simplify the code in emit_parm2_gvar_num()
This commit is contained in:
parent
35fb9e8393
commit
69b552c90d
@ -6001,38 +6001,10 @@ static void OPHANDLER_CALL emit_parm2_gvar(char *name)
|
|||||||
|
|
||||||
static void OPHANDLER_CALL emit_parm2_gvar_num(char *name)
|
static void OPHANDLER_CALL emit_parm2_gvar_num(char *name)
|
||||||
{
|
{
|
||||||
cell val;
|
|
||||||
char *str;
|
|
||||||
ucell p[2];
|
ucell p[2];
|
||||||
symbol *sym;
|
|
||||||
int curp=0;
|
|
||||||
int tok;
|
|
||||||
extern char *sc_tokens[];
|
|
||||||
|
|
||||||
tok=lex(&val,&str);
|
emit_param_data(&p[0],1);
|
||||||
switch (tok) {
|
emit_param_num(&p[1],1);
|
||||||
case tNUMBER:
|
|
||||||
p[0]=val;
|
|
||||||
break;
|
|
||||||
case tSYMBOL:
|
|
||||||
sym=findloc(str);
|
|
||||||
if (sym==NULL)
|
|
||||||
sym=findglb(str,sSTATIC);
|
|
||||||
else if (sym->vclass!=sSTATIC)
|
|
||||||
error(17,str);
|
|
||||||
if (sym==NULL)
|
|
||||||
error(17,str);
|
|
||||||
markusage(sym,uREAD|uWRITTEN);
|
|
||||||
p[0]=sym->addr;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
emit_invalid_token(tSYMBOL,tok);
|
|
||||||
} /* switch */
|
|
||||||
|
|
||||||
tok=lex(&val,&str);
|
|
||||||
if (tok!=tNUMBER)
|
|
||||||
emit_invalid_token(tNUMBER,tok);
|
|
||||||
p[1]=val;
|
|
||||||
outinstr(name,(sizeof p / sizeof p[0]),p);
|
outinstr(name,(sizeof p / sizeof p[0]),p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user