Pete Lomax <[EMAIL PROTECTED]> wrote:
> ... only to find there are no such equivalents for ne, gt, and ge.

I've added these missing ops now. *But* there are a lot more missing:

* all <op>_p_nc?_ic     # <op> := eq, ne, lt, le, gt, ge
* all <op>_p_sc?_ic
* cmp_i_p_nc?
* cmp_i_p_sc?

And we don't support Perl's '==' vs 'eq' opcodes. All current ops try to
do the right thing, but this is mainly a numeric comparison, except for
the obvious <op>_sc?_sc?_ic case.

So we probably need more:

* <op>_str_p_*
* cmp_str_i_p_*
* <op>_int_p_*
* cmp_int_p_*

A Perl compiler will probably emit only the <op>_str or <op>_int
variants. The opcode replacement inside imcc can emit an error or
warning, if the opcodes have the wrong operands, and can replace the
opcodes with the plain variants without _str or _int suffix, if there is
no matching opcode.

Comments welcome

leo

Reply via email to