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 |
|
}; |
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; |
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; |
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; |
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(); |