Hi,

Juste like I added the possibility of declaring many registers
variables with one .sym directive, I am working on returning or
yielding in one line so one can write:

    .return -1, name

instead of:

    .pcc_begin_return
    .return -1
    .return name
    .pcc_end_return


Sadly, the .return directive and other are overloaded to express
user stack operations. Worse, unlike everywhere else, the
directives vary for the same operation (svaing or restoring)
depending if it operates on a symbolic register or an explicite
one. Besides getting in the way [1] of what I am doing, this
seems to me very wrong. So I would like to suppress the following
productions at the risk of breaking some code. I don't see why
one would want to use aseembly directive instead of the regular
assembler operation.


   | PARAM reg                        { $$ = MK_I(interp, cur_unit, "restore", 1, $2); 
}
   | RESULT var                       { $$ = MK_I(interp, cur_unit, "restore", 1, $2); 
}
   | ARG var                          { $$ = MK_I(interp, cur_unit, "save", 1, $2); }
   | RETURN var                       { $$ = MK_I(interp, cur_unit, "save", 1, $2); }

[1] With the surrounding pair .pcc_begin_return .pcc_end_return,
as far as the parser was concerned there was no ambiguity about
the meaning of the directives.


Comments?

--
 stef

Reply via email to