50 lines
1 KiB
C
50 lines
1 KiB
C
|
|
|
|
operation
|
|
: OP_impl
|
|
{ emit1($1);}
|
|
| OP_branch expr
|
|
{ branch($1, $2);}
|
|
| OP_arithm SIZE '#' expr
|
|
{ encode_imm($1+0x9, $2, $4);}
|
|
| OP_arithm SIZE expr
|
|
{ emit1($1+0x0D);}
|
|
| OP_arithm SIZE expr ',' REG_x
|
|
{ emit1($1+0x1D);}
|
|
| OP_arithm SIZE expr ',' REG_y
|
|
{ emit1($1+0x19);}
|
|
| OP_arithm SIZE '(' expr ',' REG_x ')'
|
|
{ emit1($1+0x01);}
|
|
| OP_arithm SIZE '(' expr ')' ',' REG_y
|
|
{ emit1($1+0x11);}
|
|
| OP_jump expr
|
|
{ emit1($1);}
|
|
| OP_jump '(' expr ')'
|
|
{ emit1($1+0x20);}
|
|
| OP_jsr expr
|
|
{ emit1($1);}
|
|
| OP_rol REG_acc
|
|
{ emit1($1+0x0A);}
|
|
| OP_rol SIZE expr
|
|
{ emit1($1+0x0E);}
|
|
| OP_rol SIZE expr ',' REG_x
|
|
{ emit1($1+0x1E);}
|
|
| OP_bit SIZE expr
|
|
{ emit1($1);}
|
|
| OP_cpx SIZE '#' expr
|
|
{ emit1($1);}
|
|
| OP_cpx SIZE expr
|
|
{ emit1($1+0x0C);}
|
|
| OP_inc SIZE expr
|
|
{ emit1($1+0x0E);}
|
|
| OP_inc SIZE expr ',' REG_x
|
|
{ emit1($1+0x1E);}
|
|
| OP_stx SIZE expr
|
|
{ emit1($1);}
|
|
| OP_ldx SIZE '#' expr
|
|
{ emit1($1);}
|
|
| OP_ldx SIZE expr
|
|
{ emit1($1+0x0C);}
|
|
| OP_ldx SIZE expr ',' REG_x
|
|
{ emit1($1+0x1C);}
|
|
; |