]> err.no Git - linux-2.6/blobdiff - drivers/scsi/aic7xxx/aicasm/aicasm_gram.y
Merge git://git.infradead.org/mtd-2.6
[linux-2.6] / drivers / scsi / aic7xxx / aicasm / aicasm_gram.y
index 67e046d966254929af3e88849bb7c8baa88fcaf5..6066998ed5624388ccb2f5802094a0cb848a9c5f 100644 (file)
@@ -38,7 +38,7 @@
  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGES.
  *
- * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#29 $
+ * $Id: //depot/aic7xxx/aic7xxx/aicasm/aicasm_gram.y#30 $
  *
  * $FreeBSD$
  */
@@ -106,6 +106,7 @@ static void make_expression(expression_t *immed, int value);
 static void add_conditional(symbol_t *symbol);
 static void add_version(const char *verstring);
 static int  is_download_const(expression_t *immed);
+void yyerror(const char *string);
 
 #define SRAM_SYMNAME "SRAM_BASE"
 #define SCB_SYMNAME "SCB_BASE"
@@ -157,6 +158,8 @@ static int  is_download_const(expression_t *immed);
 
 %token T_END_CS
 
+%token T_PAD_PAGE
+
 %token T_FIELD
 
 %token T_ENUM
@@ -189,6 +192,10 @@ static int  is_download_const(expression_t *immed);
 
 %token <value> T_OR
 
+/* 16 bit extensions */
+%token <value> T_OR16 T_AND16 T_XOR16 T_ADD16
+%token <value> T_ADC16 T_MVI16 T_TEST16 T_CMP16 T_CMPXCHG
+
 %token T_RET
 
 %token T_NOP
@@ -207,7 +214,7 @@ static int  is_download_const(expression_t *immed);
 
 %type <expression> expression immediate immediate_or_a
 
-%type <value> export ret f1_opcode f2_opcode jmp_jc_jnc_call jz_jnz je_jne
+%type <value> export ret f1_opcode f2_opcode f4_opcode jmp_jc_jnc_call jz_jnz je_jne
 
 %type <value> mode_value mode_list macro_arglist
 
@@ -1304,6 +1311,15 @@ f2_opcode:
 |      T_ROR { $$ = AIC_OP_ROR; }
 ;
 
+f4_opcode:
+       T_OR16  { $$ = AIC_OP_OR16; }
+|      T_AND16 { $$ = AIC_OP_AND16; }
+|      T_XOR16 { $$ = AIC_OP_XOR16; }
+|      T_ADD16 { $$ = AIC_OP_ADD16; }
+|      T_ADC16 { $$ = AIC_OP_ADC16; }
+|      T_MVI16 { $$ = AIC_OP_MVI16; }
+;
+
 code:
        f2_opcode destination ',' expression opt_source ret ';'
        {