From d67b7dad77bb8aa973dad1f7c3ab0c309b114278 Mon Sep 17 00:00:00 2001 From: forsyth Date: Tue, 27 Apr 2010 12:51:13 +0100 Subject: 20100427-1251 --- utils/qa/a.y | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'utils/qa/a.y') diff --git a/utils/qa/a.y b/utils/qa/a.y index 3474ea0d..ee425949 100644 --- a/utils/qa/a.y +++ b/utils/qa/a.y @@ -20,9 +20,9 @@ %token LNOP LEND LRETT LWORD LTEXT LDATA LRETRN %token LCONST LSP LSB LFP LPC LCREG LFLUSH %token LREG LFREG LR LCR LF LFPSCR -%token LLR LCTR LSPR LSPREG LSEG LMSR +%token LLR LCTR LSPR LSPREG LSEG LMSR LDCR %token LSCHED LXLD LXST LXOP LXMV -%token LRLWM LMOVMW LMOVEM LMOVFL LMTFSB LMA +%token LRLWM LMOVMW LMOVEM LMOVFL LMTFSB LMA LFMOVX %token LFCONST %token LSCONST %token LNAME LLAB LVAR @@ -95,7 +95,7 @@ inst: outcode($1, &$2, NREG, &$4); } /* - * load floats + * load and store floats */ | LFMOV addr ',' freg { @@ -121,6 +121,17 @@ inst: { outcode($1, &$2, NREG, &$4); } +/* + * load and store floats, indexed only + */ +| LFMOVX regaddr ',' freg + { + outcode($1, &$2, NREG, &$4); + } +| LFMOVX freg ',' regaddr + { + outcode($1, &$2, NREG, &$4); + } /* * store ints and bytes */ @@ -697,6 +708,19 @@ psr: $$.type = $1; $$.offset = $3; } +| LDCR '(' con ')' + { + $$ = nullgen; + $$.type = $1; + $$.offset = $3; + } +| LDCR '(' sreg ')' + { + $$ = nullgen; + $$.type = $1; + $$.reg = $3; + $$.offset = 0; + } | msr seg: -- cgit v1.2.3