ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/uae_cpu/readcpu.cpp
(Generate patch)

Comparing BasiliskII/src/uae_cpu/readcpu.cpp (file contents):
Revision 1.1 by cebix, 1999-10-03T14:16:26Z vs.
Revision 1.4 by gbeauche, 2001-08-19T16:21:01Z

# Line 130 | Line 130 | struct mnemolookup lookuptab[] = {
130      { i_FBcc, "FBcc" },
131      { i_FSAVE, "FSAVE" },
132      { i_FRESTORE, "FRESTORE" },
133 +
134 +    { i_CINVL, "CINVL" },
135 +    { i_CINVP, "CINVP" },
136 +    { i_CINVA, "CINVA" },
137 +    { i_CPUSHL, "CPUSHL" },
138 +    { i_CPUSHP, "CPUSHP" },
139 +    { i_CPUSHA, "CPUSHA" },
140 +    { i_MOVE16, "MOVE16" },
141 +
142      { i_MMUOP, "MMUOP" },
143      { i_ILLG, "" },
144   };
# Line 339 | Line 348 | static void build_insn (int insn)
348               case 'P': srcmode = Aipi; pos++; break;
349              }
350              break;
351 +        case 'L':
352 +                srcmode = absl;
353 +                break;
354           case '#':
355              switch (opcstr[pos++]) {
356               case 'z': srcmode = imm; break;
# Line 384 | Line 396 | static void build_insn (int insn)
396                      srcpos = bitpos[bitK];
397                  }
398                  break;
399 +                 case 'p': srcmode = immi; srcreg = bitval[bitp];
400 +                if (CPU_EMU_SIZE < 5) {
401 +                        /* 0..3 */
402 +                        srcgather = 1;
403 +                        srctype = 7;
404 +                        srcpos = bitpos[bitp];
405 +                }
406 +                break;
407               default: abort();
408              }
409              break;
# Line 508 | Line 528 | static void build_insn (int insn)
528               case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break;
529               default: abort();
530              }
531 +                if (dstpos < 0 || dstpos >= 32)
532 +                        abort();
533              break;
534           case 'A':
535              destmode = Areg;
536              switch (opcstr[pos++]) {
537               case 'r': destreg = bitval[bitr]; dstgather = 1; dstpos = bitpos[bitr]; break;
538               case 'R': destreg = bitval[bitR]; dstgather = 1; dstpos = bitpos[bitR]; break;
539 +                case 'x': destreg = 0; dstgather = 0; dstpos = 0; break;
540               default: abort();
541              }
542 +                if (dstpos < 0 || dstpos >= 32)
543 +                        abort();
544              switch (opcstr[pos]) {
545               case 'p': destmode = Apdi; pos++; break;
546               case 'P': destmode = Aipi; pos++; break;
547              }
548              break;
549 +        case 'L':
550 +                destmode = absl;
551 +                break;
552           case '#':
553              switch (opcstr[pos++]) {
554               case 'z': destmode = imm; break;
# Line 738 | Line 766 | static void handle_merges (long int opco
766              smsk = 7; sbitdst = 8; break;
767           case 5:
768              smsk = 63; sbitdst = 64; break;
769 +         case 7:
770 +                smsk = 3; sbitdst = 4; break;
771           default:
772              smsk = 0; sbitdst = 0;
773              abort();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines