dc: without -x, do not parse extended regs: 's p' means: store to ' ' reg, print

function                                             old     new   delta
zbc_lex_next                                        2240    2233      -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-7)               Total: -7 bytes
   text	   data	    bss	    dec	    hex	filename
 981437	    485	   7296	 989218	  f1822	busybox_old
 981412	    485	   7296	 989193	  f1809	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-12-24 01:53:55 +01:00
parent 73b2c60825
commit 81293c8af0

View File

@ -3352,16 +3352,13 @@ static BC_STATUS zbc_lex_token(BcLex *l)
#if ENABLE_DC
static BC_STATUS zdc_lex_register(BcLex *l)
{
if (isspace(l->buf[l->i - 1])) {
bc_lex_whitespace(l);
++l->i;
if (!G_exreg)
RETURN_STATUS(bc_error("extended register"));
if (G_exreg && isspace(l->buf[l->i])) {
bc_lex_whitespace(l); // eats whitespace (but not newline)
l->i++; // bc_lex_name() expects this
bc_lex_name(l);
}
else {
} else {
bc_vec_pop_all(&l->t.v);
bc_vec_push(&l->t.v, &l->buf[l->i - 1]);
bc_vec_push(&l->t.v, &l->buf[l->i++]);
bc_vec_pushZeroByte(&l->t.v);
l->t.t = BC_LEX_NAME;
}
@ -3425,8 +3422,8 @@ static BC_STATUS zdc_lex_token(BcLex *l)
BC_LEX_STORE_PUSH,
};
BcStatus s = BC_STATUS_SUCCESS;
char c = l->buf[l->i++], c2;
BcStatus s;
char c, c2;
size_t i;
for (i = 0; i < ARRAY_SIZE(dc_lex_regs); ++i) {
@ -3434,6 +3431,8 @@ static BC_STATUS zdc_lex_token(BcLex *l)
RETURN_STATUS(zdc_lex_register(l));
}
s = BC_STATUS_SUCCESS;
c = l->buf[l->i++];
if (c >= '%' && c <= '~'
&& (l->t.t = dc_char_to_LEX[c - '%']) != BC_LEX_INVALID
) {
@ -3462,7 +3461,7 @@ static BC_STATUS zdc_lex_token(BcLex *l)
case '\f':
case '\r':
case ' ':
l->newline = (c == '\n');
l->newline = 0; // was (c == '\n')
bc_lex_whitespace(l);
break;
case '!':