summaryrefslogtreecommitdiff
path: root/parser.y
diff options
context:
space:
mode:
Diffstat (limited to 'parser.y')
-rw-r--r--parser.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/parser.y b/parser.y
index 3ca1c2c..4396fd1 100644
--- a/parser.y
+++ b/parser.y
@@ -88,6 +88,7 @@ void yyerror(const char *msg)
%type <args> a_regp_reg
%type <args> a_reg_regp
%type <args> a_reg_imm
+%type <args> a_reg_pcoff
%type <args> a_pcoff
%type <lval> intlit
@@ -136,7 +137,7 @@ inst:
| T_BLE a_pcoff { $$ = INSTRUCTION_ARGS(BLE, $2); }
| T_BRA a_pcoff { $$ = INSTRUCTION_ARGS(BRA, $2); }
| T_JMP a_regp { $$ = INSTRUCTION_ARGS(JMP, $2); }
- | T_ADDPC a_reg_imm { $$ = INSTRUCTION_ARGS(ADDPC, $2); }
+ | T_ADDPC a_reg_pcoff { $$ = INSTRUCTION_ARGS(ADDPC, $2); }
| T_NOP { $$ = INSTRUCTION(NOP); }
;
@@ -152,6 +153,8 @@ a_reg_regp:
T_SPACE T_REG "," T_REGPTR { $$ = MKARGS($2, $4); }
a_reg_imm:
T_SPACE T_REG "," imm { $$ = MKARGS($2, $4); }
+a_reg_pcoff:
+ T_SPACE T_REG "," pcoff { $$ = MKARGS($2, $4); }
a_pcoff:
T_SPACE pcoff { $$ = MKARGS($2); }