LLDEF|RLDEF, /* EX_OR */
LLDEF|RLDEF, /* EX_XOR */
LLDEF|RLDEF, /* EX_AND */
+ 0, /* EX_ISROM */
};
string salloc(),strcpy(),strcat();
return(undefres);
result.e_v.e_con = gp->gl_rom[node->ex_rnode];
return(result);
+ case EX_ISROM:
+ leaf2=dollar[node->ex_lnode];
+ if (leaf2.e_typ != EV_ADDR)
+ result.e_v.e_con = 0;
+ else
+ result.e_v.e_con = lookglo(leaf2.e_v.e_addr.ea_str) != 0;
+ return(result);
case EX_LOWW:
result.e_v.e_con = saveemp[node->ex_lnode].em_u.em_loper&0xFFFF;
return(result);
%token FROM TO
%token TEST MOVE STACK RETURN
%token PATTERNS PAT WITH EXACT KILLS USES REUSING GEN YIELDS LEAVING
-%token DEFINED SAMESIGN SFIT UFIT ROM LOWW HIGHW
+%token DEFINED SAMESIGN SFIT UFIT ROM LOWW HIGHW ISROM
%token CMPEQ CMPNE CMPLT CMPGT CMPLE CMPGE OR2 AND2 LSHIFT RSHIFT NOT COMP
%token INREG REGVAR REG_ANY REG_FLOAT REG_LOOP REG_POINTER
%token <yy_int> ADORNACCESS
{ $$ = make_expr(TYPBOOL,EX_UFIT,i_expr($3),i_expr($5)); }
| ROM '(' emarg ',' NUMBER ')'
{ $$ = make_expr(TYPINT,EX_ROM,$3-1,chkincl($5,1,3)-1); }
+ | ISROM '(' emarg ')'
+ { $$ = make_expr(TYPINT,EX_ISROM,$3-1,0); }
| LOWW '(' emarg ')'
{ $$ = make_expr(TYPINT,EX_LOWW,$3-1,0); }
| HIGHW '(' emarg ')'