diff options
| author | forsyth <forsyth@vitanuova.com> | 2010-04-27 12:51:13 +0100 |
|---|---|---|
| committer | forsyth <forsyth@vitanuova.com> | 2010-04-27 12:51:13 +0100 |
| commit | d67b7dad77bb8aa973dad1f7c3ab0c309b114278 (patch) | |
| tree | 6794120fb327d6de19cf05eed53f80d877781a3e /utils/qa/a.y | |
| parent | 09da2e137d5eb0c940df35d989e4c31ec0654fc4 (diff) | |
20100427-1251
Diffstat (limited to 'utils/qa/a.y')
| -rw-r--r-- | utils/qa/a.y | 30 |
1 files changed, 27 insertions, 3 deletions
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 <lval> LNOP LEND LRETT LWORD LTEXT LDATA LRETRN %token <lval> LCONST LSP LSB LFP LPC LCREG LFLUSH %token <lval> LREG LFREG LR LCR LF LFPSCR -%token <lval> LLR LCTR LSPR LSPREG LSEG LMSR +%token <lval> LLR LCTR LSPR LSPREG LSEG LMSR LDCR %token <lval> LSCHED LXLD LXST LXOP LXMV -%token <lval> LRLWM LMOVMW LMOVEM LMOVFL LMTFSB LMA +%token <lval> LRLWM LMOVMW LMOVEM LMOVFL LMTFSB LMA LFMOVX %token <dval> LFCONST %token <sval> LSCONST %token <sym> LNAME LLAB LVAR @@ -95,7 +95,7 @@ inst: outcode($1, &$2, NREG, &$4); } /* - * load floats + * load and store floats */ | LFMOV addr ',' freg { @@ -122,6 +122,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 */ | LMOVW rreg ',' addr @@ -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: |
