| OLD | NEW |
| 1 #line 1 "rx-decode.opc" | 1 #line 1 "rx-decode.opc" |
| 2 /* -*- c -*- */ | 2 /* -*- c -*- */ |
| 3 #include "sysdep.h" |
| 3 #include <stdio.h> | 4 #include <stdio.h> |
| 4 #include <stdlib.h> | 5 #include <stdlib.h> |
| 5 #include <string.h> | 6 #include <string.h> |
| 6 | |
| 7 #include "config.h" | |
| 8 #include "ansidecl.h" | 7 #include "ansidecl.h" |
| 9 #include "opcode/rx.h" | 8 #include "opcode/rx.h" |
| 10 | 9 |
| 11 #define RX_OPCODE_BIG_ENDIAN 0 | 10 #define RX_OPCODE_BIG_ENDIAN 0 |
| 12 | 11 |
| 13 typedef struct | 12 typedef struct |
| 14 { | 13 { |
| 15 RX_Opcode_Decoded * rx; | 14 RX_Opcode_Decoded * rx; |
| 16 int (* getbyte)(void *); | 15 int (* getbyte)(void *); |
| 17 void * ptr; | 16 void * ptr; |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 case 0x00: | 263 case 0x00: |
| 265 { | 264 { |
| 266 /** 0000 0000 brk */ | 265 /** 0000 0000 brk */ |
| 267 if (trace) | 266 if (trace) |
| 268 { | 267 { |
| 269 printf ("\033[33m%s\033[0m %02x\n", | 268 printf ("\033[33m%s\033[0m %02x\n", |
| 270 "/** 0000 0000 brk */", | 269 "/** 0000 0000 brk */", |
| 271 op[0]); | 270 op[0]); |
| 272 } | 271 } |
| 273 SYNTAX("brk"); | 272 SYNTAX("brk"); |
| 274 #line 943 "rx-decode.opc" | 273 #line 955 "rx-decode.opc" |
| 275 ID(brk); | 274 ID(brk); |
| 276 | 275 |
| 277 } | 276 } |
| 278 break; | 277 break; |
| 279 case 0x01: | 278 case 0x01: |
| 280 { | 279 { |
| 281 /** 0000 0001 dbt */ | 280 /** 0000 0001 dbt */ |
| 282 if (trace) | 281 if (trace) |
| 283 { | 282 { |
| 284 printf ("\033[33m%s\033[0m %02x\n", | 283 printf ("\033[33m%s\033[0m %02x\n", |
| 285 "/** 0000 0001 dbt */", | 284 "/** 0000 0001 dbt */", |
| 286 op[0]); | 285 op[0]); |
| 287 } | 286 } |
| 288 SYNTAX("dbt"); | 287 SYNTAX("dbt"); |
| 289 #line 946 "rx-decode.opc" | 288 #line 958 "rx-decode.opc" |
| 290 ID(dbt); | 289 ID(dbt); |
| 291 | 290 |
| 292 } | 291 } |
| 293 break; | 292 break; |
| 294 case 0x02: | 293 case 0x02: |
| 295 { | 294 { |
| 296 /** 0000 0010 rts */ | 295 /** 0000 0010 rts */ |
| 297 if (trace) | 296 if (trace) |
| 298 { | 297 { |
| 299 printf ("\033[33m%s\033[0m %02x\n", | 298 printf ("\033[33m%s\033[0m %02x\n", |
| 300 "/** 0000 0010 rts */", | 299 "/** 0000 0010 rts */", |
| 301 op[0]); | 300 op[0]); |
| 302 } | 301 } |
| 303 SYNTAX("rts"); | 302 SYNTAX("rts"); |
| 304 #line 732 "rx-decode.opc" | 303 #line 744 "rx-decode.opc" |
| 305 ID(rts); | 304 ID(rts); |
| 306 | 305 |
| 307 /*----------------------------------------------------------------------
*/ | 306 /*----------------------------------------------------------------------
*/ |
| 308 /* NOP */ | 307 /* NOP */ |
| 309 | 308 |
| 310 } | 309 } |
| 311 break; | 310 break; |
| 312 case 0x03: | 311 case 0x03: |
| 313 { | 312 { |
| 314 /** 0000 0011 nop */ | 313 /** 0000 0011 nop */ |
| 315 if (trace) | 314 if (trace) |
| 316 { | 315 { |
| 317 printf ("\033[33m%s\033[0m %02x\n", | 316 printf ("\033[33m%s\033[0m %02x\n", |
| 318 "/** 0000 0011 nop */", | 317 "/** 0000 0011 nop */", |
| 319 op[0]); | 318 op[0]); |
| 320 } | 319 } |
| 321 SYNTAX("nop"); | 320 SYNTAX("nop"); |
| 322 #line 738 "rx-decode.opc" | 321 #line 750 "rx-decode.opc" |
| 323 ID(nop); | 322 ID(nop); |
| 324 | 323 |
| 325 /*----------------------------------------------------------------------
*/ | 324 /*----------------------------------------------------------------------
*/ |
| 326 /* STRING FUNCTIONS
*/ | 325 /* STRING FUNCTIONS
*/ |
| 327 | 326 |
| 328 } | 327 } |
| 329 break; | 328 break; |
| 330 case 0x04: | 329 case 0x04: |
| 331 { | 330 { |
| 332 /** 0000 0100 bra.a %a0 */ | 331 /** 0000 0100 bra.a %a0 */ |
| 333 if (trace) | 332 if (trace) |
| 334 { | 333 { |
| 335 printf ("\033[33m%s\033[0m %02x\n", | 334 printf ("\033[33m%s\033[0m %02x\n", |
| 336 "/** 0000 0100 bra.a %a0 */", | 335 "/** 0000 0100 bra.a %a0 */", |
| 337 op[0]); | 336 op[0]); |
| 338 } | 337 } |
| 339 SYNTAX("bra.a %a0"); | 338 SYNTAX("bra.a %a0"); |
| 340 #line 710 "rx-decode.opc" | 339 #line 722 "rx-decode.opc" |
| 341 ID(branch); DC(pc + IMMex(3)); | 340 ID(branch); DC(pc + IMMex(3)); |
| 342 | 341 |
| 343 } | 342 } |
| 344 break; | 343 break; |
| 345 case 0x05: | 344 case 0x05: |
| 346 { | 345 { |
| 347 /** 0000 0101 bsr.a %a0 */ | 346 /** 0000 0101 bsr.a %a0 */ |
| 348 if (trace) | 347 if (trace) |
| 349 { | 348 { |
| 350 printf ("\033[33m%s\033[0m %02x\n", | 349 printf ("\033[33m%s\033[0m %02x\n", |
| 351 "/** 0000 0101 bsr.a %a0 */", | 350 "/** 0000 0101 bsr.a %a0 */", |
| 352 op[0]); | 351 op[0]); |
| 353 } | 352 } |
| 354 SYNTAX("bsr.a %a0"); | 353 SYNTAX("bsr.a %a0"); |
| 355 #line 726 "rx-decode.opc" | 354 #line 738 "rx-decode.opc" |
| 356 ID(jsr); DC(pc + IMMex(3)); | 355 ID(jsr); DC(pc + IMMex(3)); |
| 357 | 356 |
| 358 } | 357 } |
| 359 break; | 358 break; |
| 360 case 0x06: | 359 case 0x06: |
| 361 GETBYTE (); | 360 GETBYTE (); |
| 362 switch (op[1] & 0xff) | 361 switch (op[1] & 0xff) |
| 363 { | 362 { |
| 364 case 0x00: | 363 case 0x00: |
| 365 GETBYTE (); | 364 GETBYTE (); |
| 366 switch (op[2] & 0x00) | 365 switch (op[2] & 0x00) |
| 367 { | 366 { |
| 368 case 0x00: | 367 case 0x00: |
| 369 op_semantics_1: | 368 op_semantics_1: |
| 370 { | 369 { |
| 371 /** 0000 0110 mx00 00ss rsrc rdst sub
%2%S2, %1 */ | 370 /** 0000 0110 mx00 00ss rsrc rdst sub
%2%S2, %1 */ |
| 372 #line 506 "rx-decode.opc" | 371 #line 518 "rx-decode.opc" |
| 373 int mx AU = (op[1] >> 6) & 0x03; | 372 int mx AU = (op[1] >> 6) & 0x03; |
| 374 #line 506 "rx-decode.opc" | 373 #line 518 "rx-decode.opc" |
| 375 int ss AU = op[1] & 0x03; | 374 int ss AU = op[1] & 0x03; |
| 376 #line 506 "rx-decode.opc" | 375 #line 518 "rx-decode.opc" |
| 377 int rsrc AU = (op[2] >> 4) & 0x0f; | 376 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 378 #line 506 "rx-decode.opc" | 377 #line 518 "rx-decode.opc" |
| 379 int rdst AU = op[2] & 0x0f; | 378 int rdst AU = op[2] & 0x0f; |
| 380 if (trace) | 379 if (trace) |
| 381 { | 380 { |
| 382 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 381 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 383 "/** 0000 0110 mx00 00ss rsrc rdst
sub %2%S2, %1 */", | 382 "/** 0000 0110 mx00 00ss rsrc rdst
sub %2%S2, %1 */", |
| 384 op[0], op[1], op[2]); | 383 op[0], op[1], op[2]); |
| 385 printf (" mx = 0x%x,", mx); | 384 printf (" mx = 0x%x,", mx); |
| 386 printf (" ss = 0x%x,", ss); | 385 printf (" ss = 0x%x,", ss); |
| 387 printf (" rsrc = 0x%x,", rsrc); | 386 printf (" rsrc = 0x%x,", rsrc); |
| 388 printf (" rdst = 0x%x\n", rdst); | 387 printf (" rdst = 0x%x\n", rdst); |
| 389 } | 388 } |
| 390 SYNTAX("sub %2%S2, %1"); | 389 SYNTAX("sub %2%S2, %1"); |
| 391 #line 506 "rx-decode.opc" | 390 #line 518 "rx-decode.opc" |
| 392 ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); DR(rdst); F_OSZC; | 391 ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); DR(rdst); F_OSZC; |
| 393 | 392 |
| 394 } | 393 } |
| 395 break; | 394 break; |
| 396 } | 395 } |
| 397 break; | 396 break; |
| 398 case 0x01: | 397 case 0x01: |
| 399 GETBYTE (); | 398 GETBYTE (); |
| 400 switch (op[2] & 0x00) | 399 switch (op[2] & 0x00) |
| 401 { | 400 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 423 } | 422 } |
| 424 break; | 423 break; |
| 425 case 0x04: | 424 case 0x04: |
| 426 GETBYTE (); | 425 GETBYTE (); |
| 427 switch (op[2] & 0x00) | 426 switch (op[2] & 0x00) |
| 428 { | 427 { |
| 429 case 0x00: | 428 case 0x00: |
| 430 op_semantics_2: | 429 op_semantics_2: |
| 431 { | 430 { |
| 432 /** 0000 0110 mx00 01ss rsrc rdst cmp %2%S2, %
1 */ | 431 /** 0000 0110 mx00 01ss rsrc rdst cmp %2%S2, %
1 */ |
| 433 #line 494 "rx-decode.opc" | 432 #line 506 "rx-decode.opc" |
| 434 int mx AU = (op[1] >> 6) & 0x03; | 433 int mx AU = (op[1] >> 6) & 0x03; |
| 435 #line 494 "rx-decode.opc" | 434 #line 506 "rx-decode.opc" |
| 436 int ss AU = op[1] & 0x03; | 435 int ss AU = op[1] & 0x03; |
| 437 #line 494 "rx-decode.opc" | 436 #line 506 "rx-decode.opc" |
| 438 int rsrc AU = (op[2] >> 4) & 0x0f; | 437 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 439 #line 494 "rx-decode.opc" | 438 #line 506 "rx-decode.opc" |
| 440 int rdst AU = op[2] & 0x0f; | 439 int rdst AU = op[2] & 0x0f; |
| 441 if (trace) | 440 if (trace) |
| 442 { | 441 { |
| 443 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 442 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 444 "/** 0000 0110 mx00 01ss rsrc rdst
cmp %2%S2, %1 */", | 443 "/** 0000 0110 mx00 01ss rsrc rdst
cmp %2%S2, %1 */", |
| 445 op[0], op[1], op[2]); | 444 op[0], op[1], op[2]); |
| 446 printf (" mx = 0x%x,", mx); | 445 printf (" mx = 0x%x,", mx); |
| 447 printf (" ss = 0x%x,", ss); | 446 printf (" ss = 0x%x,", ss); |
| 448 printf (" rsrc = 0x%x,", rsrc); | 447 printf (" rsrc = 0x%x,", rsrc); |
| 449 printf (" rdst = 0x%x\n", rdst); | 448 printf (" rdst = 0x%x\n", rdst); |
| 450 } | 449 } |
| 451 SYNTAX("cmp %2%S2, %1"); | 450 SYNTAX("cmp %2%S2, %1"); |
| 452 #line 494 "rx-decode.opc" | 451 #line 506 "rx-decode.opc" |
| 453 ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); F_OSZC; | 452 ID(sub); S2Pm(ss, rsrc, mx); SR(rdst); F_OSZC; |
| 454 | 453 |
| 455 /*----------------------------------------------------------
------------*/ | 454 /*----------------------------------------------------------
------------*/ |
| 456 /* SUB
*/ | 455 /* SUB
*/ |
| 457 | 456 |
| 458 } | 457 } |
| 459 break; | 458 break; |
| 460 } | 459 } |
| 461 break; | 460 break; |
| 462 case 0x05: | 461 case 0x05: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 487 } | 486 } |
| 488 break; | 487 break; |
| 489 case 0x08: | 488 case 0x08: |
| 490 GETBYTE (); | 489 GETBYTE (); |
| 491 switch (op[2] & 0x00) | 490 switch (op[2] & 0x00) |
| 492 { | 491 { |
| 493 case 0x00: | 492 case 0x00: |
| 494 op_semantics_3: | 493 op_semantics_3: |
| 495 { | 494 { |
| 496 /** 0000 0110 mx00 10ss rsrc rdst add %1%S1, %0 */ | 495 /** 0000 0110 mx00 10ss rsrc rdst add %1%S1, %0 */ |
| 497 #line 470 "rx-decode.opc" | 496 #line 482 "rx-decode.opc" |
| 498 int mx AU = (op[1] >> 6) & 0x03; | 497 int mx AU = (op[1] >> 6) & 0x03; |
| 499 #line 470 "rx-decode.opc" | 498 #line 482 "rx-decode.opc" |
| 500 int ss AU = op[1] & 0x03; | 499 int ss AU = op[1] & 0x03; |
| 501 #line 470 "rx-decode.opc" | 500 #line 482 "rx-decode.opc" |
| 502 int rsrc AU = (op[2] >> 4) & 0x0f; | 501 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 503 #line 470 "rx-decode.opc" | 502 #line 482 "rx-decode.opc" |
| 504 int rdst AU = op[2] & 0x0f; | 503 int rdst AU = op[2] & 0x0f; |
| 505 if (trace) | 504 if (trace) |
| 506 { | 505 { |
| 507 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 506 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 508 "/** 0000 0110 mx00 10ss rsrc rdst add
%1%S1, %0 */", | 507 "/** 0000 0110 mx00 10ss rsrc rdst add
%1%S1, %0 */", |
| 509 op[0], op[1], op[2]); | 508 op[0], op[1], op[2]); |
| 510 printf (" mx = 0x%x,", mx); | 509 printf (" mx = 0x%x,", mx); |
| 511 printf (" ss = 0x%x,", ss); | 510 printf (" ss = 0x%x,", ss); |
| 512 printf (" rsrc = 0x%x,", rsrc); | 511 printf (" rsrc = 0x%x,", rsrc); |
| 513 printf (" rdst = 0x%x\n", rdst); | 512 printf (" rdst = 0x%x\n", rdst); |
| 514 } | 513 } |
| 515 SYNTAX("add %1%S1, %0"); | 514 SYNTAX("add %1%S1, %0"); |
| 516 #line 470 "rx-decode.opc" | 515 #line 482 "rx-decode.opc" |
| 517 ID(add); SPm(ss, rsrc, mx); DR(rdst); F_OSZC; | 516 ID(add); SPm(ss, rsrc, mx); DR(rdst); F_OSZC; |
| 518 | 517 |
| 519 } | 518 } |
| 520 break; | 519 break; |
| 521 } | 520 } |
| 522 break; | 521 break; |
| 523 case 0x09: | 522 case 0x09: |
| 524 GETBYTE (); | 523 GETBYTE (); |
| 525 switch (op[2] & 0x00) | 524 switch (op[2] & 0x00) |
| 526 { | 525 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 548 } | 547 } |
| 549 break; | 548 break; |
| 550 case 0x0c: | 549 case 0x0c: |
| 551 GETBYTE (); | 550 GETBYTE (); |
| 552 switch (op[2] & 0x00) | 551 switch (op[2] & 0x00) |
| 553 { | 552 { |
| 554 case 0x00: | 553 case 0x00: |
| 555 op_semantics_4: | 554 op_semantics_4: |
| 556 { | 555 { |
| 557 /** 0000 0110 mx00 11ss rsrc rdst mul %1%S1, %0 */ | 556 /** 0000 0110 mx00 11ss rsrc rdst mul %1%S1, %0 */ |
| 558 #line 575 "rx-decode.opc" | 557 #line 587 "rx-decode.opc" |
| 559 int mx AU = (op[1] >> 6) & 0x03; | 558 int mx AU = (op[1] >> 6) & 0x03; |
| 560 #line 575 "rx-decode.opc" | 559 #line 587 "rx-decode.opc" |
| 561 int ss AU = op[1] & 0x03; | 560 int ss AU = op[1] & 0x03; |
| 562 #line 575 "rx-decode.opc" | 561 #line 587 "rx-decode.opc" |
| 563 int rsrc AU = (op[2] >> 4) & 0x0f; | 562 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 564 #line 575 "rx-decode.opc" | 563 #line 587 "rx-decode.opc" |
| 565 int rdst AU = op[2] & 0x0f; | 564 int rdst AU = op[2] & 0x0f; |
| 566 if (trace) | 565 if (trace) |
| 567 { | 566 { |
| 568 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 567 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 569 "/** 0000 0110 mx00 11ss rsrc rdst mul
%1%S1, %0 */", | 568 "/** 0000 0110 mx00 11ss rsrc rdst mul
%1%S1, %0 */", |
| 570 op[0], op[1], op[2]); | 569 op[0], op[1], op[2]); |
| 571 printf (" mx = 0x%x,", mx); | 570 printf (" mx = 0x%x,", mx); |
| 572 printf (" ss = 0x%x,", ss); | 571 printf (" ss = 0x%x,", ss); |
| 573 printf (" rsrc = 0x%x,", rsrc); | 572 printf (" rsrc = 0x%x,", rsrc); |
| 574 printf (" rdst = 0x%x\n", rdst); | 573 printf (" rdst = 0x%x\n", rdst); |
| 575 } | 574 } |
| 576 SYNTAX("mul %1%S1, %0"); | 575 SYNTAX("mul %1%S1, %0"); |
| 577 #line 575 "rx-decode.opc" | 576 #line 587 "rx-decode.opc" |
| 578 ID(mul); SPm(ss, rsrc, mx); DR(rdst); F_____; | 577 ID(mul); SPm(ss, rsrc, mx); DR(rdst); F_____; |
| 579 | 578 |
| 580 } | 579 } |
| 581 break; | 580 break; |
| 582 } | 581 } |
| 583 break; | 582 break; |
| 584 case 0x0d: | 583 case 0x0d: |
| 585 GETBYTE (); | 584 GETBYTE (); |
| 586 switch (op[2] & 0x00) | 585 switch (op[2] & 0x00) |
| 587 { | 586 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 609 } | 608 } |
| 610 break; | 609 break; |
| 611 case 0x10: | 610 case 0x10: |
| 612 GETBYTE (); | 611 GETBYTE (); |
| 613 switch (op[2] & 0x00) | 612 switch (op[2] & 0x00) |
| 614 { | 613 { |
| 615 case 0x00: | 614 case 0x00: |
| 616 op_semantics_5: | 615 op_semantics_5: |
| 617 { | 616 { |
| 618 /** 0000 0110 mx01 00ss rsrc rdst and %1%S1, %0 */ | 617 /** 0000 0110 mx01 00ss rsrc rdst and %1%S1, %0 */ |
| 619 #line 383 "rx-decode.opc" | 618 #line 395 "rx-decode.opc" |
| 620 int mx AU = (op[1] >> 6) & 0x03; | 619 int mx AU = (op[1] >> 6) & 0x03; |
| 621 #line 383 "rx-decode.opc" | 620 #line 395 "rx-decode.opc" |
| 622 int ss AU = op[1] & 0x03; | 621 int ss AU = op[1] & 0x03; |
| 623 #line 383 "rx-decode.opc" | 622 #line 395 "rx-decode.opc" |
| 624 int rsrc AU = (op[2] >> 4) & 0x0f; | 623 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 625 #line 383 "rx-decode.opc" | 624 #line 395 "rx-decode.opc" |
| 626 int rdst AU = op[2] & 0x0f; | 625 int rdst AU = op[2] & 0x0f; |
| 627 if (trace) | 626 if (trace) |
| 628 { | 627 { |
| 629 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 628 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 630 "/** 0000 0110 mx01 00ss rsrc rdst and
%1%S1, %0 */", | 629 "/** 0000 0110 mx01 00ss rsrc rdst and
%1%S1, %0 */", |
| 631 op[0], op[1], op[2]); | 630 op[0], op[1], op[2]); |
| 632 printf (" mx = 0x%x,", mx); | 631 printf (" mx = 0x%x,", mx); |
| 633 printf (" ss = 0x%x,", ss); | 632 printf (" ss = 0x%x,", ss); |
| 634 printf (" rsrc = 0x%x,", rsrc); | 633 printf (" rsrc = 0x%x,", rsrc); |
| 635 printf (" rdst = 0x%x\n", rdst); | 634 printf (" rdst = 0x%x\n", rdst); |
| 636 } | 635 } |
| 637 SYNTAX("and %1%S1, %0"); | 636 SYNTAX("and %1%S1, %0"); |
| 638 #line 383 "rx-decode.opc" | 637 #line 395 "rx-decode.opc" |
| 639 ID(and); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; | 638 ID(and); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; |
| 640 | 639 |
| 641 } | 640 } |
| 642 break; | 641 break; |
| 643 } | 642 } |
| 644 break; | 643 break; |
| 645 case 0x11: | 644 case 0x11: |
| 646 GETBYTE (); | 645 GETBYTE (); |
| 647 switch (op[2] & 0x00) | 646 switch (op[2] & 0x00) |
| 648 { | 647 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 670 } | 669 } |
| 671 break; | 670 break; |
| 672 case 0x14: | 671 case 0x14: |
| 673 GETBYTE (); | 672 GETBYTE (); |
| 674 switch (op[2] & 0x00) | 673 switch (op[2] & 0x00) |
| 675 { | 674 { |
| 676 case 0x00: | 675 case 0x00: |
| 677 op_semantics_6: | 676 op_semantics_6: |
| 678 { | 677 { |
| 679 /** 0000 0110 mx01 01ss rsrc rdst or
%1%S1, %0 */ | 678 /** 0000 0110 mx01 01ss rsrc rdst or
%1%S1, %0 */ |
| 680 #line 401 "rx-decode.opc" | 679 #line 413 "rx-decode.opc" |
| 681 int mx AU = (op[1] >> 6) & 0x03; | 680 int mx AU = (op[1] >> 6) & 0x03; |
| 682 #line 401 "rx-decode.opc" | 681 #line 413 "rx-decode.opc" |
| 683 int ss AU = op[1] & 0x03; | 682 int ss AU = op[1] & 0x03; |
| 684 #line 401 "rx-decode.opc" | 683 #line 413 "rx-decode.opc" |
| 685 int rsrc AU = (op[2] >> 4) & 0x0f; | 684 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 686 #line 401 "rx-decode.opc" | 685 #line 413 "rx-decode.opc" |
| 687 int rdst AU = op[2] & 0x0f; | 686 int rdst AU = op[2] & 0x0f; |
| 688 if (trace) | 687 if (trace) |
| 689 { | 688 { |
| 690 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 689 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 691 "/** 0000 0110 mx01 01ss rsrc rdst
or %1%S1, %0 */", | 690 "/** 0000 0110 mx01 01ss rsrc rdst
or %1%S1, %0 */", |
| 692 op[0], op[1], op[2]); | 691 op[0], op[1], op[2]); |
| 693 printf (" mx = 0x%x,", mx); | 692 printf (" mx = 0x%x,", mx); |
| 694 printf (" ss = 0x%x,", ss); | 693 printf (" ss = 0x%x,", ss); |
| 695 printf (" rsrc = 0x%x,", rsrc); | 694 printf (" rsrc = 0x%x,", rsrc); |
| 696 printf (" rdst = 0x%x\n", rdst); | 695 printf (" rdst = 0x%x\n", rdst); |
| 697 } | 696 } |
| 698 SYNTAX("or %1%S1, %0"); | 697 SYNTAX("or %1%S1, %0"); |
| 699 #line 401 "rx-decode.opc" | 698 #line 413 "rx-decode.opc" |
| 700 ID(or); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; | 699 ID(or); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; |
| 701 | 700 |
| 702 } | 701 } |
| 703 break; | 702 break; |
| 704 } | 703 } |
| 705 break; | 704 break; |
| 706 case 0x15: | 705 case 0x15: |
| 707 GETBYTE (); | 706 GETBYTE (); |
| 708 switch (op[2] & 0x00) | 707 switch (op[2] & 0x00) |
| 709 { | 708 { |
| (...skipping 25 matching lines...) Expand all Loading... |
| 735 switch (op[2] & 0xff) | 734 switch (op[2] & 0xff) |
| 736 { | 735 { |
| 737 case 0x00: | 736 case 0x00: |
| 738 GETBYTE (); | 737 GETBYTE (); |
| 739 switch (op[3] & 0x00) | 738 switch (op[3] & 0x00) |
| 740 { | 739 { |
| 741 case 0x00: | 740 case 0x00: |
| 742 op_semantics_7: | 741 op_semantics_7: |
| 743 { | 742 { |
| 744 /** 0000 0110 mx10 00sp 0000 0000 rsrc rdst sbb
%1%S1, %0 */ | 743 /** 0000 0110 mx10 00sp 0000 0000 rsrc rdst sbb
%1%S1, %0 */ |
| 745 #line 519 "rx-decode.opc" | 744 #line 531 "rx-decode.opc" |
| 746 int mx AU = (op[1] >> 6) & 0x03; | 745 int mx AU = (op[1] >> 6) & 0x03; |
| 747 #line 519 "rx-decode.opc" | 746 #line 531 "rx-decode.opc" |
| 748 int sp AU = op[1] & 0x03; | 747 int sp AU = op[1] & 0x03; |
| 749 #line 519 "rx-decode.opc" | 748 #line 531 "rx-decode.opc" |
| 750 int rsrc AU = (op[3] >> 4) & 0x0f; | 749 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 751 #line 519 "rx-decode.opc" | 750 #line 531 "rx-decode.opc" |
| 752 int rdst AU = op[3] & 0x0f; | 751 int rdst AU = op[3] & 0x0f; |
| 753 if (trace) | 752 if (trace) |
| 754 { | 753 { |
| 755 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 754 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 756 "/** 0000 0110 mx10 00sp 0000 0000 rsrc r
dst sbb %1%S1, %0 */", | 755 "/** 0000 0110 mx10 00sp 0000 0000 rsrc r
dst sbb %1%S1, %0 */", |
| 757 op[0], op[1], op[2], op[3]); | 756 op[0], op[1], op[2], op[3]); |
| 758 printf (" mx = 0x%x,", mx); | 757 printf (" mx = 0x%x,", mx); |
| 759 printf (" sp = 0x%x,", sp); | 758 printf (" sp = 0x%x,", sp); |
| 760 printf (" rsrc = 0x%x,", rsrc); | 759 printf (" rsrc = 0x%x,", rsrc); |
| 761 printf (" rdst = 0x%x\n", rdst); | 760 printf (" rdst = 0x%x\n", rdst); |
| 762 } | 761 } |
| 763 SYNTAX("sbb %1%S1, %0"); | 762 SYNTAX("sbb %1%S1, %0"); |
| 764 #line 519 "rx-decode.opc" | 763 #line 531 "rx-decode.opc" |
| 765 ID(sbb); SPm(sp, rsrc, mx); DR(rdst); F_OSZC; | 764 ID(sbb); SPm(sp, rsrc, mx); DR(rdst); F_OSZC; |
| 766 | 765 |
| 767 /*----------------------------------------------------
------------------*/ | 766 /*----------------------------------------------------
------------------*/ |
| 768 /* ABS
*/ | 767 /* ABS
*/ |
| 769 | 768 |
| 770 } | 769 } |
| 771 break; | 770 break; |
| 772 } | 771 } |
| 773 break; | 772 break; |
| 774 case 0x04: | 773 case 0x04: |
| 775 GETBYTE (); | 774 GETBYTE (); |
| 776 switch (op[3] & 0x00) | 775 switch (op[3] & 0x00) |
| 777 { | 776 { |
| 778 case 0x00: | 777 case 0x00: |
| 779 op_semantics_8: | 778 op_semantics_8: |
| 780 { | 779 { |
| 781 /** 0000 0110 mx10 00ss 0000 0100 rsrc rdst max
%1%S1, %0 */ | 780 /** 0000 0110 mx10 00ss 0000 0100 rsrc rdst max
%1%S1, %0 */ |
| 782 #line 548 "rx-decode.opc" | 781 #line 560 "rx-decode.opc" |
| 783 int mx AU = (op[1] >> 6) & 0x03; | 782 int mx AU = (op[1] >> 6) & 0x03; |
| 784 #line 548 "rx-decode.opc" | 783 #line 560 "rx-decode.opc" |
| 785 int ss AU = op[1] & 0x03; | 784 int ss AU = op[1] & 0x03; |
| 786 #line 548 "rx-decode.opc" | 785 #line 560 "rx-decode.opc" |
| 787 int rsrc AU = (op[3] >> 4) & 0x0f; | 786 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 788 #line 548 "rx-decode.opc" | 787 #line 560 "rx-decode.opc" |
| 789 int rdst AU = op[3] & 0x0f; | 788 int rdst AU = op[3] & 0x0f; |
| 790 if (trace) | 789 if (trace) |
| 791 { | 790 { |
| 792 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 791 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 793 "/** 0000 0110 mx10 00ss 0000 0100 rsrc r
dst max %1%S1, %0 */", | 792 "/** 0000 0110 mx10 00ss 0000 0100 rsrc r
dst max %1%S1, %0 */", |
| 794 op[0], op[1], op[2], op[3]); | 793 op[0], op[1], op[2], op[3]); |
| 795 printf (" mx = 0x%x,", mx); | 794 printf (" mx = 0x%x,", mx); |
| 796 printf (" ss = 0x%x,", ss); | 795 printf (" ss = 0x%x,", ss); |
| 797 printf (" rsrc = 0x%x,", rsrc); | 796 printf (" rsrc = 0x%x,", rsrc); |
| 798 printf (" rdst = 0x%x\n", rdst); | 797 printf (" rdst = 0x%x\n", rdst); |
| 799 } | 798 } |
| 800 SYNTAX("max %1%S1, %0"); | 799 SYNTAX("max %1%S1, %0"); |
| 801 #line 548 "rx-decode.opc" | 800 #line 560 "rx-decode.opc" |
| 802 ID(max); SPm(ss, rsrc, mx); DR(rdst); | 801 ID(max); SPm(ss, rsrc, mx); DR(rdst); |
| 803 | 802 |
| 804 /*----------------------------------------------------
------------------*/ | 803 /*----------------------------------------------------
------------------*/ |
| 805 /* MIN
*/ | 804 /* MIN
*/ |
| 806 | 805 |
| 807 } | 806 } |
| 808 break; | 807 break; |
| 809 } | 808 } |
| 810 break; | 809 break; |
| 811 case 0x05: | 810 case 0x05: |
| 812 GETBYTE (); | 811 GETBYTE (); |
| 813 switch (op[3] & 0x00) | 812 switch (op[3] & 0x00) |
| 814 { | 813 { |
| 815 case 0x00: | 814 case 0x00: |
| 816 op_semantics_9: | 815 op_semantics_9: |
| 817 { | 816 { |
| 818 /** 0000 0110 mx10 00ss 0000 0101 rsrc rdst min
%1%S1, %0 */ | 817 /** 0000 0110 mx10 00ss 0000 0101 rsrc rdst min
%1%S1, %0 */ |
| 819 #line 560 "rx-decode.opc" | 818 #line 572 "rx-decode.opc" |
| 820 int mx AU = (op[1] >> 6) & 0x03; | 819 int mx AU = (op[1] >> 6) & 0x03; |
| 821 #line 560 "rx-decode.opc" | 820 #line 572 "rx-decode.opc" |
| 822 int ss AU = op[1] & 0x03; | 821 int ss AU = op[1] & 0x03; |
| 823 #line 560 "rx-decode.opc" | 822 #line 572 "rx-decode.opc" |
| 824 int rsrc AU = (op[3] >> 4) & 0x0f; | 823 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 825 #line 560 "rx-decode.opc" | 824 #line 572 "rx-decode.opc" |
| 826 int rdst AU = op[3] & 0x0f; | 825 int rdst AU = op[3] & 0x0f; |
| 827 if (trace) | 826 if (trace) |
| 828 { | 827 { |
| 829 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 828 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 830 "/** 0000 0110 mx10 00ss 0000 0101 rsrc r
dst min %1%S1, %0 */", | 829 "/** 0000 0110 mx10 00ss 0000 0101 rsrc r
dst min %1%S1, %0 */", |
| 831 op[0], op[1], op[2], op[3]); | 830 op[0], op[1], op[2], op[3]); |
| 832 printf (" mx = 0x%x,", mx); | 831 printf (" mx = 0x%x,", mx); |
| 833 printf (" ss = 0x%x,", ss); | 832 printf (" ss = 0x%x,", ss); |
| 834 printf (" rsrc = 0x%x,", rsrc); | 833 printf (" rsrc = 0x%x,", rsrc); |
| 835 printf (" rdst = 0x%x\n", rdst); | 834 printf (" rdst = 0x%x\n", rdst); |
| 836 } | 835 } |
| 837 SYNTAX("min %1%S1, %0"); | 836 SYNTAX("min %1%S1, %0"); |
| 838 #line 560 "rx-decode.opc" | 837 #line 572 "rx-decode.opc" |
| 839 ID(min); SPm(ss, rsrc, mx); DR(rdst); | 838 ID(min); SPm(ss, rsrc, mx); DR(rdst); |
| 840 | 839 |
| 841 /*----------------------------------------------------
------------------*/ | 840 /*----------------------------------------------------
------------------*/ |
| 842 /* MUL
*/ | 841 /* MUL
*/ |
| 843 | 842 |
| 844 } | 843 } |
| 845 break; | 844 break; |
| 846 } | 845 } |
| 847 break; | 846 break; |
| 848 case 0x06: | 847 case 0x06: |
| 849 GETBYTE (); | 848 GETBYTE (); |
| 850 switch (op[3] & 0x00) | 849 switch (op[3] & 0x00) |
| 851 { | 850 { |
| 852 case 0x00: | 851 case 0x00: |
| 853 op_semantics_10: | 852 op_semantics_10: |
| 854 { | 853 { |
| 855 /** 0000 0110 mx10 00ss 0000 0110 rsrc rdst emul
%1%S1, %0 */ | 854 /** 0000 0110 mx10 00ss 0000 0110 rsrc rdst emul
%1%S1, %0 */ |
| 856 #line 590 "rx-decode.opc" | 855 #line 602 "rx-decode.opc" |
| 857 int mx AU = (op[1] >> 6) & 0x03; | 856 int mx AU = (op[1] >> 6) & 0x03; |
| 858 #line 590 "rx-decode.opc" | 857 #line 602 "rx-decode.opc" |
| 859 int ss AU = op[1] & 0x03; | 858 int ss AU = op[1] & 0x03; |
| 860 #line 590 "rx-decode.opc" | 859 #line 602 "rx-decode.opc" |
| 861 int rsrc AU = (op[3] >> 4) & 0x0f; | 860 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 862 #line 590 "rx-decode.opc" | 861 #line 602 "rx-decode.opc" |
| 863 int rdst AU = op[3] & 0x0f; | 862 int rdst AU = op[3] & 0x0f; |
| 864 if (trace) | 863 if (trace) |
| 865 { | 864 { |
| 866 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 865 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 867 "/** 0000 0110 mx10 00ss 0000 0110 rsrc r
dst emul %1%S1, %0 */", | 866 "/** 0000 0110 mx10 00ss 0000 0110 rsrc r
dst emul %1%S1, %0 */", |
| 868 op[0], op[1], op[2], op[3]); | 867 op[0], op[1], op[2], op[3]); |
| 869 printf (" mx = 0x%x,", mx); | 868 printf (" mx = 0x%x,", mx); |
| 870 printf (" ss = 0x%x,", ss); | 869 printf (" ss = 0x%x,", ss); |
| 871 printf (" rsrc = 0x%x,", rsrc); | 870 printf (" rsrc = 0x%x,", rsrc); |
| 872 printf (" rdst = 0x%x\n", rdst); | 871 printf (" rdst = 0x%x\n", rdst); |
| 873 } | 872 } |
| 874 SYNTAX("emul %1%S1, %0"); | 873 SYNTAX("emul %1%S1, %0"); |
| 875 #line 590 "rx-decode.opc" | 874 #line 602 "rx-decode.opc" |
| 876 ID(emul); SPm(ss, rsrc, mx); DR(rdst); | 875 ID(emul); SPm(ss, rsrc, mx); DR(rdst); |
| 877 | 876 |
| 878 /*----------------------------------------------------
------------------*/ | 877 /*----------------------------------------------------
------------------*/ |
| 879 /* EMULU
*/ | 878 /* EMULU
*/ |
| 880 | 879 |
| 881 } | 880 } |
| 882 break; | 881 break; |
| 883 } | 882 } |
| 884 break; | 883 break; |
| 885 case 0x07: | 884 case 0x07: |
| 886 GETBYTE (); | 885 GETBYTE (); |
| 887 switch (op[3] & 0x00) | 886 switch (op[3] & 0x00) |
| 888 { | 887 { |
| 889 case 0x00: | 888 case 0x00: |
| 890 op_semantics_11: | 889 op_semantics_11: |
| 891 { | 890 { |
| 892 /** 0000 0110 mx10 00ss 0000 0111 rsrc rdst emulu
%1%S1, %0 */ | 891 /** 0000 0110 mx10 00ss 0000 0111 rsrc rdst emulu
%1%S1, %0 */ |
| 893 #line 602 "rx-decode.opc" | 892 #line 614 "rx-decode.opc" |
| 894 int mx AU = (op[1] >> 6) & 0x03; | 893 int mx AU = (op[1] >> 6) & 0x03; |
| 895 #line 602 "rx-decode.opc" | 894 #line 614 "rx-decode.opc" |
| 896 int ss AU = op[1] & 0x03; | 895 int ss AU = op[1] & 0x03; |
| 897 #line 602 "rx-decode.opc" | 896 #line 614 "rx-decode.opc" |
| 898 int rsrc AU = (op[3] >> 4) & 0x0f; | 897 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 899 #line 602 "rx-decode.opc" | 898 #line 614 "rx-decode.opc" |
| 900 int rdst AU = op[3] & 0x0f; | 899 int rdst AU = op[3] & 0x0f; |
| 901 if (trace) | 900 if (trace) |
| 902 { | 901 { |
| 903 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 902 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 904 "/** 0000 0110 mx10 00ss 0000 0111 rsrc r
dst emulu %1%S1, %0 */", | 903 "/** 0000 0110 mx10 00ss 0000 0111 rsrc r
dst emulu %1%S1, %0 */", |
| 905 op[0], op[1], op[2], op[3]); | 904 op[0], op[1], op[2], op[3]); |
| 906 printf (" mx = 0x%x,", mx); | 905 printf (" mx = 0x%x,", mx); |
| 907 printf (" ss = 0x%x,", ss); | 906 printf (" ss = 0x%x,", ss); |
| 908 printf (" rsrc = 0x%x,", rsrc); | 907 printf (" rsrc = 0x%x,", rsrc); |
| 909 printf (" rdst = 0x%x\n", rdst); | 908 printf (" rdst = 0x%x\n", rdst); |
| 910 } | 909 } |
| 911 SYNTAX("emulu %1%S1, %0"); | 910 SYNTAX("emulu %1%S1, %0"); |
| 912 #line 602 "rx-decode.opc" | 911 #line 614 "rx-decode.opc" |
| 913 ID(emulu); SPm(ss, rsrc, mx); DR(rdst); | 912 ID(emulu); SPm(ss, rsrc, mx); DR(rdst); |
| 914 | 913 |
| 915 /*----------------------------------------------------
------------------*/ | 914 /*----------------------------------------------------
------------------*/ |
| 916 /* DIV
*/ | 915 /* DIV
*/ |
| 917 | 916 |
| 918 } | 917 } |
| 919 break; | 918 break; |
| 920 } | 919 } |
| 921 break; | 920 break; |
| 922 case 0x08: | 921 case 0x08: |
| 923 GETBYTE (); | 922 GETBYTE (); |
| 924 switch (op[3] & 0x00) | 923 switch (op[3] & 0x00) |
| 925 { | 924 { |
| 926 case 0x00: | 925 case 0x00: |
| 927 op_semantics_12: | 926 op_semantics_12: |
| 928 { | 927 { |
| 929 /** 0000 0110 mx10 00ss 0000 1000 rsrc rdst div
%1%S1, %0 */ | 928 /** 0000 0110 mx10 00ss 0000 1000 rsrc rdst div
%1%S1, %0 */ |
| 930 #line 614 "rx-decode.opc" | 929 #line 626 "rx-decode.opc" |
| 931 int mx AU = (op[1] >> 6) & 0x03; | 930 int mx AU = (op[1] >> 6) & 0x03; |
| 932 #line 614 "rx-decode.opc" | 931 #line 626 "rx-decode.opc" |
| 933 int ss AU = op[1] & 0x03; | 932 int ss AU = op[1] & 0x03; |
| 934 #line 614 "rx-decode.opc" | 933 #line 626 "rx-decode.opc" |
| 935 int rsrc AU = (op[3] >> 4) & 0x0f; | 934 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 936 #line 614 "rx-decode.opc" | 935 #line 626 "rx-decode.opc" |
| 937 int rdst AU = op[3] & 0x0f; | 936 int rdst AU = op[3] & 0x0f; |
| 938 if (trace) | 937 if (trace) |
| 939 { | 938 { |
| 940 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 939 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 941 "/** 0000 0110 mx10 00ss 0000 1000 rsrc r
dst div %1%S1, %0 */", | 940 "/** 0000 0110 mx10 00ss 0000 1000 rsrc r
dst div %1%S1, %0 */", |
| 942 op[0], op[1], op[2], op[3]); | 941 op[0], op[1], op[2], op[3]); |
| 943 printf (" mx = 0x%x,", mx); | 942 printf (" mx = 0x%x,", mx); |
| 944 printf (" ss = 0x%x,", ss); | 943 printf (" ss = 0x%x,", ss); |
| 945 printf (" rsrc = 0x%x,", rsrc); | 944 printf (" rsrc = 0x%x,", rsrc); |
| 946 printf (" rdst = 0x%x\n", rdst); | 945 printf (" rdst = 0x%x\n", rdst); |
| 947 } | 946 } |
| 948 SYNTAX("div %1%S1, %0"); | 947 SYNTAX("div %1%S1, %0"); |
| 949 #line 614 "rx-decode.opc" | 948 #line 626 "rx-decode.opc" |
| 950 ID(div); SPm(ss, rsrc, mx); DR(rdst); F_O___; | 949 ID(div); SPm(ss, rsrc, mx); DR(rdst); F_O___; |
| 951 | 950 |
| 952 /*----------------------------------------------------
------------------*/ | 951 /*----------------------------------------------------
------------------*/ |
| 953 /* DIVU
*/ | 952 /* DIVU
*/ |
| 954 | 953 |
| 955 } | 954 } |
| 956 break; | 955 break; |
| 957 } | 956 } |
| 958 break; | 957 break; |
| 959 case 0x09: | 958 case 0x09: |
| 960 GETBYTE (); | 959 GETBYTE (); |
| 961 switch (op[3] & 0x00) | 960 switch (op[3] & 0x00) |
| 962 { | 961 { |
| 963 case 0x00: | 962 case 0x00: |
| 964 op_semantics_13: | 963 op_semantics_13: |
| 965 { | 964 { |
| 966 /** 0000 0110 mx10 00ss 0000 1001 rsrc rdst divu
%1%S1, %0 */ | 965 /** 0000 0110 mx10 00ss 0000 1001 rsrc rdst divu
%1%S1, %0 */ |
| 967 #line 626 "rx-decode.opc" | 966 #line 638 "rx-decode.opc" |
| 968 int mx AU = (op[1] >> 6) & 0x03; | 967 int mx AU = (op[1] >> 6) & 0x03; |
| 969 #line 626 "rx-decode.opc" | 968 #line 638 "rx-decode.opc" |
| 970 int ss AU = op[1] & 0x03; | 969 int ss AU = op[1] & 0x03; |
| 971 #line 626 "rx-decode.opc" | 970 #line 638 "rx-decode.opc" |
| 972 int rsrc AU = (op[3] >> 4) & 0x0f; | 971 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 973 #line 626 "rx-decode.opc" | 972 #line 638 "rx-decode.opc" |
| 974 int rdst AU = op[3] & 0x0f; | 973 int rdst AU = op[3] & 0x0f; |
| 975 if (trace) | 974 if (trace) |
| 976 { | 975 { |
| 977 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 976 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 978 "/** 0000 0110 mx10 00ss 0000 1001 rsrc r
dst divu %1%S1, %0 */", | 977 "/** 0000 0110 mx10 00ss 0000 1001 rsrc r
dst divu %1%S1, %0 */", |
| 979 op[0], op[1], op[2], op[3]); | 978 op[0], op[1], op[2], op[3]); |
| 980 printf (" mx = 0x%x,", mx); | 979 printf (" mx = 0x%x,", mx); |
| 981 printf (" ss = 0x%x,", ss); | 980 printf (" ss = 0x%x,", ss); |
| 982 printf (" rsrc = 0x%x,", rsrc); | 981 printf (" rsrc = 0x%x,", rsrc); |
| 983 printf (" rdst = 0x%x\n", rdst); | 982 printf (" rdst = 0x%x\n", rdst); |
| 984 } | 983 } |
| 985 SYNTAX("divu %1%S1, %0"); | 984 SYNTAX("divu %1%S1, %0"); |
| 986 #line 626 "rx-decode.opc" | 985 #line 638 "rx-decode.opc" |
| 987 ID(divu); SPm(ss, rsrc, mx); DR(rdst); F_O___; | 986 ID(divu); SPm(ss, rsrc, mx); DR(rdst); F_O___; |
| 988 | 987 |
| 989 /*----------------------------------------------------
------------------*/ | 988 /*----------------------------------------------------
------------------*/ |
| 990 /* SHIFT
*/ | 989 /* SHIFT
*/ |
| 991 | 990 |
| 992 } | 991 } |
| 993 break; | 992 break; |
| 994 } | 993 } |
| 995 break; | 994 break; |
| 996 case 0x0c: | 995 case 0x0c: |
| 997 GETBYTE (); | 996 GETBYTE (); |
| 998 switch (op[3] & 0x00) | 997 switch (op[3] & 0x00) |
| 999 { | 998 { |
| 1000 case 0x00: | 999 case 0x00: |
| 1001 op_semantics_14: | 1000 op_semantics_14: |
| 1002 { | 1001 { |
| 1003 /** 0000 0110 mx10 00ss 0000 1100 rsrc rdst tst
%1%S1, %2 */ | 1002 /** 0000 0110 mx10 00ss 0000 1100 rsrc rdst tst
%1%S1, %2 */ |
| 1004 #line 437 "rx-decode.opc" | 1003 #line 449 "rx-decode.opc" |
| 1005 int mx AU = (op[1] >> 6) & 0x03; | 1004 int mx AU = (op[1] >> 6) & 0x03; |
| 1006 #line 437 "rx-decode.opc" | 1005 #line 449 "rx-decode.opc" |
| 1007 int ss AU = op[1] & 0x03; | 1006 int ss AU = op[1] & 0x03; |
| 1008 #line 437 "rx-decode.opc" | 1007 #line 449 "rx-decode.opc" |
| 1009 int rsrc AU = (op[3] >> 4) & 0x0f; | 1008 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 1010 #line 437 "rx-decode.opc" | 1009 #line 449 "rx-decode.opc" |
| 1011 int rdst AU = op[3] & 0x0f; | 1010 int rdst AU = op[3] & 0x0f; |
| 1012 if (trace) | 1011 if (trace) |
| 1013 { | 1012 { |
| 1014 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 1013 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 1015 "/** 0000 0110 mx10 00ss 0000 1100 rsrc r
dst tst %1%S1, %2 */", | 1014 "/** 0000 0110 mx10 00ss 0000 1100 rsrc r
dst tst %1%S1, %2 */", |
| 1016 op[0], op[1], op[2], op[3]); | 1015 op[0], op[1], op[2], op[3]); |
| 1017 printf (" mx = 0x%x,", mx); | 1016 printf (" mx = 0x%x,", mx); |
| 1018 printf (" ss = 0x%x,", ss); | 1017 printf (" ss = 0x%x,", ss); |
| 1019 printf (" rsrc = 0x%x,", rsrc); | 1018 printf (" rsrc = 0x%x,", rsrc); |
| 1020 printf (" rdst = 0x%x\n", rdst); | 1019 printf (" rdst = 0x%x\n", rdst); |
| 1021 } | 1020 } |
| 1022 SYNTAX("tst %1%S1, %2"); | 1021 SYNTAX("tst %1%S1, %2"); |
| 1023 #line 437 "rx-decode.opc" | 1022 #line 449 "rx-decode.opc" |
| 1024 ID(and); SPm(ss, rsrc, mx); S2R(rdst); F__SZ_; | 1023 ID(and); SPm(ss, rsrc, mx); S2R(rdst); F__SZ_; |
| 1025 | 1024 |
| 1026 /*----------------------------------------------------
------------------*/ | 1025 /*----------------------------------------------------
------------------*/ |
| 1027 /* NEG
*/ | 1026 /* NEG
*/ |
| 1028 | 1027 |
| 1029 } | 1028 } |
| 1030 break; | 1029 break; |
| 1031 } | 1030 } |
| 1032 break; | 1031 break; |
| 1033 case 0x0d: | 1032 case 0x0d: |
| 1034 GETBYTE (); | 1033 GETBYTE (); |
| 1035 switch (op[3] & 0x00) | 1034 switch (op[3] & 0x00) |
| 1036 { | 1035 { |
| 1037 case 0x00: | 1036 case 0x00: |
| 1038 op_semantics_15: | 1037 op_semantics_15: |
| 1039 { | 1038 { |
| 1040 /** 0000 0110 mx10 00ss 0000 1101 rsrc rdst xor
%1%S1, %0 */ | 1039 /** 0000 0110 mx10 00ss 0000 1101 rsrc rdst xor
%1%S1, %0 */ |
| 1041 #line 416 "rx-decode.opc" | 1040 #line 428 "rx-decode.opc" |
| 1042 int mx AU = (op[1] >> 6) & 0x03; | 1041 int mx AU = (op[1] >> 6) & 0x03; |
| 1043 #line 416 "rx-decode.opc" | 1042 #line 428 "rx-decode.opc" |
| 1044 int ss AU = op[1] & 0x03; | 1043 int ss AU = op[1] & 0x03; |
| 1045 #line 416 "rx-decode.opc" | 1044 #line 428 "rx-decode.opc" |
| 1046 int rsrc AU = (op[3] >> 4) & 0x0f; | 1045 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 1047 #line 416 "rx-decode.opc" | 1046 #line 428 "rx-decode.opc" |
| 1048 int rdst AU = op[3] & 0x0f; | 1047 int rdst AU = op[3] & 0x0f; |
| 1049 if (trace) | 1048 if (trace) |
| 1050 { | 1049 { |
| 1051 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 1050 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 1052 "/** 0000 0110 mx10 00ss 0000 1101 rsrc r
dst xor %1%S1, %0 */", | 1051 "/** 0000 0110 mx10 00ss 0000 1101 rsrc r
dst xor %1%S1, %0 */", |
| 1053 op[0], op[1], op[2], op[3]); | 1052 op[0], op[1], op[2], op[3]); |
| 1054 printf (" mx = 0x%x,", mx); | 1053 printf (" mx = 0x%x,", mx); |
| 1055 printf (" ss = 0x%x,", ss); | 1054 printf (" ss = 0x%x,", ss); |
| 1056 printf (" rsrc = 0x%x,", rsrc); | 1055 printf (" rsrc = 0x%x,", rsrc); |
| 1057 printf (" rdst = 0x%x\n", rdst); | 1056 printf (" rdst = 0x%x\n", rdst); |
| 1058 } | 1057 } |
| 1059 SYNTAX("xor %1%S1, %0"); | 1058 SYNTAX("xor %1%S1, %0"); |
| 1060 #line 416 "rx-decode.opc" | 1059 #line 428 "rx-decode.opc" |
| 1061 ID(xor); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; | 1060 ID(xor); SPm(ss, rsrc, mx); DR(rdst); F__SZ_; |
| 1062 | 1061 |
| 1063 /*----------------------------------------------------
------------------*/ | 1062 /*----------------------------------------------------
------------------*/ |
| 1064 /* NOT
*/ | 1063 /* NOT
*/ |
| 1065 | 1064 |
| 1066 } | 1065 } |
| 1067 break; | 1066 break; |
| 1068 } | 1067 } |
| 1069 break; | 1068 break; |
| 1070 case 0x10: | 1069 case 0x10: |
| 1071 GETBYTE (); | 1070 GETBYTE (); |
| 1072 switch (op[3] & 0x00) | 1071 switch (op[3] & 0x00) |
| 1073 { | 1072 { |
| 1074 case 0x00: | 1073 case 0x00: |
| 1075 op_semantics_16: | 1074 op_semantics_16: |
| 1076 { | 1075 { |
| 1077 /** 0000 0110 mx10 00ss 0001 0000 rsrc rdst xchg
%1%S1, %0 */ | 1076 /** 0000 0110 mx10 00ss 0001 0000 rsrc rdst xchg
%1%S1, %0 */ |
| 1078 #line 350 "rx-decode.opc" | 1077 #line 362 "rx-decode.opc" |
| 1079 int mx AU = (op[1] >> 6) & 0x03; | 1078 int mx AU = (op[1] >> 6) & 0x03; |
| 1080 #line 350 "rx-decode.opc" | 1079 #line 362 "rx-decode.opc" |
| 1081 int ss AU = op[1] & 0x03; | 1080 int ss AU = op[1] & 0x03; |
| 1082 #line 350 "rx-decode.opc" | 1081 #line 362 "rx-decode.opc" |
| 1083 int rsrc AU = (op[3] >> 4) & 0x0f; | 1082 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 1084 #line 350 "rx-decode.opc" | 1083 #line 362 "rx-decode.opc" |
| 1085 int rdst AU = op[3] & 0x0f; | 1084 int rdst AU = op[3] & 0x0f; |
| 1086 if (trace) | 1085 if (trace) |
| 1087 { | 1086 { |
| 1088 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 1087 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 1089 "/** 0000 0110 mx10 00ss 0001 0000 rsrc r
dst xchg %1%S1, %0 */", | 1088 "/** 0000 0110 mx10 00ss 0001 0000 rsrc r
dst xchg %1%S1, %0 */", |
| 1090 op[0], op[1], op[2], op[3]); | 1089 op[0], op[1], op[2], op[3]); |
| 1091 printf (" mx = 0x%x,", mx); | 1090 printf (" mx = 0x%x,", mx); |
| 1092 printf (" ss = 0x%x,", ss); | 1091 printf (" ss = 0x%x,", ss); |
| 1093 printf (" rsrc = 0x%x,", rsrc); | 1092 printf (" rsrc = 0x%x,", rsrc); |
| 1094 printf (" rdst = 0x%x\n", rdst); | 1093 printf (" rdst = 0x%x\n", rdst); |
| 1095 } | 1094 } |
| 1096 SYNTAX("xchg %1%S1, %0"); | 1095 SYNTAX("xchg %1%S1, %0"); |
| 1097 #line 350 "rx-decode.opc" | 1096 #line 362 "rx-decode.opc" |
| 1098 ID(xchg); DR(rdst); SPm(ss, rsrc, mx); | 1097 ID(xchg); DR(rdst); SPm(ss, rsrc, mx); |
| 1099 | 1098 |
| 1100 /*----------------------------------------------------
------------------*/ | 1099 /*----------------------------------------------------
------------------*/ |
| 1101 /* STZ/STNZ
*/ | 1100 /* STZ/STNZ
*/ |
| 1102 | 1101 |
| 1103 } | 1102 } |
| 1104 break; | 1103 break; |
| 1105 } | 1104 } |
| 1106 break; | 1105 break; |
| 1107 case 0x11: | 1106 case 0x11: |
| 1108 GETBYTE (); | 1107 GETBYTE (); |
| 1109 switch (op[3] & 0x00) | 1108 switch (op[3] & 0x00) |
| 1110 { | 1109 { |
| 1111 case 0x00: | 1110 case 0x00: |
| 1112 op_semantics_17: | 1111 op_semantics_17: |
| 1113 { | 1112 { |
| 1114 /** 0000 0110 mx10 00sd 0001 0001 rsrc rdst itof
%1%S1, %0 */ | 1113 /** 0000 0110 mx10 00sd 0001 0001 rsrc rdst itof
%1%S1, %0 */ |
| 1115 #line 855 "rx-decode.opc" | 1114 #line 867 "rx-decode.opc" |
| 1116 int mx AU = (op[1] >> 6) & 0x03; | 1115 int mx AU = (op[1] >> 6) & 0x03; |
| 1117 #line 855 "rx-decode.opc" | 1116 #line 867 "rx-decode.opc" |
| 1118 int sd AU = op[1] & 0x03; | 1117 int sd AU = op[1] & 0x03; |
| 1119 #line 855 "rx-decode.opc" | 1118 #line 867 "rx-decode.opc" |
| 1120 int rsrc AU = (op[3] >> 4) & 0x0f; | 1119 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 1121 #line 855 "rx-decode.opc" | 1120 #line 867 "rx-decode.opc" |
| 1122 int rdst AU = op[3] & 0x0f; | 1121 int rdst AU = op[3] & 0x0f; |
| 1123 if (trace) | 1122 if (trace) |
| 1124 { | 1123 { |
| 1125 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 1124 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 1126 "/** 0000 0110 mx10 00sd 0001 0001 rsrc r
dst itof %1%S1, %0 */", | 1125 "/** 0000 0110 mx10 00sd 0001 0001 rsrc r
dst itof %1%S1, %0 */", |
| 1127 op[0], op[1], op[2], op[3]); | 1126 op[0], op[1], op[2], op[3]); |
| 1128 printf (" mx = 0x%x,", mx); | 1127 printf (" mx = 0x%x,", mx); |
| 1129 printf (" sd = 0x%x,", sd); | 1128 printf (" sd = 0x%x,", sd); |
| 1130 printf (" rsrc = 0x%x,", rsrc); | 1129 printf (" rsrc = 0x%x,", rsrc); |
| 1131 printf (" rdst = 0x%x\n", rdst); | 1130 printf (" rdst = 0x%x\n", rdst); |
| 1132 } | 1131 } |
| 1133 SYNTAX("itof %1%S1, %0"); | 1132 SYNTAX("itof %1%S1, %0"); |
| 1134 #line 855 "rx-decode.opc" | 1133 #line 867 "rx-decode.opc" |
| 1135 ID(itof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_; | 1134 ID(itof); DR (rdst); SPm(sd, rsrc, mx); F__SZ_; |
| 1136 | 1135 |
| 1137 /*----------------------------------------------------
------------------*/ | 1136 /*----------------------------------------------------
------------------*/ |
| 1138 /* BIT OPS
*/ | 1137 /* BIT OPS
*/ |
| 1139 | 1138 |
| 1140 } | 1139 } |
| 1141 break; | 1140 break; |
| 1142 } | 1141 } |
| 1143 break; | 1142 break; |
| 1144 default: UNSUPPORTED(); break; | 1143 default: UNSUPPORTED(); break; |
| (...skipping 1187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2332 } | 2331 } |
| 2333 break; | 2332 break; |
| 2334 case 0x02: | 2333 case 0x02: |
| 2335 GETBYTE (); | 2334 GETBYTE (); |
| 2336 switch (op[3] & 0x00) | 2335 switch (op[3] & 0x00) |
| 2337 { | 2336 { |
| 2338 case 0x00: | 2337 case 0x00: |
| 2339 op_semantics_18: | 2338 op_semantics_18: |
| 2340 { | 2339 { |
| 2341 /** 0000 0110 1010 00ss 0000 0010 rsrc rdst adc
%1%S1, %0 */ | 2340 /** 0000 0110 1010 00ss 0000 0010 rsrc rdst adc
%1%S1, %0 */ |
| 2342 #line 458 "rx-decode.opc" | 2341 #line 470 "rx-decode.opc" |
| 2343 int ss AU = op[1] & 0x03; | 2342 int ss AU = op[1] & 0x03; |
| 2344 #line 458 "rx-decode.opc" | 2343 #line 470 "rx-decode.opc" |
| 2345 int rsrc AU = (op[3] >> 4) & 0x0f; | 2344 int rsrc AU = (op[3] >> 4) & 0x0f; |
| 2346 #line 458 "rx-decode.opc" | 2345 #line 470 "rx-decode.opc" |
| 2347 int rdst AU = op[3] & 0x0f; | 2346 int rdst AU = op[3] & 0x0f; |
| 2348 if (trace) | 2347 if (trace) |
| 2349 { | 2348 { |
| 2350 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", | 2349 printf ("\033[33m%s\033[0m %02x %02x %02x %02x\
n", |
| 2351 "/** 0000 0110 1010 00ss 0000 0010 rsrc r
dst adc %1%S1, %0 */", | 2350 "/** 0000 0110 1010 00ss 0000 0010 rsrc r
dst adc %1%S1, %0 */", |
| 2352 op[0], op[1], op[2], op[3]); | 2351 op[0], op[1], op[2], op[3]); |
| 2353 printf (" ss = 0x%x,", ss); | 2352 printf (" ss = 0x%x,", ss); |
| 2354 printf (" rsrc = 0x%x,", rsrc); | 2353 printf (" rsrc = 0x%x,", rsrc); |
| 2355 printf (" rdst = 0x%x\n", rdst); | 2354 printf (" rdst = 0x%x\n", rdst); |
| 2356 } | 2355 } |
| 2357 SYNTAX("adc %1%S1, %0"); | 2356 SYNTAX("adc %1%S1, %0"); |
| 2358 #line 458 "rx-decode.opc" | 2357 #line 470 "rx-decode.opc" |
| 2359 ID(adc); SPm(ss, rsrc, 2); DR(rdst); F_OSZC; | 2358 ID(adc); SPm(ss, rsrc, 2); DR(rdst); F_OSZC; |
| 2360 | 2359 |
| 2361 /*----------------------------------------------------
------------------*/ | 2360 /*----------------------------------------------------
------------------*/ |
| 2362 /* ADD
*/ | 2361 /* ADD
*/ |
| 2363 | 2362 |
| 2364 } | 2363 } |
| 2365 break; | 2364 break; |
| 2366 } | 2365 } |
| 2367 break; | 2366 break; |
| 2368 case 0x04: | 2367 case 0x04: |
| (...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3449 case 0x08: | 3448 case 0x08: |
| 3450 case 0x09: | 3449 case 0x09: |
| 3451 case 0x0a: | 3450 case 0x0a: |
| 3452 case 0x0b: | 3451 case 0x0b: |
| 3453 case 0x0c: | 3452 case 0x0c: |
| 3454 case 0x0d: | 3453 case 0x0d: |
| 3455 case 0x0e: | 3454 case 0x0e: |
| 3456 case 0x0f: | 3455 case 0x0f: |
| 3457 { | 3456 { |
| 3458 /** 0000 1dsp bra.s %a0 */ | 3457 /** 0000 1dsp bra.s %a0 */ |
| 3459 #line 701 "rx-decode.opc" | 3458 #line 713 "rx-decode.opc" |
| 3460 int dsp AU = op[0] & 0x07; | 3459 int dsp AU = op[0] & 0x07; |
| 3461 if (trace) | 3460 if (trace) |
| 3462 { | 3461 { |
| 3463 printf ("\033[33m%s\033[0m %02x\n", | 3462 printf ("\033[33m%s\033[0m %02x\n", |
| 3464 "/** 0000 1dsp bra.s %a0 */", | 3463 "/** 0000 1dsp bra.s %a0 */", |
| 3465 op[0]); | 3464 op[0]); |
| 3466 printf (" dsp = 0x%x\n", dsp); | 3465 printf (" dsp = 0x%x\n", dsp); |
| 3467 } | 3466 } |
| 3468 SYNTAX("bra.s %a0"); | 3467 SYNTAX("bra.s %a0"); |
| 3469 #line 701 "rx-decode.opc" | 3468 #line 713 "rx-decode.opc" |
| 3470 ID(branch); DC(pc + dsp3map[dsp]); | 3469 ID(branch); DC(pc + dsp3map[dsp]); |
| 3471 | 3470 |
| 3472 } | 3471 } |
| 3473 break; | 3472 break; |
| 3474 case 0x10: | 3473 case 0x10: |
| 3475 case 0x11: | 3474 case 0x11: |
| 3476 case 0x12: | 3475 case 0x12: |
| 3477 case 0x13: | 3476 case 0x13: |
| 3478 case 0x14: | 3477 case 0x14: |
| 3479 case 0x15: | 3478 case 0x15: |
| 3480 case 0x16: | 3479 case 0x16: |
| 3481 case 0x17: | 3480 case 0x17: |
| 3482 case 0x18: | 3481 case 0x18: |
| 3483 case 0x19: | 3482 case 0x19: |
| 3484 case 0x1a: | 3483 case 0x1a: |
| 3485 case 0x1b: | 3484 case 0x1b: |
| 3486 case 0x1c: | 3485 case 0x1c: |
| 3487 case 0x1d: | 3486 case 0x1d: |
| 3488 case 0x1e: | 3487 case 0x1e: |
| 3489 case 0x1f: | 3488 case 0x1f: |
| 3490 { | 3489 { |
| 3491 /** 0001 n dsp b%1.s %a0 */ | 3490 /** 0001 n dsp b%1.s %a0 */ |
| 3492 #line 691 "rx-decode.opc" | 3491 #line 703 "rx-decode.opc" |
| 3493 int n AU = (op[0] >> 3) & 0x01; | 3492 int n AU = (op[0] >> 3) & 0x01; |
| 3494 #line 691 "rx-decode.opc" | 3493 #line 703 "rx-decode.opc" |
| 3495 int dsp AU = op[0] & 0x07; | 3494 int dsp AU = op[0] & 0x07; |
| 3496 if (trace) | 3495 if (trace) |
| 3497 { | 3496 { |
| 3498 printf ("\033[33m%s\033[0m %02x\n", | 3497 printf ("\033[33m%s\033[0m %02x\n", |
| 3499 "/** 0001 n dsp b%1.s %a0 */", | 3498 "/** 0001 n dsp b%1.s %a0 */", |
| 3500 op[0]); | 3499 op[0]); |
| 3501 printf (" n = 0x%x,", n); | 3500 printf (" n = 0x%x,", n); |
| 3502 printf (" dsp = 0x%x\n", dsp); | 3501 printf (" dsp = 0x%x\n", dsp); |
| 3503 } | 3502 } |
| 3504 SYNTAX("b%1.s %a0"); | 3503 SYNTAX("b%1.s %a0"); |
| 3505 #line 691 "rx-decode.opc" | 3504 #line 703 "rx-decode.opc" |
| 3506 ID(branch); Scc(n); DC(pc + dsp3map[dsp]); | 3505 ID(branch); Scc(n); DC(pc + dsp3map[dsp]); |
| 3507 | 3506 |
| 3508 } | 3507 } |
| 3509 break; | 3508 break; |
| 3510 case 0x20: | 3509 case 0x20: |
| 3511 case 0x21: | 3510 case 0x21: |
| 3512 case 0x22: | 3511 case 0x22: |
| 3513 case 0x23: | 3512 case 0x23: |
| 3514 case 0x24: | 3513 case 0x24: |
| 3515 case 0x25: | 3514 case 0x25: |
| 3516 case 0x26: | 3515 case 0x26: |
| 3517 case 0x27: | 3516 case 0x27: |
| 3518 case 0x28: | 3517 case 0x28: |
| 3519 case 0x29: | 3518 case 0x29: |
| 3520 case 0x2a: | 3519 case 0x2a: |
| 3521 case 0x2b: | 3520 case 0x2b: |
| 3522 case 0x2c: | 3521 case 0x2c: |
| 3523 case 0x2d: | 3522 case 0x2d: |
| 3524 case 0x2f: | 3523 case 0x2f: |
| 3525 { | 3524 { |
| 3526 /** 0010 cond b%1.b %a0 */ | 3525 /** 0010 cond b%1.b %a0 */ |
| 3527 #line 694 "rx-decode.opc" | 3526 #line 706 "rx-decode.opc" |
| 3528 int cond AU = op[0] & 0x0f; | 3527 int cond AU = op[0] & 0x0f; |
| 3529 if (trace) | 3528 if (trace) |
| 3530 { | 3529 { |
| 3531 printf ("\033[33m%s\033[0m %02x\n", | 3530 printf ("\033[33m%s\033[0m %02x\n", |
| 3532 "/** 0010 cond b%1.b %a0 */", | 3531 "/** 0010 cond b%1.b %a0 */", |
| 3533 op[0]); | 3532 op[0]); |
| 3534 printf (" cond = 0x%x\n", cond); | 3533 printf (" cond = 0x%x\n", cond); |
| 3535 } | 3534 } |
| 3536 SYNTAX("b%1.b %a0"); | 3535 SYNTAX("b%1.b %a0"); |
| 3537 #line 694 "rx-decode.opc" | 3536 #line 706 "rx-decode.opc" |
| 3538 ID(branch); Scc(cond); DC(pc + IMMex (1)); | 3537 ID(branch); Scc(cond); DC(pc + IMMex (1)); |
| 3539 | 3538 |
| 3540 } | 3539 } |
| 3541 break; | 3540 break; |
| 3542 case 0x2e: | 3541 case 0x2e: |
| 3543 { | 3542 { |
| 3544 /** 0010 1110 bra.b %a0 */ | 3543 /** 0010 1110 bra.b %a0 */ |
| 3545 if (trace) | 3544 if (trace) |
| 3546 { | 3545 { |
| 3547 printf ("\033[33m%s\033[0m %02x\n", | 3546 printf ("\033[33m%s\033[0m %02x\n", |
| 3548 "/** 0010 1110 bra.b %a0 */", | 3547 "/** 0010 1110 bra.b %a0 */", |
| 3549 op[0]); | 3548 op[0]); |
| 3550 } | 3549 } |
| 3551 SYNTAX("bra.b %a0"); | 3550 SYNTAX("bra.b %a0"); |
| 3552 #line 704 "rx-decode.opc" | 3551 #line 716 "rx-decode.opc" |
| 3553 ID(branch); DC(pc + IMMex(1)); | 3552 ID(branch); DC(pc + IMMex(1)); |
| 3554 | 3553 |
| 3555 } | 3554 } |
| 3556 break; | 3555 break; |
| 3557 case 0x38: | 3556 case 0x38: |
| 3558 { | 3557 { |
| 3559 /** 0011 1000 bra.w %a0 */ | 3558 /** 0011 1000 bra.w %a0 */ |
| 3560 if (trace) | 3559 if (trace) |
| 3561 { | 3560 { |
| 3562 printf ("\033[33m%s\033[0m %02x\n", | 3561 printf ("\033[33m%s\033[0m %02x\n", |
| 3563 "/** 0011 1000 bra.w %a0 */", | 3562 "/** 0011 1000 bra.w %a0 */", |
| 3564 op[0]); | 3563 op[0]); |
| 3565 } | 3564 } |
| 3566 SYNTAX("bra.w %a0"); | 3565 SYNTAX("bra.w %a0"); |
| 3567 #line 707 "rx-decode.opc" | 3566 #line 719 "rx-decode.opc" |
| 3568 ID(branch); DC(pc + IMMex(2)); | 3567 ID(branch); DC(pc + IMMex(2)); |
| 3569 | 3568 |
| 3570 } | 3569 } |
| 3571 break; | 3570 break; |
| 3572 case 0x39: | 3571 case 0x39: |
| 3573 { | 3572 { |
| 3574 /** 0011 1001 bsr.w %a0 */ | 3573 /** 0011 1001 bsr.w %a0 */ |
| 3575 if (trace) | 3574 if (trace) |
| 3576 { | 3575 { |
| 3577 printf ("\033[33m%s\033[0m %02x\n", | 3576 printf ("\033[33m%s\033[0m %02x\n", |
| 3578 "/** 0011 1001 bsr.w %a0 */", | 3577 "/** 0011 1001 bsr.w %a0 */", |
| 3579 op[0]); | 3578 op[0]); |
| 3580 } | 3579 } |
| 3581 SYNTAX("bsr.w %a0"); | 3580 SYNTAX("bsr.w %a0"); |
| 3582 #line 723 "rx-decode.opc" | 3581 #line 735 "rx-decode.opc" |
| 3583 ID(jsr); DC(pc + IMMex(2)); | 3582 ID(jsr); DC(pc + IMMex(2)); |
| 3584 | 3583 |
| 3585 } | 3584 } |
| 3586 break; | 3585 break; |
| 3587 case 0x3a: | 3586 case 0x3a: |
| 3588 case 0x3b: | 3587 case 0x3b: |
| 3589 { | 3588 { |
| 3590 /** 0011 101c b%1.w %a0 */ | 3589 /** 0011 101c b%1.w %a0 */ |
| 3591 #line 697 "rx-decode.opc" | 3590 #line 709 "rx-decode.opc" |
| 3592 int c AU = op[0] & 0x01; | 3591 int c AU = op[0] & 0x01; |
| 3593 if (trace) | 3592 if (trace) |
| 3594 { | 3593 { |
| 3595 printf ("\033[33m%s\033[0m %02x\n", | 3594 printf ("\033[33m%s\033[0m %02x\n", |
| 3596 "/** 0011 101c b%1.w %a0 */", | 3595 "/** 0011 101c b%1.w %a0 */", |
| 3597 op[0]); | 3596 op[0]); |
| 3598 printf (" c = 0x%x\n", c); | 3597 printf (" c = 0x%x\n", c); |
| 3599 } | 3598 } |
| 3600 SYNTAX("b%1.w %a0"); | 3599 SYNTAX("b%1.w %a0"); |
| 3601 #line 697 "rx-decode.opc" | 3600 #line 709 "rx-decode.opc" |
| 3602 ID(branch); Scc(c); DC(pc + IMMex (2)); | 3601 ID(branch); Scc(c); DC(pc + IMMex (2)); |
| 3603 | 3602 |
| 3604 | 3603 |
| 3605 } | 3604 } |
| 3606 break; | 3605 break; |
| 3607 case 0x3c: | 3606 case 0x3c: |
| 3608 GETBYTE (); | 3607 GETBYTE (); |
| 3609 switch (op[1] & 0x00) | 3608 switch (op[1] & 0x00) |
| 3610 { | 3609 { |
| 3611 case 0x00: | 3610 case 0x00: |
| 3612 op_semantics_19: | 3611 op_semantics_19: |
| 3613 { | 3612 { |
| 3614 /** 0011 11sz d dst sppp mov%s #%1, %0 */ | 3613 /** 0011 11sz d dst sppp mov%s #%1, %0 */ |
| 3615 #line 271 "rx-decode.opc" | 3614 #line 283 "rx-decode.opc" |
| 3616 int sz AU = op[0] & 0x03; | 3615 int sz AU = op[0] & 0x03; |
| 3617 #line 271 "rx-decode.opc" | 3616 #line 283 "rx-decode.opc" |
| 3618 int d AU = (op[1] >> 7) & 0x01; | 3617 int d AU = (op[1] >> 7) & 0x01; |
| 3619 #line 271 "rx-decode.opc" | 3618 #line 283 "rx-decode.opc" |
| 3620 int dst AU = (op[1] >> 4) & 0x07; | 3619 int dst AU = (op[1] >> 4) & 0x07; |
| 3621 #line 271 "rx-decode.opc" | 3620 #line 283 "rx-decode.opc" |
| 3622 int sppp AU = op[1] & 0x0f; | 3621 int sppp AU = op[1] & 0x0f; |
| 3623 if (trace) | 3622 if (trace) |
| 3624 { | 3623 { |
| 3625 printf ("\033[33m%s\033[0m %02x %02x\n", | 3624 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3626 "/** 0011 11sz d dst sppp mov%s #%1, %0
*/", | 3625 "/** 0011 11sz d dst sppp mov%s #%1, %0
*/", |
| 3627 op[0], op[1]); | 3626 op[0], op[1]); |
| 3628 printf (" sz = 0x%x,", sz); | 3627 printf (" sz = 0x%x,", sz); |
| 3629 printf (" d = 0x%x,", d); | 3628 printf (" d = 0x%x,", d); |
| 3630 printf (" dst = 0x%x,", dst); | 3629 printf (" dst = 0x%x,", dst); |
| 3631 printf (" sppp = 0x%x\n", sppp); | 3630 printf (" sppp = 0x%x\n", sppp); |
| 3632 } | 3631 } |
| 3633 SYNTAX("mov%s #%1, %0"); | 3632 SYNTAX("mov%s #%1, %0"); |
| 3634 #line 271 "rx-decode.opc" | 3633 #line 283 "rx-decode.opc" |
| 3635 ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F_____; | 3634 ID(mov); sBWL (sz); DIs(dst, d*16+sppp, sz); SC(IMM(1)); F_____; |
| 3636 | 3635 |
| 3637 } | 3636 } |
| 3638 break; | 3637 break; |
| 3639 } | 3638 } |
| 3640 break; | 3639 break; |
| 3641 case 0x3d: | 3640 case 0x3d: |
| 3642 GETBYTE (); | 3641 GETBYTE (); |
| 3643 switch (op[1] & 0x00) | 3642 switch (op[1] & 0x00) |
| 3644 { | 3643 { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3656 break; | 3655 break; |
| 3657 } | 3656 } |
| 3658 break; | 3657 break; |
| 3659 case 0x3f: | 3658 case 0x3f: |
| 3660 GETBYTE (); | 3659 GETBYTE (); |
| 3661 switch (op[1] & 0x00) | 3660 switch (op[1] & 0x00) |
| 3662 { | 3661 { |
| 3663 case 0x00: | 3662 case 0x00: |
| 3664 { | 3663 { |
| 3665 /** 0011 1111 rega regb rtsd #%1, %2-%0 */ | 3664 /** 0011 1111 rega regb rtsd #%1, %2-%0 */ |
| 3666 #line 368 "rx-decode.opc" | 3665 #line 380 "rx-decode.opc" |
| 3667 int rega AU = (op[1] >> 4) & 0x0f; | 3666 int rega AU = (op[1] >> 4) & 0x0f; |
| 3668 #line 368 "rx-decode.opc" | 3667 #line 380 "rx-decode.opc" |
| 3669 int regb AU = op[1] & 0x0f; | 3668 int regb AU = op[1] & 0x0f; |
| 3670 if (trace) | 3669 if (trace) |
| 3671 { | 3670 { |
| 3672 printf ("\033[33m%s\033[0m %02x %02x\n", | 3671 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3673 "/** 0011 1111 rega regb rtsd #%1, %2-
%0 */", | 3672 "/** 0011 1111 rega regb rtsd #%1, %2-
%0 */", |
| 3674 op[0], op[1]); | 3673 op[0], op[1]); |
| 3675 printf (" rega = 0x%x,", rega); | 3674 printf (" rega = 0x%x,", rega); |
| 3676 printf (" regb = 0x%x\n", regb); | 3675 printf (" regb = 0x%x\n", regb); |
| 3677 } | 3676 } |
| 3678 SYNTAX("rtsd #%1, %2-%0"); | 3677 SYNTAX("rtsd #%1, %2-%0"); |
| 3679 #line 368 "rx-decode.opc" | 3678 #line 380 "rx-decode.opc" |
| 3680 ID(rtsd); SC(IMM(1) * 4); S2R(rega); DR(regb); | 3679 ID(rtsd); SC(IMM(1) * 4); S2R(rega); DR(regb); |
| 3681 | 3680 |
| 3682 /*----------------------------------------------------------------
------*/ | 3681 /*----------------------------------------------------------------
------*/ |
| 3683 /* AND
*/ | 3682 /* AND
*/ |
| 3684 | 3683 |
| 3685 } | 3684 } |
| 3686 break; | 3685 break; |
| 3687 } | 3686 } |
| 3688 break; | 3687 break; |
| 3689 case 0x40: | 3688 case 0x40: |
| 3690 GETBYTE (); | 3689 GETBYTE (); |
| 3691 switch (op[1] & 0x00) | 3690 switch (op[1] & 0x00) |
| 3692 { | 3691 { |
| 3693 case 0x00: | 3692 case 0x00: |
| 3694 op_semantics_20: | 3693 op_semantics_20: |
| 3695 { | 3694 { |
| 3696 /** 0100 00ss rsrc rdst sub %2%S2, %1 */ | 3695 /** 0100 00ss rsrc rdst sub %2%S2, %1 */ |
| 3697 #line 503 "rx-decode.opc" | 3696 #line 515 "rx-decode.opc" |
| 3698 int ss AU = op[0] & 0x03; | 3697 int ss AU = op[0] & 0x03; |
| 3699 #line 503 "rx-decode.opc" | 3698 #line 515 "rx-decode.opc" |
| 3700 int rsrc AU = (op[1] >> 4) & 0x0f; | 3699 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3701 #line 503 "rx-decode.opc" | 3700 #line 515 "rx-decode.opc" |
| 3702 int rdst AU = op[1] & 0x0f; | 3701 int rdst AU = op[1] & 0x0f; |
| 3703 if (trace) | 3702 if (trace) |
| 3704 { | 3703 { |
| 3705 printf ("\033[33m%s\033[0m %02x %02x\n", | 3704 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3706 "/** 0100 00ss rsrc rdst sub
%2%S2, %1 */", | 3705 "/** 0100 00ss rsrc rdst sub
%2%S2, %1 */", |
| 3707 op[0], op[1]); | 3706 op[0], op[1]); |
| 3708 printf (" ss = 0x%x,", ss); | 3707 printf (" ss = 0x%x,", ss); |
| 3709 printf (" rsrc = 0x%x,", rsrc); | 3708 printf (" rsrc = 0x%x,", rsrc); |
| 3710 printf (" rdst = 0x%x\n", rdst); | 3709 printf (" rdst = 0x%x\n", rdst); |
| 3711 } | 3710 } |
| 3712 SYNTAX("sub %2%S2, %1"); | 3711 SYNTAX("sub %2%S2, %1"); |
| 3713 #line 503 "rx-decode.opc" | 3712 #line 515 "rx-decode.opc" |
| 3714 ID(sub); S2P(ss, rsrc); SR(rdst); DR(rdst); F_OSZC; | 3713 ID(sub); S2P(ss, rsrc); SR(rdst); DR(rdst); F_OSZC; |
| 3715 | 3714 |
| 3716 } | 3715 } |
| 3717 break; | 3716 break; |
| 3718 } | 3717 } |
| 3719 break; | 3718 break; |
| 3720 case 0x41: | 3719 case 0x41: |
| 3721 GETBYTE (); | 3720 GETBYTE (); |
| 3722 switch (op[1] & 0x00) | 3721 switch (op[1] & 0x00) |
| 3723 { | 3722 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3745 } | 3744 } |
| 3746 break; | 3745 break; |
| 3747 case 0x44: | 3746 case 0x44: |
| 3748 GETBYTE (); | 3747 GETBYTE (); |
| 3749 switch (op[1] & 0x00) | 3748 switch (op[1] & 0x00) |
| 3750 { | 3749 { |
| 3751 case 0x00: | 3750 case 0x00: |
| 3752 op_semantics_21: | 3751 op_semantics_21: |
| 3753 { | 3752 { |
| 3754 /** 0100 01ss rsrc rdst cmp %2%S2, %1 */ | 3753 /** 0100 01ss rsrc rdst cmp %2%S2, %1 */ |
| 3755 #line 491 "rx-decode.opc" | 3754 #line 503 "rx-decode.opc" |
| 3756 int ss AU = op[0] & 0x03; | 3755 int ss AU = op[0] & 0x03; |
| 3757 #line 491 "rx-decode.opc" | 3756 #line 503 "rx-decode.opc" |
| 3758 int rsrc AU = (op[1] >> 4) & 0x0f; | 3757 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3759 #line 491 "rx-decode.opc" | 3758 #line 503 "rx-decode.opc" |
| 3760 int rdst AU = op[1] & 0x0f; | 3759 int rdst AU = op[1] & 0x0f; |
| 3761 if (trace) | 3760 if (trace) |
| 3762 { | 3761 { |
| 3763 printf ("\033[33m%s\033[0m %02x %02x\n", | 3762 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3764 "/** 0100 01ss rsrc rdst cmp %2%S2, %
1 */", | 3763 "/** 0100 01ss rsrc rdst cmp %2%S2, %
1 */", |
| 3765 op[0], op[1]); | 3764 op[0], op[1]); |
| 3766 printf (" ss = 0x%x,", ss); | 3765 printf (" ss = 0x%x,", ss); |
| 3767 printf (" rsrc = 0x%x,", rsrc); | 3766 printf (" rsrc = 0x%x,", rsrc); |
| 3768 printf (" rdst = 0x%x\n", rdst); | 3767 printf (" rdst = 0x%x\n", rdst); |
| 3769 } | 3768 } |
| 3770 SYNTAX("cmp %2%S2, %1"); | 3769 SYNTAX("cmp %2%S2, %1"); |
| 3771 #line 491 "rx-decode.opc" | 3770 #line 503 "rx-decode.opc" |
| 3772 ID(sub); S2P(ss, rsrc); SR(rdst); F_OSZC; | 3771 ID(sub); S2P(ss, rsrc); SR(rdst); F_OSZC; |
| 3773 | 3772 |
| 3774 } | 3773 } |
| 3775 break; | 3774 break; |
| 3776 } | 3775 } |
| 3777 break; | 3776 break; |
| 3778 case 0x45: | 3777 case 0x45: |
| 3779 GETBYTE (); | 3778 GETBYTE (); |
| 3780 switch (op[1] & 0x00) | 3779 switch (op[1] & 0x00) |
| 3781 { | 3780 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3803 } | 3802 } |
| 3804 break; | 3803 break; |
| 3805 case 0x48: | 3804 case 0x48: |
| 3806 GETBYTE (); | 3805 GETBYTE (); |
| 3807 switch (op[1] & 0x00) | 3806 switch (op[1] & 0x00) |
| 3808 { | 3807 { |
| 3809 case 0x00: | 3808 case 0x00: |
| 3810 op_semantics_22: | 3809 op_semantics_22: |
| 3811 { | 3810 { |
| 3812 /** 0100 10ss rsrc rdst add %1%S1, %0 */ | 3811 /** 0100 10ss rsrc rdst add %1%S1, %0 */ |
| 3813 #line 467 "rx-decode.opc" | 3812 #line 479 "rx-decode.opc" |
| 3814 int ss AU = op[0] & 0x03; | 3813 int ss AU = op[0] & 0x03; |
| 3815 #line 467 "rx-decode.opc" | 3814 #line 479 "rx-decode.opc" |
| 3816 int rsrc AU = (op[1] >> 4) & 0x0f; | 3815 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3817 #line 467 "rx-decode.opc" | 3816 #line 479 "rx-decode.opc" |
| 3818 int rdst AU = op[1] & 0x0f; | 3817 int rdst AU = op[1] & 0x0f; |
| 3819 if (trace) | 3818 if (trace) |
| 3820 { | 3819 { |
| 3821 printf ("\033[33m%s\033[0m %02x %02x\n", | 3820 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3822 "/** 0100 10ss rsrc rdst add
%1%S1, %0 */", | 3821 "/** 0100 10ss rsrc rdst add
%1%S1, %0 */", |
| 3823 op[0], op[1]); | 3822 op[0], op[1]); |
| 3824 printf (" ss = 0x%x,", ss); | 3823 printf (" ss = 0x%x,", ss); |
| 3825 printf (" rsrc = 0x%x,", rsrc); | 3824 printf (" rsrc = 0x%x,", rsrc); |
| 3826 printf (" rdst = 0x%x\n", rdst); | 3825 printf (" rdst = 0x%x\n", rdst); |
| 3827 } | 3826 } |
| 3828 SYNTAX("add %1%S1, %0"); | 3827 SYNTAX("add %1%S1, %0"); |
| 3829 #line 467 "rx-decode.opc" | 3828 #line 479 "rx-decode.opc" |
| 3830 ID(add); SP(ss, rsrc); DR(rdst); F_OSZC; | 3829 ID(add); SP(ss, rsrc); DR(rdst); F_OSZC; |
| 3831 | 3830 |
| 3832 } | 3831 } |
| 3833 break; | 3832 break; |
| 3834 } | 3833 } |
| 3835 break; | 3834 break; |
| 3836 case 0x49: | 3835 case 0x49: |
| 3837 GETBYTE (); | 3836 GETBYTE (); |
| 3838 switch (op[1] & 0x00) | 3837 switch (op[1] & 0x00) |
| 3839 { | 3838 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3861 } | 3860 } |
| 3862 break; | 3861 break; |
| 3863 case 0x4c: | 3862 case 0x4c: |
| 3864 GETBYTE (); | 3863 GETBYTE (); |
| 3865 switch (op[1] & 0x00) | 3864 switch (op[1] & 0x00) |
| 3866 { | 3865 { |
| 3867 case 0x00: | 3866 case 0x00: |
| 3868 op_semantics_23: | 3867 op_semantics_23: |
| 3869 { | 3868 { |
| 3870 /** 0100 11ss rsrc rdst mul %1%S1, %0 */ | 3869 /** 0100 11ss rsrc rdst mul %1%S1, %0 */ |
| 3871 #line 572 "rx-decode.opc" | 3870 #line 584 "rx-decode.opc" |
| 3872 int ss AU = op[0] & 0x03; | 3871 int ss AU = op[0] & 0x03; |
| 3873 #line 572 "rx-decode.opc" | 3872 #line 584 "rx-decode.opc" |
| 3874 int rsrc AU = (op[1] >> 4) & 0x0f; | 3873 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3875 #line 572 "rx-decode.opc" | 3874 #line 584 "rx-decode.opc" |
| 3876 int rdst AU = op[1] & 0x0f; | 3875 int rdst AU = op[1] & 0x0f; |
| 3877 if (trace) | 3876 if (trace) |
| 3878 { | 3877 { |
| 3879 printf ("\033[33m%s\033[0m %02x %02x\n", | 3878 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3880 "/** 0100 11ss rsrc rdst mul
%1%S1, %0 */", | 3879 "/** 0100 11ss rsrc rdst mul
%1%S1, %0 */", |
| 3881 op[0], op[1]); | 3880 op[0], op[1]); |
| 3882 printf (" ss = 0x%x,", ss); | 3881 printf (" ss = 0x%x,", ss); |
| 3883 printf (" rsrc = 0x%x,", rsrc); | 3882 printf (" rsrc = 0x%x,", rsrc); |
| 3884 printf (" rdst = 0x%x\n", rdst); | 3883 printf (" rdst = 0x%x\n", rdst); |
| 3885 } | 3884 } |
| 3886 SYNTAX("mul %1%S1, %0"); | 3885 SYNTAX("mul %1%S1, %0"); |
| 3887 #line 572 "rx-decode.opc" | 3886 #line 584 "rx-decode.opc" |
| 3888 ID(mul); SP(ss, rsrc); DR(rdst); F_____; | 3887 ID(mul); SP(ss, rsrc); DR(rdst); F_____; |
| 3889 | 3888 |
| 3890 } | 3889 } |
| 3891 break; | 3890 break; |
| 3892 } | 3891 } |
| 3893 break; | 3892 break; |
| 3894 case 0x4d: | 3893 case 0x4d: |
| 3895 GETBYTE (); | 3894 GETBYTE (); |
| 3896 switch (op[1] & 0x00) | 3895 switch (op[1] & 0x00) |
| 3897 { | 3896 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3919 } | 3918 } |
| 3920 break; | 3919 break; |
| 3921 case 0x50: | 3920 case 0x50: |
| 3922 GETBYTE (); | 3921 GETBYTE (); |
| 3923 switch (op[1] & 0x00) | 3922 switch (op[1] & 0x00) |
| 3924 { | 3923 { |
| 3925 case 0x00: | 3924 case 0x00: |
| 3926 op_semantics_24: | 3925 op_semantics_24: |
| 3927 { | 3926 { |
| 3928 /** 0101 00ss rsrc rdst and %1%S1, %0 */ | 3927 /** 0101 00ss rsrc rdst and %1%S1, %0 */ |
| 3929 #line 380 "rx-decode.opc" | 3928 #line 392 "rx-decode.opc" |
| 3930 int ss AU = op[0] & 0x03; | 3929 int ss AU = op[0] & 0x03; |
| 3931 #line 380 "rx-decode.opc" | 3930 #line 392 "rx-decode.opc" |
| 3932 int rsrc AU = (op[1] >> 4) & 0x0f; | 3931 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3933 #line 380 "rx-decode.opc" | 3932 #line 392 "rx-decode.opc" |
| 3934 int rdst AU = op[1] & 0x0f; | 3933 int rdst AU = op[1] & 0x0f; |
| 3935 if (trace) | 3934 if (trace) |
| 3936 { | 3935 { |
| 3937 printf ("\033[33m%s\033[0m %02x %02x\n", | 3936 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3938 "/** 0101 00ss rsrc rdst and
%1%S1, %0 */", | 3937 "/** 0101 00ss rsrc rdst and
%1%S1, %0 */", |
| 3939 op[0], op[1]); | 3938 op[0], op[1]); |
| 3940 printf (" ss = 0x%x,", ss); | 3939 printf (" ss = 0x%x,", ss); |
| 3941 printf (" rsrc = 0x%x,", rsrc); | 3940 printf (" rsrc = 0x%x,", rsrc); |
| 3942 printf (" rdst = 0x%x\n", rdst); | 3941 printf (" rdst = 0x%x\n", rdst); |
| 3943 } | 3942 } |
| 3944 SYNTAX("and %1%S1, %0"); | 3943 SYNTAX("and %1%S1, %0"); |
| 3945 #line 380 "rx-decode.opc" | 3944 #line 392 "rx-decode.opc" |
| 3946 ID(and); SP(ss, rsrc); DR(rdst); F__SZ_; | 3945 ID(and); SP(ss, rsrc); DR(rdst); F__SZ_; |
| 3947 | 3946 |
| 3948 } | 3947 } |
| 3949 break; | 3948 break; |
| 3950 } | 3949 } |
| 3951 break; | 3950 break; |
| 3952 case 0x51: | 3951 case 0x51: |
| 3953 GETBYTE (); | 3952 GETBYTE (); |
| 3954 switch (op[1] & 0x00) | 3953 switch (op[1] & 0x00) |
| 3955 { | 3954 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 3977 } | 3976 } |
| 3978 break; | 3977 break; |
| 3979 case 0x54: | 3978 case 0x54: |
| 3980 GETBYTE (); | 3979 GETBYTE (); |
| 3981 switch (op[1] & 0x00) | 3980 switch (op[1] & 0x00) |
| 3982 { | 3981 { |
| 3983 case 0x00: | 3982 case 0x00: |
| 3984 op_semantics_25: | 3983 op_semantics_25: |
| 3985 { | 3984 { |
| 3986 /** 0101 01ss rsrc rdst or %1%S1, %0 */ | 3985 /** 0101 01ss rsrc rdst or %1%S1, %0 */ |
| 3987 #line 398 "rx-decode.opc" | 3986 #line 410 "rx-decode.opc" |
| 3988 int ss AU = op[0] & 0x03; | 3987 int ss AU = op[0] & 0x03; |
| 3989 #line 398 "rx-decode.opc" | 3988 #line 410 "rx-decode.opc" |
| 3990 int rsrc AU = (op[1] >> 4) & 0x0f; | 3989 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 3991 #line 398 "rx-decode.opc" | 3990 #line 410 "rx-decode.opc" |
| 3992 int rdst AU = op[1] & 0x0f; | 3991 int rdst AU = op[1] & 0x0f; |
| 3993 if (trace) | 3992 if (trace) |
| 3994 { | 3993 { |
| 3995 printf ("\033[33m%s\033[0m %02x %02x\n", | 3994 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 3996 "/** 0101 01ss rsrc rdst or
%1%S1, %0 */", | 3995 "/** 0101 01ss rsrc rdst or
%1%S1, %0 */", |
| 3997 op[0], op[1]); | 3996 op[0], op[1]); |
| 3998 printf (" ss = 0x%x,", ss); | 3997 printf (" ss = 0x%x,", ss); |
| 3999 printf (" rsrc = 0x%x,", rsrc); | 3998 printf (" rsrc = 0x%x,", rsrc); |
| 4000 printf (" rdst = 0x%x\n", rdst); | 3999 printf (" rdst = 0x%x\n", rdst); |
| 4001 } | 4000 } |
| 4002 SYNTAX("or %1%S1, %0"); | 4001 SYNTAX("or %1%S1, %0"); |
| 4003 #line 398 "rx-decode.opc" | 4002 #line 410 "rx-decode.opc" |
| 4004 ID(or); SP(ss, rsrc); DR(rdst); F__SZ_; | 4003 ID(or); SP(ss, rsrc); DR(rdst); F__SZ_; |
| 4005 | 4004 |
| 4006 } | 4005 } |
| 4007 break; | 4006 break; |
| 4008 } | 4007 } |
| 4009 break; | 4008 break; |
| 4010 case 0x55: | 4009 case 0x55: |
| 4011 GETBYTE (); | 4010 GETBYTE (); |
| 4012 switch (op[1] & 0x00) | 4011 switch (op[1] & 0x00) |
| 4013 { | 4012 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 4035 } | 4034 } |
| 4036 break; | 4035 break; |
| 4037 case 0x58: | 4036 case 0x58: |
| 4038 GETBYTE (); | 4037 GETBYTE (); |
| 4039 switch (op[1] & 0x00) | 4038 switch (op[1] & 0x00) |
| 4040 { | 4039 { |
| 4041 case 0x00: | 4040 case 0x00: |
| 4042 op_semantics_26: | 4041 op_semantics_26: |
| 4043 { | 4042 { |
| 4044 /** 0101 1 s ss rsrc rdst movu%s %1, %0 */ | 4043 /** 0101 1 s ss rsrc rdst movu%s %1, %0 */ |
| 4045 #line 319 "rx-decode.opc" | 4044 #line 331 "rx-decode.opc" |
| 4046 int s AU = (op[0] >> 2) & 0x01; | 4045 int s AU = (op[0] >> 2) & 0x01; |
| 4047 #line 319 "rx-decode.opc" | 4046 #line 331 "rx-decode.opc" |
| 4048 int ss AU = op[0] & 0x03; | 4047 int ss AU = op[0] & 0x03; |
| 4049 #line 319 "rx-decode.opc" | 4048 #line 331 "rx-decode.opc" |
| 4050 int rsrc AU = (op[1] >> 4) & 0x0f; | 4049 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 4051 #line 319 "rx-decode.opc" | 4050 #line 331 "rx-decode.opc" |
| 4052 int rdst AU = op[1] & 0x0f; | 4051 int rdst AU = op[1] & 0x0f; |
| 4053 if (trace) | 4052 if (trace) |
| 4054 { | 4053 { |
| 4055 printf ("\033[33m%s\033[0m %02x %02x\n", | 4054 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4056 "/** 0101 1 s ss rsrc rdst movu%s %1, %0 */", | 4055 "/** 0101 1 s ss rsrc rdst movu%s %1, %0 */", |
| 4057 op[0], op[1]); | 4056 op[0], op[1]); |
| 4058 printf (" s = 0x%x,", s); | 4057 printf (" s = 0x%x,", s); |
| 4059 printf (" ss = 0x%x,", ss); | 4058 printf (" ss = 0x%x,", ss); |
| 4060 printf (" rsrc = 0x%x,", rsrc); | 4059 printf (" rsrc = 0x%x,", rsrc); |
| 4061 printf (" rdst = 0x%x\n", rdst); | 4060 printf (" rdst = 0x%x\n", rdst); |
| 4062 } | 4061 } |
| 4063 SYNTAX("movu%s %1, %0"); | 4062 SYNTAX("movu%s %1, %0"); |
| 4064 #line 319 "rx-decode.opc" | 4063 #line 331 "rx-decode.opc" |
| 4065 ID(mov); uBWL(s); SD(ss, rsrc, s); DR(rdst); F_____; | 4064 ID(mov); uBWL(s); SD(ss, rsrc, s); DR(rdst); F_____; |
| 4066 | 4065 |
| 4067 } | 4066 } |
| 4068 break; | 4067 break; |
| 4069 } | 4068 } |
| 4070 break; | 4069 break; |
| 4071 case 0x59: | 4070 case 0x59: |
| 4072 GETBYTE (); | 4071 GETBYTE (); |
| 4073 switch (op[1] & 0x00) | 4072 switch (op[1] & 0x00) |
| 4074 { | 4073 { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4131 break; | 4130 break; |
| 4132 } | 4131 } |
| 4133 break; | 4132 break; |
| 4134 case 0x60: | 4133 case 0x60: |
| 4135 GETBYTE (); | 4134 GETBYTE (); |
| 4136 switch (op[1] & 0x00) | 4135 switch (op[1] & 0x00) |
| 4137 { | 4136 { |
| 4138 case 0x00: | 4137 case 0x00: |
| 4139 { | 4138 { |
| 4140 /** 0110 0000 immm rdst sub #%2, %0 */ | 4139 /** 0110 0000 immm rdst sub #%2, %0 */ |
| 4141 #line 500 "rx-decode.opc" | 4140 #line 512 "rx-decode.opc" |
| 4142 int immm AU = (op[1] >> 4) & 0x0f; | 4141 int immm AU = (op[1] >> 4) & 0x0f; |
| 4143 #line 500 "rx-decode.opc" | 4142 #line 512 "rx-decode.opc" |
| 4144 int rdst AU = op[1] & 0x0f; | 4143 int rdst AU = op[1] & 0x0f; |
| 4145 if (trace) | 4144 if (trace) |
| 4146 { | 4145 { |
| 4147 printf ("\033[33m%s\033[0m %02x %02x\n", | 4146 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4148 "/** 0110 0000 immm rdst sub
#%2, %0 */", | 4147 "/** 0110 0000 immm rdst sub
#%2, %0 */", |
| 4149 op[0], op[1]); | 4148 op[0], op[1]); |
| 4150 printf (" immm = 0x%x,", immm); | 4149 printf (" immm = 0x%x,", immm); |
| 4151 printf (" rdst = 0x%x\n", rdst); | 4150 printf (" rdst = 0x%x\n", rdst); |
| 4152 } | 4151 } |
| 4153 SYNTAX("sub #%2, %0"); | 4152 SYNTAX("sub #%2, %0"); |
| 4154 #line 500 "rx-decode.opc" | 4153 #line 512 "rx-decode.opc" |
| 4155 ID(sub); S2C(immm); SR(rdst); DR(rdst); F_OSZC; | 4154 ID(sub); S2C(immm); SR(rdst); DR(rdst); F_OSZC; |
| 4156 | 4155 |
| 4157 } | 4156 } |
| 4158 break; | 4157 break; |
| 4159 } | 4158 } |
| 4160 break; | 4159 break; |
| 4161 case 0x61: | 4160 case 0x61: |
| 4162 GETBYTE (); | 4161 GETBYTE (); |
| 4163 switch (op[1] & 0x00) | 4162 switch (op[1] & 0x00) |
| 4164 { | 4163 { |
| 4165 case 0x00: | 4164 case 0x00: |
| 4166 { | 4165 { |
| 4167 /** 0110 0001 immm rdst cmp #%2, %1 */ | 4166 /** 0110 0001 immm rdst cmp #%2, %1 */ |
| 4168 #line 482 "rx-decode.opc" | 4167 #line 494 "rx-decode.opc" |
| 4169 int immm AU = (op[1] >> 4) & 0x0f; | 4168 int immm AU = (op[1] >> 4) & 0x0f; |
| 4170 #line 482 "rx-decode.opc" | 4169 #line 494 "rx-decode.opc" |
| 4171 int rdst AU = op[1] & 0x0f; | 4170 int rdst AU = op[1] & 0x0f; |
| 4172 if (trace) | 4171 if (trace) |
| 4173 { | 4172 { |
| 4174 printf ("\033[33m%s\033[0m %02x %02x\n", | 4173 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4175 "/** 0110 0001 immm rdst cmp
#%2, %1 */", | 4174 "/** 0110 0001 immm rdst cmp
#%2, %1 */", |
| 4176 op[0], op[1]); | 4175 op[0], op[1]); |
| 4177 printf (" immm = 0x%x,", immm); | 4176 printf (" immm = 0x%x,", immm); |
| 4178 printf (" rdst = 0x%x\n", rdst); | 4177 printf (" rdst = 0x%x\n", rdst); |
| 4179 } | 4178 } |
| 4180 SYNTAX("cmp #%2, %1"); | 4179 SYNTAX("cmp #%2, %1"); |
| 4181 #line 482 "rx-decode.opc" | 4180 #line 494 "rx-decode.opc" |
| 4182 ID(sub); S2C(immm); SR(rdst); F_OSZC; | 4181 ID(sub); S2C(immm); SR(rdst); F_OSZC; |
| 4183 | 4182 |
| 4184 } | 4183 } |
| 4185 break; | 4184 break; |
| 4186 } | 4185 } |
| 4187 break; | 4186 break; |
| 4188 case 0x62: | 4187 case 0x62: |
| 4189 GETBYTE (); | 4188 GETBYTE (); |
| 4190 switch (op[1] & 0x00) | 4189 switch (op[1] & 0x00) |
| 4191 { | 4190 { |
| 4192 case 0x00: | 4191 case 0x00: |
| 4193 { | 4192 { |
| 4194 /** 0110 0010 immm rdst add #%1, %0 */ | 4193 /** 0110 0010 immm rdst add #%1, %0 */ |
| 4195 #line 464 "rx-decode.opc" | 4194 #line 476 "rx-decode.opc" |
| 4196 int immm AU = (op[1] >> 4) & 0x0f; | 4195 int immm AU = (op[1] >> 4) & 0x0f; |
| 4197 #line 464 "rx-decode.opc" | 4196 #line 476 "rx-decode.opc" |
| 4198 int rdst AU = op[1] & 0x0f; | 4197 int rdst AU = op[1] & 0x0f; |
| 4199 if (trace) | 4198 if (trace) |
| 4200 { | 4199 { |
| 4201 printf ("\033[33m%s\033[0m %02x %02x\n", | 4200 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4202 "/** 0110 0010 immm rdst add
#%1, %0 */", | 4201 "/** 0110 0010 immm rdst add
#%1, %0 */", |
| 4203 op[0], op[1]); | 4202 op[0], op[1]); |
| 4204 printf (" immm = 0x%x,", immm); | 4203 printf (" immm = 0x%x,", immm); |
| 4205 printf (" rdst = 0x%x\n", rdst); | 4204 printf (" rdst = 0x%x\n", rdst); |
| 4206 } | 4205 } |
| 4207 SYNTAX("add #%1, %0"); | 4206 SYNTAX("add #%1, %0"); |
| 4208 #line 464 "rx-decode.opc" | 4207 #line 476 "rx-decode.opc" |
| 4209 ID(add); SC(immm); DR(rdst); F_OSZC; | 4208 ID(add); SC(immm); DR(rdst); F_OSZC; |
| 4210 | 4209 |
| 4211 } | 4210 } |
| 4212 break; | 4211 break; |
| 4213 } | 4212 } |
| 4214 break; | 4213 break; |
| 4215 case 0x63: | 4214 case 0x63: |
| 4216 GETBYTE (); | 4215 GETBYTE (); |
| 4217 switch (op[1] & 0x00) | 4216 switch (op[1] & 0x00) |
| 4218 { | 4217 { |
| 4219 case 0x00: | 4218 case 0x00: |
| 4220 { | 4219 { |
| 4221 /** 0110 0011 immm rdst mul #%1, %0 */ | 4220 /** 0110 0011 immm rdst mul #%1, %0 */ |
| 4222 #line 566 "rx-decode.opc" | 4221 #line 578 "rx-decode.opc" |
| 4223 int immm AU = (op[1] >> 4) & 0x0f; | 4222 int immm AU = (op[1] >> 4) & 0x0f; |
| 4224 #line 566 "rx-decode.opc" | 4223 #line 578 "rx-decode.opc" |
| 4225 int rdst AU = op[1] & 0x0f; | 4224 int rdst AU = op[1] & 0x0f; |
| 4226 if (trace) | 4225 if (trace) |
| 4227 { | 4226 { |
| 4228 printf ("\033[33m%s\033[0m %02x %02x\n", | 4227 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4229 "/** 0110 0011 immm rdst mul
#%1, %0 */", | 4228 "/** 0110 0011 immm rdst mul
#%1, %0 */", |
| 4230 op[0], op[1]); | 4229 op[0], op[1]); |
| 4231 printf (" immm = 0x%x,", immm); | 4230 printf (" immm = 0x%x,", immm); |
| 4232 printf (" rdst = 0x%x\n", rdst); | 4231 printf (" rdst = 0x%x\n", rdst); |
| 4233 } | 4232 } |
| 4234 SYNTAX("mul #%1, %0"); | 4233 SYNTAX("mul #%1, %0"); |
| 4235 #line 566 "rx-decode.opc" | 4234 #line 578 "rx-decode.opc" |
| 4236 ID(mul); DR(rdst); SC(immm); F_____; | 4235 ID(mul); DR(rdst); SC(immm); F_____; |
| 4237 | 4236 |
| 4238 } | 4237 } |
| 4239 break; | 4238 break; |
| 4240 } | 4239 } |
| 4241 break; | 4240 break; |
| 4242 case 0x64: | 4241 case 0x64: |
| 4243 GETBYTE (); | 4242 GETBYTE (); |
| 4244 switch (op[1] & 0x00) | 4243 switch (op[1] & 0x00) |
| 4245 { | 4244 { |
| 4246 case 0x00: | 4245 case 0x00: |
| 4247 { | 4246 { |
| 4248 /** 0110 0100 immm rdst and #%1, %0 */ | 4247 /** 0110 0100 immm rdst and #%1, %0 */ |
| 4249 #line 374 "rx-decode.opc" | 4248 #line 386 "rx-decode.opc" |
| 4250 int immm AU = (op[1] >> 4) & 0x0f; | 4249 int immm AU = (op[1] >> 4) & 0x0f; |
| 4251 #line 374 "rx-decode.opc" | 4250 #line 386 "rx-decode.opc" |
| 4252 int rdst AU = op[1] & 0x0f; | 4251 int rdst AU = op[1] & 0x0f; |
| 4253 if (trace) | 4252 if (trace) |
| 4254 { | 4253 { |
| 4255 printf ("\033[33m%s\033[0m %02x %02x\n", | 4254 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4256 "/** 0110 0100 immm rdst and
#%1, %0 */", | 4255 "/** 0110 0100 immm rdst and
#%1, %0 */", |
| 4257 op[0], op[1]); | 4256 op[0], op[1]); |
| 4258 printf (" immm = 0x%x,", immm); | 4257 printf (" immm = 0x%x,", immm); |
| 4259 printf (" rdst = 0x%x\n", rdst); | 4258 printf (" rdst = 0x%x\n", rdst); |
| 4260 } | 4259 } |
| 4261 SYNTAX("and #%1, %0"); | 4260 SYNTAX("and #%1, %0"); |
| 4262 #line 374 "rx-decode.opc" | 4261 #line 386 "rx-decode.opc" |
| 4263 ID(and); SC(immm); DR(rdst); F__SZ_; | 4262 ID(and); SC(immm); DR(rdst); F__SZ_; |
| 4264 | 4263 |
| 4265 } | 4264 } |
| 4266 break; | 4265 break; |
| 4267 } | 4266 } |
| 4268 break; | 4267 break; |
| 4269 case 0x65: | 4268 case 0x65: |
| 4270 GETBYTE (); | 4269 GETBYTE (); |
| 4271 switch (op[1] & 0x00) | 4270 switch (op[1] & 0x00) |
| 4272 { | 4271 { |
| 4273 case 0x00: | 4272 case 0x00: |
| 4274 { | 4273 { |
| 4275 /** 0110 0101 immm rdst or #%1, %0 */ | 4274 /** 0110 0101 immm rdst or #%1, %0 */ |
| 4276 #line 392 "rx-decode.opc" | 4275 #line 404 "rx-decode.opc" |
| 4277 int immm AU = (op[1] >> 4) & 0x0f; | 4276 int immm AU = (op[1] >> 4) & 0x0f; |
| 4278 #line 392 "rx-decode.opc" | 4277 #line 404 "rx-decode.opc" |
| 4279 int rdst AU = op[1] & 0x0f; | 4278 int rdst AU = op[1] & 0x0f; |
| 4280 if (trace) | 4279 if (trace) |
| 4281 { | 4280 { |
| 4282 printf ("\033[33m%s\033[0m %02x %02x\n", | 4281 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4283 "/** 0110 0101 immm rdst or
#%1, %0 */", | 4282 "/** 0110 0101 immm rdst or
#%1, %0 */", |
| 4284 op[0], op[1]); | 4283 op[0], op[1]); |
| 4285 printf (" immm = 0x%x,", immm); | 4284 printf (" immm = 0x%x,", immm); |
| 4286 printf (" rdst = 0x%x\n", rdst); | 4285 printf (" rdst = 0x%x\n", rdst); |
| 4287 } | 4286 } |
| 4288 SYNTAX("or #%1, %0"); | 4287 SYNTAX("or #%1, %0"); |
| 4289 #line 392 "rx-decode.opc" | 4288 #line 404 "rx-decode.opc" |
| 4290 ID(or); SC(immm); DR(rdst); F__SZ_; | 4289 ID(or); SC(immm); DR(rdst); F__SZ_; |
| 4291 | 4290 |
| 4292 } | 4291 } |
| 4293 break; | 4292 break; |
| 4294 } | 4293 } |
| 4295 break; | 4294 break; |
| 4296 case 0x66: | 4295 case 0x66: |
| 4297 GETBYTE (); | 4296 GETBYTE (); |
| 4298 switch (op[1] & 0x00) | 4297 switch (op[1] & 0x00) |
| 4299 { | 4298 { |
| 4300 case 0x00: | 4299 case 0x00: |
| 4301 { | 4300 { |
| 4302 /** 0110 0110 immm rdst mov%s #%1, %0 */ | 4301 /** 0110 0110 immm rdst mov%s #%1, %0 */ |
| 4303 #line 268 "rx-decode.opc" | 4302 #line 280 "rx-decode.opc" |
| 4304 int immm AU = (op[1] >> 4) & 0x0f; | 4303 int immm AU = (op[1] >> 4) & 0x0f; |
| 4305 #line 268 "rx-decode.opc" | 4304 #line 280 "rx-decode.opc" |
| 4306 int rdst AU = op[1] & 0x0f; | 4305 int rdst AU = op[1] & 0x0f; |
| 4307 if (trace) | 4306 if (trace) |
| 4308 { | 4307 { |
| 4309 printf ("\033[33m%s\033[0m %02x %02x\n", | 4308 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4310 "/** 0110 0110 immm rdst mov%s #%1, %0
*/", | 4309 "/** 0110 0110 immm rdst mov%s #%1, %0
*/", |
| 4311 op[0], op[1]); | 4310 op[0], op[1]); |
| 4312 printf (" immm = 0x%x,", immm); | 4311 printf (" immm = 0x%x,", immm); |
| 4313 printf (" rdst = 0x%x\n", rdst); | 4312 printf (" rdst = 0x%x\n", rdst); |
| 4314 } | 4313 } |
| 4315 SYNTAX("mov%s #%1, %0"); | 4314 SYNTAX("mov%s #%1, %0"); |
| 4316 #line 268 "rx-decode.opc" | 4315 #line 280 "rx-decode.opc" |
| 4317 ID(mov); DR(rdst); SC(immm); F_____; | 4316 ID(mov); DR(rdst); SC(immm); F_____; |
| 4318 | 4317 |
| 4319 } | 4318 } |
| 4320 break; | 4319 break; |
| 4321 } | 4320 } |
| 4322 break; | 4321 break; |
| 4323 case 0x67: | 4322 case 0x67: |
| 4324 { | 4323 { |
| 4325 /** 0110 0111 rtsd #%1 */ | 4324 /** 0110 0111 rtsd #%1 */ |
| 4326 if (trace) | 4325 if (trace) |
| 4327 { | 4326 { |
| 4328 printf ("\033[33m%s\033[0m %02x\n", | 4327 printf ("\033[33m%s\033[0m %02x\n", |
| 4329 "/** 0110 0111 rtsd #%1 */", | 4328 "/** 0110 0111 rtsd #%1 */", |
| 4330 op[0]); | 4329 op[0]); |
| 4331 } | 4330 } |
| 4332 SYNTAX("rtsd #%1"); | 4331 SYNTAX("rtsd #%1"); |
| 4333 #line 365 "rx-decode.opc" | 4332 #line 377 "rx-decode.opc" |
| 4334 ID(rtsd); SC(IMM(1) * 4); | 4333 ID(rtsd); SC(IMM(1) * 4); |
| 4335 | 4334 |
| 4336 } | 4335 } |
| 4337 break; | 4336 break; |
| 4338 case 0x68: | 4337 case 0x68: |
| 4339 GETBYTE (); | 4338 GETBYTE (); |
| 4340 switch (op[1] & 0x00) | 4339 switch (op[1] & 0x00) |
| 4341 { | 4340 { |
| 4342 case 0x00: | 4341 case 0x00: |
| 4343 op_semantics_27: | 4342 op_semantics_27: |
| 4344 { | 4343 { |
| 4345 /** 0110 100i mmmm rdst shlr #%2, %0 */ | 4344 /** 0110 100i mmmm rdst shlr #%2, %0 */ |
| 4346 #line 652 "rx-decode.opc" | 4345 #line 664 "rx-decode.opc" |
| 4347 int i AU = op[0] & 0x01; | 4346 int i AU = op[0] & 0x01; |
| 4348 #line 652 "rx-decode.opc" | 4347 #line 664 "rx-decode.opc" |
| 4349 int mmmm AU = (op[1] >> 4) & 0x0f; | 4348 int mmmm AU = (op[1] >> 4) & 0x0f; |
| 4350 #line 652 "rx-decode.opc" | 4349 #line 664 "rx-decode.opc" |
| 4351 int rdst AU = op[1] & 0x0f; | 4350 int rdst AU = op[1] & 0x0f; |
| 4352 if (trace) | 4351 if (trace) |
| 4353 { | 4352 { |
| 4354 printf ("\033[33m%s\033[0m %02x %02x\n", | 4353 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4355 "/** 0110 100i mmmm rdst shlr
#%2, %0 */", | 4354 "/** 0110 100i mmmm rdst shlr
#%2, %0 */", |
| 4356 op[0], op[1]); | 4355 op[0], op[1]); |
| 4357 printf (" i = 0x%x,", i); | 4356 printf (" i = 0x%x,", i); |
| 4358 printf (" mmmm = 0x%x,", mmmm); | 4357 printf (" mmmm = 0x%x,", mmmm); |
| 4359 printf (" rdst = 0x%x\n", rdst); | 4358 printf (" rdst = 0x%x\n", rdst); |
| 4360 } | 4359 } |
| 4361 SYNTAX("shlr #%2, %0"); | 4360 SYNTAX("shlr #%2, %0"); |
| 4362 #line 652 "rx-decode.opc" | 4361 #line 664 "rx-decode.opc" |
| 4363 ID(shlr); S2C(i*16+mmmm); SR(rdst); DR(rdst); F__SZC; | 4362 ID(shlr); S2C(i*16+mmmm); SR(rdst); DR(rdst); F__SZC; |
| 4364 | 4363 |
| 4365 } | 4364 } |
| 4366 break; | 4365 break; |
| 4367 } | 4366 } |
| 4368 break; | 4367 break; |
| 4369 case 0x69: | 4368 case 0x69: |
| 4370 GETBYTE (); | 4369 GETBYTE (); |
| 4371 switch (op[1] & 0x00) | 4370 switch (op[1] & 0x00) |
| 4372 { | 4371 { |
| 4373 case 0x00: | 4372 case 0x00: |
| 4374 goto op_semantics_27; | 4373 goto op_semantics_27; |
| 4375 break; | 4374 break; |
| 4376 } | 4375 } |
| 4377 break; | 4376 break; |
| 4378 case 0x6a: | 4377 case 0x6a: |
| 4379 GETBYTE (); | 4378 GETBYTE (); |
| 4380 switch (op[1] & 0x00) | 4379 switch (op[1] & 0x00) |
| 4381 { | 4380 { |
| 4382 case 0x00: | 4381 case 0x00: |
| 4383 op_semantics_28: | 4382 op_semantics_28: |
| 4384 { | 4383 { |
| 4385 /** 0110 101i mmmm rdst shar #%2, %0 */ | 4384 /** 0110 101i mmmm rdst shar #%2, %0 */ |
| 4386 #line 642 "rx-decode.opc" | 4385 #line 654 "rx-decode.opc" |
| 4387 int i AU = op[0] & 0x01; | 4386 int i AU = op[0] & 0x01; |
| 4388 #line 642 "rx-decode.opc" | 4387 #line 654 "rx-decode.opc" |
| 4389 int mmmm AU = (op[1] >> 4) & 0x0f; | 4388 int mmmm AU = (op[1] >> 4) & 0x0f; |
| 4390 #line 642 "rx-decode.opc" | 4389 #line 654 "rx-decode.opc" |
| 4391 int rdst AU = op[1] & 0x0f; | 4390 int rdst AU = op[1] & 0x0f; |
| 4392 if (trace) | 4391 if (trace) |
| 4393 { | 4392 { |
| 4394 printf ("\033[33m%s\033[0m %02x %02x\n", | 4393 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4395 "/** 0110 101i mmmm rdst shar
#%2, %0 */", | 4394 "/** 0110 101i mmmm rdst shar
#%2, %0 */", |
| 4396 op[0], op[1]); | 4395 op[0], op[1]); |
| 4397 printf (" i = 0x%x,", i); | 4396 printf (" i = 0x%x,", i); |
| 4398 printf (" mmmm = 0x%x,", mmmm); | 4397 printf (" mmmm = 0x%x,", mmmm); |
| 4399 printf (" rdst = 0x%x\n", rdst); | 4398 printf (" rdst = 0x%x\n", rdst); |
| 4400 } | 4399 } |
| 4401 SYNTAX("shar #%2, %0"); | 4400 SYNTAX("shar #%2, %0"); |
| 4402 #line 642 "rx-decode.opc" | 4401 #line 654 "rx-decode.opc" |
| 4403 ID(shar); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_0SZC; | 4402 ID(shar); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_0SZC; |
| 4404 | 4403 |
| 4405 } | 4404 } |
| 4406 break; | 4405 break; |
| 4407 } | 4406 } |
| 4408 break; | 4407 break; |
| 4409 case 0x6b: | 4408 case 0x6b: |
| 4410 GETBYTE (); | 4409 GETBYTE (); |
| 4411 switch (op[1] & 0x00) | 4410 switch (op[1] & 0x00) |
| 4412 { | 4411 { |
| 4413 case 0x00: | 4412 case 0x00: |
| 4414 goto op_semantics_28; | 4413 goto op_semantics_28; |
| 4415 break; | 4414 break; |
| 4416 } | 4415 } |
| 4417 break; | 4416 break; |
| 4418 case 0x6c: | 4417 case 0x6c: |
| 4419 GETBYTE (); | 4418 GETBYTE (); |
| 4420 switch (op[1] & 0x00) | 4419 switch (op[1] & 0x00) |
| 4421 { | 4420 { |
| 4422 case 0x00: | 4421 case 0x00: |
| 4423 op_semantics_29: | 4422 op_semantics_29: |
| 4424 { | 4423 { |
| 4425 /** 0110 110i mmmm rdst shll #%2, %0 */ | 4424 /** 0110 110i mmmm rdst shll #%2, %0 */ |
| 4426 #line 632 "rx-decode.opc" | 4425 #line 644 "rx-decode.opc" |
| 4427 int i AU = op[0] & 0x01; | 4426 int i AU = op[0] & 0x01; |
| 4428 #line 632 "rx-decode.opc" | 4427 #line 644 "rx-decode.opc" |
| 4429 int mmmm AU = (op[1] >> 4) & 0x0f; | 4428 int mmmm AU = (op[1] >> 4) & 0x0f; |
| 4430 #line 632 "rx-decode.opc" | 4429 #line 644 "rx-decode.opc" |
| 4431 int rdst AU = op[1] & 0x0f; | 4430 int rdst AU = op[1] & 0x0f; |
| 4432 if (trace) | 4431 if (trace) |
| 4433 { | 4432 { |
| 4434 printf ("\033[33m%s\033[0m %02x %02x\n", | 4433 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4435 "/** 0110 110i mmmm rdst shll
#%2, %0 */", | 4434 "/** 0110 110i mmmm rdst shll
#%2, %0 */", |
| 4436 op[0], op[1]); | 4435 op[0], op[1]); |
| 4437 printf (" i = 0x%x,", i); | 4436 printf (" i = 0x%x,", i); |
| 4438 printf (" mmmm = 0x%x,", mmmm); | 4437 printf (" mmmm = 0x%x,", mmmm); |
| 4439 printf (" rdst = 0x%x\n", rdst); | 4438 printf (" rdst = 0x%x\n", rdst); |
| 4440 } | 4439 } |
| 4441 SYNTAX("shll #%2, %0"); | 4440 SYNTAX("shll #%2, %0"); |
| 4442 #line 632 "rx-decode.opc" | 4441 #line 644 "rx-decode.opc" |
| 4443 ID(shll); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_OSZC; | 4442 ID(shll); S2C(i*16+mmmm); SR(rdst); DR(rdst); F_OSZC; |
| 4444 | 4443 |
| 4445 } | 4444 } |
| 4446 break; | 4445 break; |
| 4447 } | 4446 } |
| 4448 break; | 4447 break; |
| 4449 case 0x6d: | 4448 case 0x6d: |
| 4450 GETBYTE (); | 4449 GETBYTE (); |
| 4451 switch (op[1] & 0x00) | 4450 switch (op[1] & 0x00) |
| 4452 { | 4451 { |
| 4453 case 0x00: | 4452 case 0x00: |
| 4454 goto op_semantics_29; | 4453 goto op_semantics_29; |
| 4455 break; | 4454 break; |
| 4456 } | 4455 } |
| 4457 break; | 4456 break; |
| 4458 case 0x6e: | 4457 case 0x6e: |
| 4459 GETBYTE (); | 4458 GETBYTE (); |
| 4460 switch (op[1] & 0x00) | 4459 switch (op[1] & 0x00) |
| 4461 { | 4460 { |
| 4462 case 0x00: | 4461 case 0x00: |
| 4463 { | 4462 { |
| 4464 /** 0110 1110 dsta dstb pushm %1-%2 */ | 4463 /** 0110 1110 dsta dstb pushm %1-%2 */ |
| 4465 #line 332 "rx-decode.opc" | 4464 #line 344 "rx-decode.opc" |
| 4466 int dsta AU = (op[1] >> 4) & 0x0f; | 4465 int dsta AU = (op[1] >> 4) & 0x0f; |
| 4467 #line 332 "rx-decode.opc" | 4466 #line 344 "rx-decode.opc" |
| 4468 int dstb AU = op[1] & 0x0f; | 4467 int dstb AU = op[1] & 0x0f; |
| 4469 if (trace) | 4468 if (trace) |
| 4470 { | 4469 { |
| 4471 printf ("\033[33m%s\033[0m %02x %02x\n", | 4470 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4472 "/** 0110 1110 dsta dstb pushm %1-%2 */
", | 4471 "/** 0110 1110 dsta dstb pushm %1-%2 */
", |
| 4473 op[0], op[1]); | 4472 op[0], op[1]); |
| 4474 printf (" dsta = 0x%x,", dsta); | 4473 printf (" dsta = 0x%x,", dsta); |
| 4475 printf (" dstb = 0x%x\n", dstb); | 4474 printf (" dstb = 0x%x\n", dstb); |
| 4476 } | 4475 } |
| 4477 SYNTAX("pushm %1-%2"); | 4476 SYNTAX("pushm %1-%2"); |
| 4478 #line 332 "rx-decode.opc" | 4477 #line 344 "rx-decode.opc" |
| 4479 ID(pushm); SR(dsta); S2R(dstb); F_____; | 4478 ID(pushm); SR(dsta); S2R(dstb); F_____; |
| 4480 | 4479 |
| 4481 } | 4480 } |
| 4482 break; | 4481 break; |
| 4483 } | 4482 } |
| 4484 break; | 4483 break; |
| 4485 case 0x6f: | 4484 case 0x6f: |
| 4486 GETBYTE (); | 4485 GETBYTE (); |
| 4487 switch (op[1] & 0x00) | 4486 switch (op[1] & 0x00) |
| 4488 { | 4487 { |
| 4489 case 0x00: | 4488 case 0x00: |
| 4490 { | 4489 { |
| 4491 /** 0110 1111 dsta dstb popm %1-%2 */ | 4490 /** 0110 1111 dsta dstb popm %1-%2 */ |
| 4492 #line 329 "rx-decode.opc" | 4491 #line 341 "rx-decode.opc" |
| 4493 int dsta AU = (op[1] >> 4) & 0x0f; | 4492 int dsta AU = (op[1] >> 4) & 0x0f; |
| 4494 #line 329 "rx-decode.opc" | 4493 #line 341 "rx-decode.opc" |
| 4495 int dstb AU = op[1] & 0x0f; | 4494 int dstb AU = op[1] & 0x0f; |
| 4496 if (trace) | 4495 if (trace) |
| 4497 { | 4496 { |
| 4498 printf ("\033[33m%s\033[0m %02x %02x\n", | 4497 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4499 "/** 0110 1111 dsta dstb popm %1-%2 */
", | 4498 "/** 0110 1111 dsta dstb popm %1-%2 */
", |
| 4500 op[0], op[1]); | 4499 op[0], op[1]); |
| 4501 printf (" dsta = 0x%x,", dsta); | 4500 printf (" dsta = 0x%x,", dsta); |
| 4502 printf (" dstb = 0x%x\n", dstb); | 4501 printf (" dstb = 0x%x\n", dstb); |
| 4503 } | 4502 } |
| 4504 SYNTAX("popm %1-%2"); | 4503 SYNTAX("popm %1-%2"); |
| 4505 #line 329 "rx-decode.opc" | 4504 #line 341 "rx-decode.opc" |
| 4506 ID(popm); SR(dsta); S2R(dstb); F_____; | 4505 ID(popm); SR(dsta); S2R(dstb); F_____; |
| 4507 | 4506 |
| 4508 } | 4507 } |
| 4509 break; | 4508 break; |
| 4510 } | 4509 } |
| 4511 break; | 4510 break; |
| 4512 case 0x70: | 4511 case 0x70: |
| 4513 GETBYTE (); | 4512 GETBYTE (); |
| 4514 switch (op[1] & 0x00) | 4513 switch (op[1] & 0x00) |
| 4515 { | 4514 { |
| 4516 case 0x00: | 4515 case 0x00: |
| 4517 op_semantics_30: | 4516 op_semantics_30: |
| 4518 { | 4517 { |
| 4519 /** 0111 00im rsrc rdst add #%1, %2, %0 */ | 4518 /** 0111 00im rsrc rdst add #%1, %2, %0 */ |
| 4520 #line 473 "rx-decode.opc" | 4519 #line 485 "rx-decode.opc" |
| 4521 int im AU = op[0] & 0x03; | 4520 int im AU = op[0] & 0x03; |
| 4522 #line 473 "rx-decode.opc" | 4521 #line 485 "rx-decode.opc" |
| 4523 int rsrc AU = (op[1] >> 4) & 0x0f; | 4522 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 4524 #line 473 "rx-decode.opc" | 4523 #line 485 "rx-decode.opc" |
| 4525 int rdst AU = op[1] & 0x0f; | 4524 int rdst AU = op[1] & 0x0f; |
| 4526 if (trace) | 4525 if (trace) |
| 4527 { | 4526 { |
| 4528 printf ("\033[33m%s\033[0m %02x %02x\n", | 4527 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4529 "/** 0111 00im rsrc rdst add
#%1, %2, %0 */", | 4528 "/** 0111 00im rsrc rdst add
#%1, %2, %0 */", |
| 4530 op[0], op[1]); | 4529 op[0], op[1]); |
| 4531 printf (" im = 0x%x,", im); | 4530 printf (" im = 0x%x,", im); |
| 4532 printf (" rsrc = 0x%x,", rsrc); | 4531 printf (" rsrc = 0x%x,", rsrc); |
| 4533 printf (" rdst = 0x%x\n", rdst); | 4532 printf (" rdst = 0x%x\n", rdst); |
| 4534 } | 4533 } |
| 4535 SYNTAX("add #%1, %2, %0"); | 4534 SYNTAX("add #%1, %2, %0"); |
| 4536 #line 473 "rx-decode.opc" | 4535 #line 485 "rx-decode.opc" |
| 4537 ID(add); SC(IMMex(im)); S2R(rsrc); DR(rdst); F_OSZC; | 4536 ID(add); SC(IMMex(im)); S2R(rsrc); DR(rdst); F_OSZC; |
| 4538 | 4537 |
| 4539 } | 4538 } |
| 4540 break; | 4539 break; |
| 4541 } | 4540 } |
| 4542 break; | 4541 break; |
| 4543 case 0x71: | 4542 case 0x71: |
| 4544 GETBYTE (); | 4543 GETBYTE (); |
| 4545 switch (op[1] & 0x00) | 4544 switch (op[1] & 0x00) |
| 4546 { | 4545 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 4568 } | 4567 } |
| 4569 break; | 4568 break; |
| 4570 case 0x74: | 4569 case 0x74: |
| 4571 GETBYTE (); | 4570 GETBYTE (); |
| 4572 switch (op[1] & 0xf0) | 4571 switch (op[1] & 0xf0) |
| 4573 { | 4572 { |
| 4574 case 0x00: | 4573 case 0x00: |
| 4575 op_semantics_31: | 4574 op_semantics_31: |
| 4576 { | 4575 { |
| 4577 /** 0111 01im 0000 rsrc cmp #%2, %1%S1 */ | 4576 /** 0111 01im 0000 rsrc cmp #%2, %1%S1 */ |
| 4578 #line 485 "rx-decode.opc" | 4577 #line 497 "rx-decode.opc" |
| 4579 int im AU = op[0] & 0x03; | 4578 int im AU = op[0] & 0x03; |
| 4580 #line 485 "rx-decode.opc" | 4579 #line 497 "rx-decode.opc" |
| 4581 int rsrc AU = op[1] & 0x0f; | 4580 int rsrc AU = op[1] & 0x0f; |
| 4582 if (trace) | 4581 if (trace) |
| 4583 { | 4582 { |
| 4584 printf ("\033[33m%s\033[0m %02x %02x\n", | 4583 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4585 "/** 0111 01im 0000 rsrc cmp #%2, %1%
S1 */", | 4584 "/** 0111 01im 0000 rsrc cmp #%2, %1%
S1 */", |
| 4586 op[0], op[1]); | 4585 op[0], op[1]); |
| 4587 printf (" im = 0x%x,", im); | 4586 printf (" im = 0x%x,", im); |
| 4588 printf (" rsrc = 0x%x\n", rsrc); | 4587 printf (" rsrc = 0x%x\n", rsrc); |
| 4589 } | 4588 } |
| 4590 SYNTAX("cmp #%2, %1%S1"); | 4589 SYNTAX("cmp #%2, %1%S1"); |
| 4591 #line 485 "rx-decode.opc" | 4590 #line 497 "rx-decode.opc" |
| 4592 ID(sub); SR(rsrc); S2C(IMMex(im)); F_OSZC; | 4591 ID(sub); SR(rsrc); S2C(IMMex(im)); F_OSZC; |
| 4593 | 4592 |
| 4594 } | 4593 } |
| 4595 break; | 4594 break; |
| 4596 case 0x10: | 4595 case 0x10: |
| 4597 op_semantics_32: | 4596 op_semantics_32: |
| 4598 { | 4597 { |
| 4599 /** 0111 01im 0001rdst mul #%1, %0 */ | 4598 /** 0111 01im 0001rdst mul #%1, %0 */ |
| 4600 #line 569 "rx-decode.opc" | 4599 #line 581 "rx-decode.opc" |
| 4601 int im AU = op[0] & 0x03; | 4600 int im AU = op[0] & 0x03; |
| 4602 #line 569 "rx-decode.opc" | 4601 #line 581 "rx-decode.opc" |
| 4603 int rdst AU = op[1] & 0x0f; | 4602 int rdst AU = op[1] & 0x0f; |
| 4604 if (trace) | 4603 if (trace) |
| 4605 { | 4604 { |
| 4606 printf ("\033[33m%s\033[0m %02x %02x\n", | 4605 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4607 "/** 0111 01im 0001rdst mul
#%1, %0 */", | 4606 "/** 0111 01im 0001rdst mul
#%1, %0 */", |
| 4608 op[0], op[1]); | 4607 op[0], op[1]); |
| 4609 printf (" im = 0x%x,", im); | 4608 printf (" im = 0x%x,", im); |
| 4610 printf (" rdst = 0x%x\n", rdst); | 4609 printf (" rdst = 0x%x\n", rdst); |
| 4611 } | 4610 } |
| 4612 SYNTAX("mul #%1, %0"); | 4611 SYNTAX("mul #%1, %0"); |
| 4613 #line 569 "rx-decode.opc" | 4612 #line 581 "rx-decode.opc" |
| 4614 ID(mul); DR(rdst); SC(IMMex(im)); F_____; | 4613 ID(mul); DR(rdst); SC(IMMex(im)); F_____; |
| 4615 | 4614 |
| 4616 } | 4615 } |
| 4617 break; | 4616 break; |
| 4618 case 0x20: | 4617 case 0x20: |
| 4619 op_semantics_33: | 4618 op_semantics_33: |
| 4620 { | 4619 { |
| 4621 /** 0111 01im 0010 rdst and #%1, %0 */ | 4620 /** 0111 01im 0010 rdst and #%1, %0 */ |
| 4622 #line 377 "rx-decode.opc" | 4621 #line 389 "rx-decode.opc" |
| 4623 int im AU = op[0] & 0x03; | 4622 int im AU = op[0] & 0x03; |
| 4624 #line 377 "rx-decode.opc" | 4623 #line 389 "rx-decode.opc" |
| 4625 int rdst AU = op[1] & 0x0f; | 4624 int rdst AU = op[1] & 0x0f; |
| 4626 if (trace) | 4625 if (trace) |
| 4627 { | 4626 { |
| 4628 printf ("\033[33m%s\033[0m %02x %02x\n", | 4627 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4629 "/** 0111 01im 0010 rdst and
#%1, %0 */", | 4628 "/** 0111 01im 0010 rdst and
#%1, %0 */", |
| 4630 op[0], op[1]); | 4629 op[0], op[1]); |
| 4631 printf (" im = 0x%x,", im); | 4630 printf (" im = 0x%x,", im); |
| 4632 printf (" rdst = 0x%x\n", rdst); | 4631 printf (" rdst = 0x%x\n", rdst); |
| 4633 } | 4632 } |
| 4634 SYNTAX("and #%1, %0"); | 4633 SYNTAX("and #%1, %0"); |
| 4635 #line 377 "rx-decode.opc" | 4634 #line 389 "rx-decode.opc" |
| 4636 ID(and); SC(IMMex(im)); DR(rdst); F__SZ_; | 4635 ID(and); SC(IMMex(im)); DR(rdst); F__SZ_; |
| 4637 | 4636 |
| 4638 } | 4637 } |
| 4639 break; | 4638 break; |
| 4640 case 0x30: | 4639 case 0x30: |
| 4641 op_semantics_34: | 4640 op_semantics_34: |
| 4642 { | 4641 { |
| 4643 /** 0111 01im 0011 rdst or #%1, %0 */ | 4642 /** 0111 01im 0011 rdst or #%1, %0 */ |
| 4644 #line 395 "rx-decode.opc" | 4643 #line 407 "rx-decode.opc" |
| 4645 int im AU = op[0] & 0x03; | 4644 int im AU = op[0] & 0x03; |
| 4646 #line 395 "rx-decode.opc" | 4645 #line 407 "rx-decode.opc" |
| 4647 int rdst AU = op[1] & 0x0f; | 4646 int rdst AU = op[1] & 0x0f; |
| 4648 if (trace) | 4647 if (trace) |
| 4649 { | 4648 { |
| 4650 printf ("\033[33m%s\033[0m %02x %02x\n", | 4649 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4651 "/** 0111 01im 0011 rdst or
#%1, %0 */", | 4650 "/** 0111 01im 0011 rdst or
#%1, %0 */", |
| 4652 op[0], op[1]); | 4651 op[0], op[1]); |
| 4653 printf (" im = 0x%x,", im); | 4652 printf (" im = 0x%x,", im); |
| 4654 printf (" rdst = 0x%x\n", rdst); | 4653 printf (" rdst = 0x%x\n", rdst); |
| 4655 } | 4654 } |
| 4656 SYNTAX("or #%1, %0"); | 4655 SYNTAX("or #%1, %0"); |
| 4657 #line 395 "rx-decode.opc" | 4656 #line 407 "rx-decode.opc" |
| 4658 ID(or); SC(IMMex(im)); DR(rdst); F__SZ_; | 4657 ID(or); SC(IMMex(im)); DR(rdst); F__SZ_; |
| 4659 | 4658 |
| 4660 } | 4659 } |
| 4661 break; | 4660 break; |
| 4662 default: UNSUPPORTED(); break; | 4661 default: UNSUPPORTED(); break; |
| 4663 } | 4662 } |
| 4664 break; | 4663 break; |
| 4665 case 0x75: | 4664 case 0x75: |
| 4666 GETBYTE (); | 4665 GETBYTE (); |
| 4667 switch (op[1] & 0xff) | 4666 switch (op[1] & 0xff) |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4749 case 0x48: | 4748 case 0x48: |
| 4750 case 0x49: | 4749 case 0x49: |
| 4751 case 0x4a: | 4750 case 0x4a: |
| 4752 case 0x4b: | 4751 case 0x4b: |
| 4753 case 0x4c: | 4752 case 0x4c: |
| 4754 case 0x4d: | 4753 case 0x4d: |
| 4755 case 0x4e: | 4754 case 0x4e: |
| 4756 case 0x4f: | 4755 case 0x4f: |
| 4757 { | 4756 { |
| 4758 /** 0111 0101 0100 rdst mov%s #%1, %0 */ | 4757 /** 0111 0101 0100 rdst mov%s #%1, %0 */ |
| 4759 #line 262 "rx-decode.opc" | 4758 #line 261 "rx-decode.opc" |
| 4760 int rdst AU = op[1] & 0x0f; | 4759 int rdst AU = op[1] & 0x0f; |
| 4761 if (trace) | 4760 if (trace) |
| 4762 { | 4761 { |
| 4763 printf ("\033[33m%s\033[0m %02x %02x\n", | 4762 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4764 "/** 0111 0101 0100 rdst mov%s #%1, %0
*/", | 4763 "/** 0111 0101 0100 rdst mov%s #%1, %0
*/", |
| 4765 op[0], op[1]); | 4764 op[0], op[1]); |
| 4766 printf (" rdst = 0x%x\n", rdst); | 4765 printf (" rdst = 0x%x\n", rdst); |
| 4767 } | 4766 } |
| 4768 SYNTAX("mov%s #%1, %0"); | 4767 SYNTAX("mov%s #%1, %0"); |
| 4769 #line 262 "rx-decode.opc" | 4768 #line 261 "rx-decode.opc" |
| 4770 ID(mov); DR(rdst); SC(IMM (1)); F_____; | 4769 ID(mov); DR(rdst); SC(IMM (1)); F_____; |
| 4771 | 4770 |
| 4772 } | 4771 } |
| 4773 break; | 4772 break; |
| 4774 case 0x50: | 4773 case 0x50: |
| 4775 case 0x51: | 4774 case 0x51: |
| 4776 case 0x52: | 4775 case 0x52: |
| 4777 case 0x53: | 4776 case 0x53: |
| 4778 case 0x54: | 4777 case 0x54: |
| 4779 case 0x55: | 4778 case 0x55: |
| 4780 case 0x56: | 4779 case 0x56: |
| 4781 case 0x57: | 4780 case 0x57: |
| 4782 case 0x58: | 4781 case 0x58: |
| 4783 case 0x59: | 4782 case 0x59: |
| 4784 case 0x5a: | 4783 case 0x5a: |
| 4785 case 0x5b: | 4784 case 0x5b: |
| 4786 case 0x5c: | 4785 case 0x5c: |
| 4787 case 0x5d: | 4786 case 0x5d: |
| 4788 case 0x5e: | 4787 case 0x5e: |
| 4789 case 0x5f: | 4788 case 0x5f: |
| 4790 { | 4789 { |
| 4791 /** 0111 0101 0101 rsrc cmp #%2, %1 */ | 4790 /** 0111 0101 0101 rsrc cmp #%2, %1 */ |
| 4792 #line 488 "rx-decode.opc" | 4791 #line 500 "rx-decode.opc" |
| 4793 int rsrc AU = op[1] & 0x0f; | 4792 int rsrc AU = op[1] & 0x0f; |
| 4794 if (trace) | 4793 if (trace) |
| 4795 { | 4794 { |
| 4796 printf ("\033[33m%s\033[0m %02x %02x\n", | 4795 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4797 "/** 0111 0101 0101 rsrc cmp
#%2, %1 */", | 4796 "/** 0111 0101 0101 rsrc cmp
#%2, %1 */", |
| 4798 op[0], op[1]); | 4797 op[0], op[1]); |
| 4799 printf (" rsrc = 0x%x\n", rsrc); | 4798 printf (" rsrc = 0x%x\n", rsrc); |
| 4800 } | 4799 } |
| 4801 SYNTAX("cmp #%2, %1"); | 4800 SYNTAX("cmp #%2, %1"); |
| 4802 #line 488 "rx-decode.opc" | 4801 #line 500 "rx-decode.opc" |
| 4803 ID(sub); SR(rsrc); S2C(IMM(1)); F_OSZC; | 4802 ID(sub); SR(rsrc); S2C(IMM(1)); F_OSZC; |
| 4804 | 4803 |
| 4805 } | 4804 } |
| 4806 break; | 4805 break; |
| 4807 case 0x60: | 4806 case 0x60: |
| 4808 { | 4807 { |
| 4809 /** 0111 0101 0110 0000 int #%1 */ | 4808 /** 0111 0101 0110 0000 int #%1 */ |
| 4810 if (trace) | 4809 if (trace) |
| 4811 { | 4810 { |
| 4812 printf ("\033[33m%s\033[0m %02x %02x\n", | 4811 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4813 "/** 0111 0101 0110 0000 int #%1 */", | 4812 "/** 0111 0101 0110 0000 int #%1 */", |
| 4814 op[0], op[1]); | 4813 op[0], op[1]); |
| 4815 } | 4814 } |
| 4816 SYNTAX("int #%1"); | 4815 SYNTAX("int #%1"); |
| 4817 #line 949 "rx-decode.opc" | 4816 #line 961 "rx-decode.opc" |
| 4818 ID(int); SC(IMM(1)); | 4817 ID(int); SC(IMM(1)); |
| 4819 | 4818 |
| 4820 } | 4819 } |
| 4821 break; | 4820 break; |
| 4822 case 0x70: | 4821 case 0x70: |
| 4823 GETBYTE (); | 4822 GETBYTE (); |
| 4824 switch (op[2] & 0xf0) | 4823 switch (op[2] & 0xf0) |
| 4825 { | 4824 { |
| 4826 case 0x00: | 4825 case 0x00: |
| 4827 { | 4826 { |
| 4828 /** 0111 0101 0111 0000 0000 immm mvtipl #%1 */ | 4827 /** 0111 0101 0111 0000 0000 immm mvtipl #%1 */ |
| 4829 #line 916 "rx-decode.opc" | 4828 #line 928 "rx-decode.opc" |
| 4830 int immm AU = op[2] & 0x0f; | 4829 int immm AU = op[2] & 0x0f; |
| 4831 if (trace) | 4830 if (trace) |
| 4832 { | 4831 { |
| 4833 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 4832 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 4834 "/** 0111 0101 0111 0000 0000 immm mvtipl
#%1 */", | 4833 "/** 0111 0101 0111 0000 0000 immm mvtipl
#%1 */", |
| 4835 op[0], op[1], op[2]); | 4834 op[0], op[1], op[2]); |
| 4836 printf (" immm = 0x%x\n", immm); | 4835 printf (" immm = 0x%x\n", immm); |
| 4837 } | 4836 } |
| 4838 SYNTAX("mvtipl #%1"); | 4837 SYNTAX("mvtipl #%1"); |
| 4839 #line 916 "rx-decode.opc" | 4838 #line 928 "rx-decode.opc" |
| 4840 ID(mvtipl); SC(immm); | 4839 ID(mvtipl); SC(immm); |
| 4841 | 4840 |
| 4842 } | 4841 } |
| 4843 break; | 4842 break; |
| 4844 default: UNSUPPORTED(); break; | 4843 default: UNSUPPORTED(); break; |
| 4845 } | 4844 } |
| 4846 break; | 4845 break; |
| 4847 default: UNSUPPORTED(); break; | 4846 default: UNSUPPORTED(); break; |
| 4848 } | 4847 } |
| 4849 break; | 4848 break; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4886 } | 4885 } |
| 4887 break; | 4886 break; |
| 4888 case 0x78: | 4887 case 0x78: |
| 4889 GETBYTE (); | 4888 GETBYTE (); |
| 4890 switch (op[1] & 0x00) | 4889 switch (op[1] & 0x00) |
| 4891 { | 4890 { |
| 4892 case 0x00: | 4891 case 0x00: |
| 4893 op_semantics_35: | 4892 op_semantics_35: |
| 4894 { | 4893 { |
| 4895 /** 0111 100b ittt rdst bset #%1, %0 */ | 4894 /** 0111 100b ittt rdst bset #%1, %0 */ |
| 4896 #line 867 "rx-decode.opc" | 4895 #line 879 "rx-decode.opc" |
| 4897 int b AU = op[0] & 0x01; | 4896 int b AU = op[0] & 0x01; |
| 4898 #line 867 "rx-decode.opc" | 4897 #line 879 "rx-decode.opc" |
| 4899 int ittt AU = (op[1] >> 4) & 0x0f; | 4898 int ittt AU = (op[1] >> 4) & 0x0f; |
| 4900 #line 867 "rx-decode.opc" | 4899 #line 879 "rx-decode.opc" |
| 4901 int rdst AU = op[1] & 0x0f; | 4900 int rdst AU = op[1] & 0x0f; |
| 4902 if (trace) | 4901 if (trace) |
| 4903 { | 4902 { |
| 4904 printf ("\033[33m%s\033[0m %02x %02x\n", | 4903 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4905 "/** 0111 100b ittt rdst bset
#%1, %0 */", | 4904 "/** 0111 100b ittt rdst bset
#%1, %0 */", |
| 4906 op[0], op[1]); | 4905 op[0], op[1]); |
| 4907 printf (" b = 0x%x,", b); | 4906 printf (" b = 0x%x,", b); |
| 4908 printf (" ittt = 0x%x,", ittt); | 4907 printf (" ittt = 0x%x,", ittt); |
| 4909 printf (" rdst = 0x%x\n", rdst); | 4908 printf (" rdst = 0x%x\n", rdst); |
| 4910 } | 4909 } |
| 4911 SYNTAX("bset #%1, %0"); | 4910 SYNTAX("bset #%1, %0"); |
| 4912 #line 867 "rx-decode.opc" | 4911 #line 879 "rx-decode.opc" |
| 4913 ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; | 4912 ID(bset); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; |
| 4914 | 4913 |
| 4915 | 4914 |
| 4916 } | 4915 } |
| 4917 break; | 4916 break; |
| 4918 } | 4917 } |
| 4919 break; | 4918 break; |
| 4920 case 0x79: | 4919 case 0x79: |
| 4921 GETBYTE (); | 4920 GETBYTE (); |
| 4922 switch (op[1] & 0x00) | 4921 switch (op[1] & 0x00) |
| 4923 { | 4922 { |
| 4924 case 0x00: | 4923 case 0x00: |
| 4925 goto op_semantics_35; | 4924 goto op_semantics_35; |
| 4926 break; | 4925 break; |
| 4927 } | 4926 } |
| 4928 break; | 4927 break; |
| 4929 case 0x7a: | 4928 case 0x7a: |
| 4930 GETBYTE (); | 4929 GETBYTE (); |
| 4931 switch (op[1] & 0x00) | 4930 switch (op[1] & 0x00) |
| 4932 { | 4931 { |
| 4933 case 0x00: | 4932 case 0x00: |
| 4934 op_semantics_36: | 4933 op_semantics_36: |
| 4935 { | 4934 { |
| 4936 /** 0111 101b ittt rdst bclr #%1, %0 */ | 4935 /** 0111 101b ittt rdst bclr #%1, %0 */ |
| 4937 #line 877 "rx-decode.opc" | 4936 #line 889 "rx-decode.opc" |
| 4938 int b AU = op[0] & 0x01; | 4937 int b AU = op[0] & 0x01; |
| 4939 #line 877 "rx-decode.opc" | 4938 #line 889 "rx-decode.opc" |
| 4940 int ittt AU = (op[1] >> 4) & 0x0f; | 4939 int ittt AU = (op[1] >> 4) & 0x0f; |
| 4941 #line 877 "rx-decode.opc" | 4940 #line 889 "rx-decode.opc" |
| 4942 int rdst AU = op[1] & 0x0f; | 4941 int rdst AU = op[1] & 0x0f; |
| 4943 if (trace) | 4942 if (trace) |
| 4944 { | 4943 { |
| 4945 printf ("\033[33m%s\033[0m %02x %02x\n", | 4944 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4946 "/** 0111 101b ittt rdst bclr
#%1, %0 */", | 4945 "/** 0111 101b ittt rdst bclr
#%1, %0 */", |
| 4947 op[0], op[1]); | 4946 op[0], op[1]); |
| 4948 printf (" b = 0x%x,", b); | 4947 printf (" b = 0x%x,", b); |
| 4949 printf (" ittt = 0x%x,", ittt); | 4948 printf (" ittt = 0x%x,", ittt); |
| 4950 printf (" rdst = 0x%x\n", rdst); | 4949 printf (" rdst = 0x%x\n", rdst); |
| 4951 } | 4950 } |
| 4952 SYNTAX("bclr #%1, %0"); | 4951 SYNTAX("bclr #%1, %0"); |
| 4953 #line 877 "rx-decode.opc" | 4952 #line 889 "rx-decode.opc" |
| 4954 ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; | 4953 ID(bclr); BWL(LSIZE); SC(b*16+ittt); DR(rdst); F_____; |
| 4955 | 4954 |
| 4956 | 4955 |
| 4957 } | 4956 } |
| 4958 break; | 4957 break; |
| 4959 } | 4958 } |
| 4960 break; | 4959 break; |
| 4961 case 0x7b: | 4960 case 0x7b: |
| 4962 GETBYTE (); | 4961 GETBYTE (); |
| 4963 switch (op[1] & 0x00) | 4962 switch (op[1] & 0x00) |
| 4964 { | 4963 { |
| 4965 case 0x00: | 4964 case 0x00: |
| 4966 goto op_semantics_36; | 4965 goto op_semantics_36; |
| 4967 break; | 4966 break; |
| 4968 } | 4967 } |
| 4969 break; | 4968 break; |
| 4970 case 0x7c: | 4969 case 0x7c: |
| 4971 GETBYTE (); | 4970 GETBYTE (); |
| 4972 switch (op[1] & 0x00) | 4971 switch (op[1] & 0x00) |
| 4973 { | 4972 { |
| 4974 case 0x00: | 4973 case 0x00: |
| 4975 op_semantics_37: | 4974 op_semantics_37: |
| 4976 { | 4975 { |
| 4977 /** 0111 110b ittt rdst btst #%2, %1 */ | 4976 /** 0111 110b ittt rdst btst #%2, %1 */ |
| 4978 #line 887 "rx-decode.opc" | 4977 #line 899 "rx-decode.opc" |
| 4979 int b AU = op[0] & 0x01; | 4978 int b AU = op[0] & 0x01; |
| 4980 #line 887 "rx-decode.opc" | 4979 #line 899 "rx-decode.opc" |
| 4981 int ittt AU = (op[1] >> 4) & 0x0f; | 4980 int ittt AU = (op[1] >> 4) & 0x0f; |
| 4982 #line 887 "rx-decode.opc" | 4981 #line 899 "rx-decode.opc" |
| 4983 int rdst AU = op[1] & 0x0f; | 4982 int rdst AU = op[1] & 0x0f; |
| 4984 if (trace) | 4983 if (trace) |
| 4985 { | 4984 { |
| 4986 printf ("\033[33m%s\033[0m %02x %02x\n", | 4985 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 4987 "/** 0111 110b ittt rdst btst
#%2, %1 */", | 4986 "/** 0111 110b ittt rdst btst
#%2, %1 */", |
| 4988 op[0], op[1]); | 4987 op[0], op[1]); |
| 4989 printf (" b = 0x%x,", b); | 4988 printf (" b = 0x%x,", b); |
| 4990 printf (" ittt = 0x%x,", ittt); | 4989 printf (" ittt = 0x%x,", ittt); |
| 4991 printf (" rdst = 0x%x\n", rdst); | 4990 printf (" rdst = 0x%x\n", rdst); |
| 4992 } | 4991 } |
| 4993 SYNTAX("btst #%2, %1"); | 4992 SYNTAX("btst #%2, %1"); |
| 4994 #line 887 "rx-decode.opc" | 4993 #line 899 "rx-decode.opc" |
| 4995 ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F___ZC; | 4994 ID(btst); BWL(LSIZE); S2C(b*16+ittt); SR(rdst); F___ZC; |
| 4996 | 4995 |
| 4997 | 4996 |
| 4998 } | 4997 } |
| 4999 break; | 4998 break; |
| 5000 } | 4999 } |
| 5001 break; | 5000 break; |
| 5002 case 0x7d: | 5001 case 0x7d: |
| 5003 GETBYTE (); | 5002 GETBYTE (); |
| 5004 switch (op[1] & 0x00) | 5003 switch (op[1] & 0x00) |
| 5005 { | 5004 { |
| 5006 case 0x00: | 5005 case 0x00: |
| 5007 goto op_semantics_37; | 5006 goto op_semantics_37; |
| 5008 break; | 5007 break; |
| 5009 } | 5008 } |
| 5010 break; | 5009 break; |
| 5011 case 0x7e: | 5010 case 0x7e: |
| 5012 GETBYTE (); | 5011 GETBYTE (); |
| 5013 switch (op[1] & 0xf0) | 5012 switch (op[1] & 0xf0) |
| 5014 { | 5013 { |
| 5015 case 0x00: | 5014 case 0x00: |
| 5016 { | 5015 { |
| 5017 /** 0111 1110 0000 rdst not %0 */ | 5016 /** 0111 1110 0000 rdst not %0 */ |
| 5018 #line 422 "rx-decode.opc" | 5017 #line 434 "rx-decode.opc" |
| 5019 int rdst AU = op[1] & 0x0f; | 5018 int rdst AU = op[1] & 0x0f; |
| 5020 if (trace) | 5019 if (trace) |
| 5021 { | 5020 { |
| 5022 printf ("\033[33m%s\033[0m %02x %02x\n", | 5021 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5023 "/** 0111 1110 0000 rdst not
%0 */", | 5022 "/** 0111 1110 0000 rdst not
%0 */", |
| 5024 op[0], op[1]); | 5023 op[0], op[1]); |
| 5025 printf (" rdst = 0x%x\n", rdst); | 5024 printf (" rdst = 0x%x\n", rdst); |
| 5026 } | 5025 } |
| 5027 SYNTAX("not %0"); | 5026 SYNTAX("not %0"); |
| 5028 #line 422 "rx-decode.opc" | 5027 #line 434 "rx-decode.opc" |
| 5029 ID(xor); DR(rdst); SR(rdst); S2C(~0); F__SZ_; | 5028 ID(xor); DR(rdst); SR(rdst); S2C(~0); F__SZ_; |
| 5030 | 5029 |
| 5031 } | 5030 } |
| 5032 break; | 5031 break; |
| 5033 case 0x10: | 5032 case 0x10: |
| 5034 { | 5033 { |
| 5035 /** 0111 1110 0001 rdst neg %0 */ | 5034 /** 0111 1110 0001 rdst neg %0 */ |
| 5036 #line 443 "rx-decode.opc" | 5035 #line 455 "rx-decode.opc" |
| 5037 int rdst AU = op[1] & 0x0f; | 5036 int rdst AU = op[1] & 0x0f; |
| 5038 if (trace) | 5037 if (trace) |
| 5039 { | 5038 { |
| 5040 printf ("\033[33m%s\033[0m %02x %02x\n", | 5039 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5041 "/** 0111 1110 0001 rdst neg
%0 */", | 5040 "/** 0111 1110 0001 rdst neg
%0 */", |
| 5042 op[0], op[1]); | 5041 op[0], op[1]); |
| 5043 printf (" rdst = 0x%x\n", rdst); | 5042 printf (" rdst = 0x%x\n", rdst); |
| 5044 } | 5043 } |
| 5045 SYNTAX("neg %0"); | 5044 SYNTAX("neg %0"); |
| 5046 #line 443 "rx-decode.opc" | 5045 #line 455 "rx-decode.opc" |
| 5047 ID(sub); DR(rdst); SC(0); S2R(rdst); F_OSZC; | 5046 ID(sub); DR(rdst); SC(0); S2R(rdst); F_OSZC; |
| 5048 | 5047 |
| 5049 } | 5048 } |
| 5050 break; | 5049 break; |
| 5051 case 0x20: | 5050 case 0x20: |
| 5052 { | 5051 { |
| 5053 /** 0111 1110 0010 rdst abs %0 */ | 5052 /** 0111 1110 0010 rdst abs %0 */ |
| 5054 #line 525 "rx-decode.opc" | 5053 #line 537 "rx-decode.opc" |
| 5055 int rdst AU = op[1] & 0x0f; | 5054 int rdst AU = op[1] & 0x0f; |
| 5056 if (trace) | 5055 if (trace) |
| 5057 { | 5056 { |
| 5058 printf ("\033[33m%s\033[0m %02x %02x\n", | 5057 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5059 "/** 0111 1110 0010 rdst abs
%0 */", | 5058 "/** 0111 1110 0010 rdst abs
%0 */", |
| 5060 op[0], op[1]); | 5059 op[0], op[1]); |
| 5061 printf (" rdst = 0x%x\n", rdst); | 5060 printf (" rdst = 0x%x\n", rdst); |
| 5062 } | 5061 } |
| 5063 SYNTAX("abs %0"); | 5062 SYNTAX("abs %0"); |
| 5064 #line 525 "rx-decode.opc" | 5063 #line 537 "rx-decode.opc" |
| 5065 ID(abs); DR(rdst); SR(rdst); F_OSZ_; | 5064 ID(abs); DR(rdst); SR(rdst); F_OSZ_; |
| 5066 | 5065 |
| 5067 } | 5066 } |
| 5068 break; | 5067 break; |
| 5069 case 0x30: | 5068 case 0x30: |
| 5070 { | 5069 { |
| 5071 /** 0111 1110 0011 rdst sat %0 */ | 5070 /** 0111 1110 0011 rdst sat %0 */ |
| 5072 #line 807 "rx-decode.opc" | 5071 #line 819 "rx-decode.opc" |
| 5073 int rdst AU = op[1] & 0x0f; | 5072 int rdst AU = op[1] & 0x0f; |
| 5074 if (trace) | 5073 if (trace) |
| 5075 { | 5074 { |
| 5076 printf ("\033[33m%s\033[0m %02x %02x\n", | 5075 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5077 "/** 0111 1110 0011 rdst sat %0 */", | 5076 "/** 0111 1110 0011 rdst sat %0 */", |
| 5078 op[0], op[1]); | 5077 op[0], op[1]); |
| 5079 printf (" rdst = 0x%x\n", rdst); | 5078 printf (" rdst = 0x%x\n", rdst); |
| 5080 } | 5079 } |
| 5081 SYNTAX("sat %0"); | 5080 SYNTAX("sat %0"); |
| 5082 #line 807 "rx-decode.opc" | 5081 #line 819 "rx-decode.opc" |
| 5083 ID(sat); DR (rdst); | 5082 ID(sat); DR (rdst); |
| 5084 | 5083 |
| 5085 } | 5084 } |
| 5086 break; | 5085 break; |
| 5087 case 0x40: | 5086 case 0x40: |
| 5088 { | 5087 { |
| 5089 /** 0111 1110 0100 rdst rorc %0 */ | 5088 /** 0111 1110 0100 rdst rorc %0 */ |
| 5090 #line 667 "rx-decode.opc" | 5089 #line 679 "rx-decode.opc" |
| 5091 int rdst AU = op[1] & 0x0f; | 5090 int rdst AU = op[1] & 0x0f; |
| 5092 if (trace) | 5091 if (trace) |
| 5093 { | 5092 { |
| 5094 printf ("\033[33m%s\033[0m %02x %02x\n", | 5093 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5095 "/** 0111 1110 0100 rdst rorc
%0 */", | 5094 "/** 0111 1110 0100 rdst rorc
%0 */", |
| 5096 op[0], op[1]); | 5095 op[0], op[1]); |
| 5097 printf (" rdst = 0x%x\n", rdst); | 5096 printf (" rdst = 0x%x\n", rdst); |
| 5098 } | 5097 } |
| 5099 SYNTAX("rorc %0"); | 5098 SYNTAX("rorc %0"); |
| 5100 #line 667 "rx-decode.opc" | 5099 #line 679 "rx-decode.opc" |
| 5101 ID(rorc); DR(rdst); F__SZC; | 5100 ID(rorc); DR(rdst); F__SZC; |
| 5102 | 5101 |
| 5103 } | 5102 } |
| 5104 break; | 5103 break; |
| 5105 case 0x50: | 5104 case 0x50: |
| 5106 { | 5105 { |
| 5107 /** 0111 1110 0101 rdst rolc %0 */ | 5106 /** 0111 1110 0101 rdst rolc %0 */ |
| 5108 #line 664 "rx-decode.opc" | 5107 #line 676 "rx-decode.opc" |
| 5109 int rdst AU = op[1] & 0x0f; | 5108 int rdst AU = op[1] & 0x0f; |
| 5110 if (trace) | 5109 if (trace) |
| 5111 { | 5110 { |
| 5112 printf ("\033[33m%s\033[0m %02x %02x\n", | 5111 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5113 "/** 0111 1110 0101 rdst rolc
%0 */", | 5112 "/** 0111 1110 0101 rdst rolc
%0 */", |
| 5114 op[0], op[1]); | 5113 op[0], op[1]); |
| 5115 printf (" rdst = 0x%x\n", rdst); | 5114 printf (" rdst = 0x%x\n", rdst); |
| 5116 } | 5115 } |
| 5117 SYNTAX("rolc %0"); | 5116 SYNTAX("rolc %0"); |
| 5118 #line 664 "rx-decode.opc" | 5117 #line 676 "rx-decode.opc" |
| 5119 ID(rolc); DR(rdst); F__SZC; | 5118 ID(rolc); DR(rdst); F__SZC; |
| 5120 | 5119 |
| 5121 } | 5120 } |
| 5122 break; | 5121 break; |
| 5123 case 0x80: | 5122 case 0x80: |
| 5124 case 0x90: | 5123 case 0x90: |
| 5125 case 0xa0: | 5124 case 0xa0: |
| 5126 { | 5125 { |
| 5127 /** 0111 1110 10sz rsrc push%s %1 */ | 5126 /** 0111 1110 10sz rsrc push%s %1 */ |
| 5128 #line 338 "rx-decode.opc" | 5127 #line 350 "rx-decode.opc" |
| 5129 int sz AU = (op[1] >> 4) & 0x03; | 5128 int sz AU = (op[1] >> 4) & 0x03; |
| 5130 #line 338 "rx-decode.opc" | 5129 #line 350 "rx-decode.opc" |
| 5131 int rsrc AU = op[1] & 0x0f; | 5130 int rsrc AU = op[1] & 0x0f; |
| 5132 if (trace) | 5131 if (trace) |
| 5133 { | 5132 { |
| 5134 printf ("\033[33m%s\033[0m %02x %02x\n", | 5133 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5135 "/** 0111 1110 10sz rsrc push%s %1 */", | 5134 "/** 0111 1110 10sz rsrc push%s %1 */", |
| 5136 op[0], op[1]); | 5135 op[0], op[1]); |
| 5137 printf (" sz = 0x%x,", sz); | 5136 printf (" sz = 0x%x,", sz); |
| 5138 printf (" rsrc = 0x%x\n", rsrc); | 5137 printf (" rsrc = 0x%x\n", rsrc); |
| 5139 } | 5138 } |
| 5140 SYNTAX("push%s %1"); | 5139 SYNTAX("push%s %1"); |
| 5141 #line 338 "rx-decode.opc" | 5140 #line 350 "rx-decode.opc" |
| 5142 ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SR(rsrc); F___
__; | 5141 ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SR(rsrc); F___
__; |
| 5143 | 5142 |
| 5144 } | 5143 } |
| 5145 break; | 5144 break; |
| 5146 case 0xb0: | 5145 case 0xb0: |
| 5147 { | 5146 { |
| 5148 /** 0111 1110 1011 rdst pop %0 */ | 5147 /** 0111 1110 1011 rdst pop %0 */ |
| 5149 #line 335 "rx-decode.opc" | 5148 #line 347 "rx-decode.opc" |
| 5150 int rdst AU = op[1] & 0x0f; | 5149 int rdst AU = op[1] & 0x0f; |
| 5151 if (trace) | 5150 if (trace) |
| 5152 { | 5151 { |
| 5153 printf ("\033[33m%s\033[0m %02x %02x\n", | 5152 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5154 "/** 0111 1110 1011 rdst pop %0 */", | 5153 "/** 0111 1110 1011 rdst pop %0 */", |
| 5155 op[0], op[1]); | 5154 op[0], op[1]); |
| 5156 printf (" rdst = 0x%x\n", rdst); | 5155 printf (" rdst = 0x%x\n", rdst); |
| 5157 } | 5156 } |
| 5158 SYNTAX("pop %0"); | 5157 SYNTAX("pop %0"); |
| 5159 #line 335 "rx-decode.opc" | 5158 #line 347 "rx-decode.opc" |
| 5160 ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(rdst); F_____; | 5159 ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(rdst); F_____; |
| 5161 | 5160 |
| 5162 } | 5161 } |
| 5163 break; | 5162 break; |
| 5164 case 0xc0: | 5163 case 0xc0: |
| 5165 case 0xd0: | 5164 case 0xd0: |
| 5166 { | 5165 { |
| 5167 /** 0111 1110 110 crsrc pushc %1 */ | 5166 /** 0111 1110 110 crsrc pushc %1 */ |
| 5168 #line 922 "rx-decode.opc" | 5167 #line 934 "rx-decode.opc" |
| 5169 int crsrc AU = op[1] & 0x1f; | 5168 int crsrc AU = op[1] & 0x1f; |
| 5170 if (trace) | 5169 if (trace) |
| 5171 { | 5170 { |
| 5172 printf ("\033[33m%s\033[0m %02x %02x\n", | 5171 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5173 "/** 0111 1110 110 crsrc pushc
%1 */", | 5172 "/** 0111 1110 110 crsrc pushc
%1 */", |
| 5174 op[0], op[1]); | 5173 op[0], op[1]); |
| 5175 printf (" crsrc = 0x%x\n", crsrc); | 5174 printf (" crsrc = 0x%x\n", crsrc); |
| 5176 } | 5175 } |
| 5177 SYNTAX("pushc %1"); | 5176 SYNTAX("pushc %1"); |
| 5178 #line 922 "rx-decode.opc" | 5177 #line 934 "rx-decode.opc" |
| 5179 ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16); | 5178 ID(mov); OP(0, RX_Operand_Predec, 0, 0); SR(crsrc + 16); |
| 5180 | 5179 |
| 5181 } | 5180 } |
| 5182 break; | 5181 break; |
| 5183 case 0xe0: | 5182 case 0xe0: |
| 5184 case 0xf0: | 5183 case 0xf0: |
| 5185 { | 5184 { |
| 5186 /** 0111 1110 111 crdst popc %0 */ | 5185 /** 0111 1110 111 crdst popc %0 */ |
| 5187 #line 919 "rx-decode.opc" | 5186 #line 931 "rx-decode.opc" |
| 5188 int crdst AU = op[1] & 0x1f; | 5187 int crdst AU = op[1] & 0x1f; |
| 5189 if (trace) | 5188 if (trace) |
| 5190 { | 5189 { |
| 5191 printf ("\033[33m%s\033[0m %02x %02x\n", | 5190 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5192 "/** 0111 1110 111 crdst popc
%0 */", | 5191 "/** 0111 1110 111 crdst popc
%0 */", |
| 5193 op[0], op[1]); | 5192 op[0], op[1]); |
| 5194 printf (" crdst = 0x%x\n", crdst); | 5193 printf (" crdst = 0x%x\n", crdst); |
| 5195 } | 5194 } |
| 5196 SYNTAX("popc %0"); | 5195 SYNTAX("popc %0"); |
| 5197 #line 919 "rx-decode.opc" | 5196 #line 931 "rx-decode.opc" |
| 5198 ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16); | 5197 ID(mov); OP(1, RX_Operand_Postinc, 0, 0); DR(crdst + 16); |
| 5199 | 5198 |
| 5200 } | 5199 } |
| 5201 break; | 5200 break; |
| 5202 default: UNSUPPORTED(); break; | 5201 default: UNSUPPORTED(); break; |
| 5203 } | 5202 } |
| 5204 break; | 5203 break; |
| 5205 case 0x7f: | 5204 case 0x7f: |
| 5206 GETBYTE (); | 5205 GETBYTE (); |
| 5207 switch (op[1] & 0xff) | 5206 switch (op[1] & 0xff) |
| 5208 { | 5207 { |
| 5209 case 0x00: | 5208 case 0x00: |
| 5210 case 0x01: | 5209 case 0x01: |
| 5211 case 0x02: | 5210 case 0x02: |
| 5212 case 0x03: | 5211 case 0x03: |
| 5213 case 0x04: | 5212 case 0x04: |
| 5214 case 0x05: | 5213 case 0x05: |
| 5215 case 0x06: | 5214 case 0x06: |
| 5216 case 0x07: | 5215 case 0x07: |
| 5217 case 0x08: | 5216 case 0x08: |
| 5218 case 0x09: | 5217 case 0x09: |
| 5219 case 0x0a: | 5218 case 0x0a: |
| 5220 case 0x0b: | 5219 case 0x0b: |
| 5221 case 0x0c: | 5220 case 0x0c: |
| 5222 case 0x0d: | 5221 case 0x0d: |
| 5223 case 0x0e: | 5222 case 0x0e: |
| 5224 case 0x0f: | 5223 case 0x0f: |
| 5225 { | 5224 { |
| 5226 /** 0111 1111 0000 rsrc jmp %0 */ | 5225 /** 0111 1111 0000 rsrc jmp %0 */ |
| 5227 #line 717 "rx-decode.opc" | 5226 #line 729 "rx-decode.opc" |
| 5228 int rsrc AU = op[1] & 0x0f; | 5227 int rsrc AU = op[1] & 0x0f; |
| 5229 if (trace) | 5228 if (trace) |
| 5230 { | 5229 { |
| 5231 printf ("\033[33m%s\033[0m %02x %02x\n", | 5230 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5232 "/** 0111 1111 0000 rsrc jmp %0 */", | 5231 "/** 0111 1111 0000 rsrc jmp %0 */", |
| 5233 op[0], op[1]); | 5232 op[0], op[1]); |
| 5234 printf (" rsrc = 0x%x\n", rsrc); | 5233 printf (" rsrc = 0x%x\n", rsrc); |
| 5235 } | 5234 } |
| 5236 SYNTAX("jmp %0"); | 5235 SYNTAX("jmp %0"); |
| 5237 #line 717 "rx-decode.opc" | 5236 #line 729 "rx-decode.opc" |
| 5238 ID(branch); DR(rsrc); | 5237 ID(branch); DR(rsrc); |
| 5239 | 5238 |
| 5240 } | 5239 } |
| 5241 break; | 5240 break; |
| 5242 case 0x10: | 5241 case 0x10: |
| 5243 case 0x11: | 5242 case 0x11: |
| 5244 case 0x12: | 5243 case 0x12: |
| 5245 case 0x13: | 5244 case 0x13: |
| 5246 case 0x14: | 5245 case 0x14: |
| 5247 case 0x15: | 5246 case 0x15: |
| 5248 case 0x16: | 5247 case 0x16: |
| 5249 case 0x17: | 5248 case 0x17: |
| 5250 case 0x18: | 5249 case 0x18: |
| 5251 case 0x19: | 5250 case 0x19: |
| 5252 case 0x1a: | 5251 case 0x1a: |
| 5253 case 0x1b: | 5252 case 0x1b: |
| 5254 case 0x1c: | 5253 case 0x1c: |
| 5255 case 0x1d: | 5254 case 0x1d: |
| 5256 case 0x1e: | 5255 case 0x1e: |
| 5257 case 0x1f: | 5256 case 0x1f: |
| 5258 { | 5257 { |
| 5259 /** 0111 1111 0001 rsrc jsr %0 */ | 5258 /** 0111 1111 0001 rsrc jsr %0 */ |
| 5260 #line 720 "rx-decode.opc" | 5259 #line 732 "rx-decode.opc" |
| 5261 int rsrc AU = op[1] & 0x0f; | 5260 int rsrc AU = op[1] & 0x0f; |
| 5262 if (trace) | 5261 if (trace) |
| 5263 { | 5262 { |
| 5264 printf ("\033[33m%s\033[0m %02x %02x\n", | 5263 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5265 "/** 0111 1111 0001 rsrc jsr %0 */", | 5264 "/** 0111 1111 0001 rsrc jsr %0 */", |
| 5266 op[0], op[1]); | 5265 op[0], op[1]); |
| 5267 printf (" rsrc = 0x%x\n", rsrc); | 5266 printf (" rsrc = 0x%x\n", rsrc); |
| 5268 } | 5267 } |
| 5269 SYNTAX("jsr %0"); | 5268 SYNTAX("jsr %0"); |
| 5270 #line 720 "rx-decode.opc" | 5269 #line 732 "rx-decode.opc" |
| 5271 ID(jsr); DR(rsrc); | 5270 ID(jsr); DR(rsrc); |
| 5272 | 5271 |
| 5273 } | 5272 } |
| 5274 break; | 5273 break; |
| 5275 case 0x40: | 5274 case 0x40: |
| 5276 case 0x41: | 5275 case 0x41: |
| 5277 case 0x42: | 5276 case 0x42: |
| 5278 case 0x43: | 5277 case 0x43: |
| 5279 case 0x44: | 5278 case 0x44: |
| 5280 case 0x45: | 5279 case 0x45: |
| 5281 case 0x46: | 5280 case 0x46: |
| 5282 case 0x47: | 5281 case 0x47: |
| 5283 case 0x48: | 5282 case 0x48: |
| 5284 case 0x49: | 5283 case 0x49: |
| 5285 case 0x4a: | 5284 case 0x4a: |
| 5286 case 0x4b: | 5285 case 0x4b: |
| 5287 case 0x4c: | 5286 case 0x4c: |
| 5288 case 0x4d: | 5287 case 0x4d: |
| 5289 case 0x4e: | 5288 case 0x4e: |
| 5290 case 0x4f: | 5289 case 0x4f: |
| 5291 { | 5290 { |
| 5292 /** 0111 1111 0100 rsrc bra.l %0 */ | 5291 /** 0111 1111 0100 rsrc bra.l %0 */ |
| 5293 #line 713 "rx-decode.opc" | 5292 #line 725 "rx-decode.opc" |
| 5294 int rsrc AU = op[1] & 0x0f; | 5293 int rsrc AU = op[1] & 0x0f; |
| 5295 if (trace) | 5294 if (trace) |
| 5296 { | 5295 { |
| 5297 printf ("\033[33m%s\033[0m %02x %02x\n", | 5296 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5298 "/** 0111 1111 0100 rsrc bra.l %0 */", | 5297 "/** 0111 1111 0100 rsrc bra.l %0 */", |
| 5299 op[0], op[1]); | 5298 op[0], op[1]); |
| 5300 printf (" rsrc = 0x%x\n", rsrc); | 5299 printf (" rsrc = 0x%x\n", rsrc); |
| 5301 } | 5300 } |
| 5302 SYNTAX("bra.l %0"); | 5301 SYNTAX("bra.l %0"); |
| 5303 #line 713 "rx-decode.opc" | 5302 #line 725 "rx-decode.opc" |
| 5304 ID(branchrel); DR(rsrc); | 5303 ID(branchrel); DR(rsrc); |
| 5305 | 5304 |
| 5306 | 5305 |
| 5307 } | 5306 } |
| 5308 break; | 5307 break; |
| 5309 case 0x50: | 5308 case 0x50: |
| 5310 case 0x51: | 5309 case 0x51: |
| 5311 case 0x52: | 5310 case 0x52: |
| 5312 case 0x53: | 5311 case 0x53: |
| 5313 case 0x54: | 5312 case 0x54: |
| 5314 case 0x55: | 5313 case 0x55: |
| 5315 case 0x56: | 5314 case 0x56: |
| 5316 case 0x57: | 5315 case 0x57: |
| 5317 case 0x58: | 5316 case 0x58: |
| 5318 case 0x59: | 5317 case 0x59: |
| 5319 case 0x5a: | 5318 case 0x5a: |
| 5320 case 0x5b: | 5319 case 0x5b: |
| 5321 case 0x5c: | 5320 case 0x5c: |
| 5322 case 0x5d: | 5321 case 0x5d: |
| 5323 case 0x5e: | 5322 case 0x5e: |
| 5324 case 0x5f: | 5323 case 0x5f: |
| 5325 { | 5324 { |
| 5326 /** 0111 1111 0101 rsrc bsr.l %0 */ | 5325 /** 0111 1111 0101 rsrc bsr.l %0 */ |
| 5327 #line 729 "rx-decode.opc" | 5326 #line 741 "rx-decode.opc" |
| 5328 int rsrc AU = op[1] & 0x0f; | 5327 int rsrc AU = op[1] & 0x0f; |
| 5329 if (trace) | 5328 if (trace) |
| 5330 { | 5329 { |
| 5331 printf ("\033[33m%s\033[0m %02x %02x\n", | 5330 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5332 "/** 0111 1111 0101 rsrc bsr.l %0 */", | 5331 "/** 0111 1111 0101 rsrc bsr.l %0 */", |
| 5333 op[0], op[1]); | 5332 op[0], op[1]); |
| 5334 printf (" rsrc = 0x%x\n", rsrc); | 5333 printf (" rsrc = 0x%x\n", rsrc); |
| 5335 } | 5334 } |
| 5336 SYNTAX("bsr.l %0"); | 5335 SYNTAX("bsr.l %0"); |
| 5337 #line 729 "rx-decode.opc" | 5336 #line 741 "rx-decode.opc" |
| 5338 ID(jsrrel); DR(rsrc); | 5337 ID(jsrrel); DR(rsrc); |
| 5339 | 5338 |
| 5340 } | 5339 } |
| 5341 break; | 5340 break; |
| 5342 case 0x80: | 5341 case 0x80: |
| 5343 case 0x81: | 5342 case 0x81: |
| 5344 case 0x82: | 5343 case 0x82: |
| 5345 { | 5344 { |
| 5346 /** 0111 1111 1000 00sz suntil%s */ | 5345 /** 0111 1111 1000 00sz suntil%s */ |
| 5347 #line 753 "rx-decode.opc" | 5346 #line 765 "rx-decode.opc" |
| 5348 int sz AU = op[1] & 0x03; | 5347 int sz AU = op[1] & 0x03; |
| 5349 if (trace) | 5348 if (trace) |
| 5350 { | 5349 { |
| 5351 printf ("\033[33m%s\033[0m %02x %02x\n", | 5350 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5352 "/** 0111 1111 1000 00sz suntil%s */", | 5351 "/** 0111 1111 1000 00sz suntil%s */", |
| 5353 op[0], op[1]); | 5352 op[0], op[1]); |
| 5354 printf (" sz = 0x%x\n", sz); | 5353 printf (" sz = 0x%x\n", sz); |
| 5355 } | 5354 } |
| 5356 SYNTAX("suntil%s"); | 5355 SYNTAX("suntil%s"); |
| 5357 #line 753 "rx-decode.opc" | 5356 #line 765 "rx-decode.opc" |
| 5358 ID(suntil); BWL(sz); F___ZC; | 5357 ID(suntil); BWL(sz); F___ZC; |
| 5359 | 5358 |
| 5360 } | 5359 } |
| 5361 break; | 5360 break; |
| 5362 case 0x83: | 5361 case 0x83: |
| 5363 { | 5362 { |
| 5364 /** 0111 1111 1000 0011 scmpu */ | 5363 /** 0111 1111 1000 0011 scmpu */ |
| 5365 if (trace) | 5364 if (trace) |
| 5366 { | 5365 { |
| 5367 printf ("\033[33m%s\033[0m %02x %02x\n", | 5366 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5368 "/** 0111 1111 1000 0011 scmpu */", | 5367 "/** 0111 1111 1000 0011 scmpu */", |
| 5369 op[0], op[1]); | 5368 op[0], op[1]); |
| 5370 } | 5369 } |
| 5371 SYNTAX("scmpu"); | 5370 SYNTAX("scmpu"); |
| 5372 #line 744 "rx-decode.opc" | 5371 #line 756 "rx-decode.opc" |
| 5373 ID(scmpu); F___ZC; | 5372 ID(scmpu); F___ZC; |
| 5374 | 5373 |
| 5375 } | 5374 } |
| 5376 break; | 5375 break; |
| 5377 case 0x84: | 5376 case 0x84: |
| 5378 case 0x85: | 5377 case 0x85: |
| 5379 case 0x86: | 5378 case 0x86: |
| 5380 { | 5379 { |
| 5381 /** 0111 1111 1000 01sz swhile%s */ | 5380 /** 0111 1111 1000 01sz swhile%s */ |
| 5382 #line 756 "rx-decode.opc" | 5381 #line 768 "rx-decode.opc" |
| 5383 int sz AU = op[1] & 0x03; | 5382 int sz AU = op[1] & 0x03; |
| 5384 if (trace) | 5383 if (trace) |
| 5385 { | 5384 { |
| 5386 printf ("\033[33m%s\033[0m %02x %02x\n", | 5385 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5387 "/** 0111 1111 1000 01sz swhile%s */", | 5386 "/** 0111 1111 1000 01sz swhile%s */", |
| 5388 op[0], op[1]); | 5387 op[0], op[1]); |
| 5389 printf (" sz = 0x%x\n", sz); | 5388 printf (" sz = 0x%x\n", sz); |
| 5390 } | 5389 } |
| 5391 SYNTAX("swhile%s"); | 5390 SYNTAX("swhile%s"); |
| 5392 #line 756 "rx-decode.opc" | 5391 #line 768 "rx-decode.opc" |
| 5393 ID(swhile); BWL(sz); F___ZC; | 5392 ID(swhile); BWL(sz); F___ZC; |
| 5394 | 5393 |
| 5395 } | 5394 } |
| 5396 break; | 5395 break; |
| 5397 case 0x87: | 5396 case 0x87: |
| 5398 { | 5397 { |
| 5399 /** 0111 1111 1000 0111 smovu */ | 5398 /** 0111 1111 1000 0111 smovu */ |
| 5400 if (trace) | 5399 if (trace) |
| 5401 { | 5400 { |
| 5402 printf ("\033[33m%s\033[0m %02x %02x\n", | 5401 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5403 "/** 0111 1111 1000 0111 smovu */", | 5402 "/** 0111 1111 1000 0111 smovu */", |
| 5404 op[0], op[1]); | 5403 op[0], op[1]); |
| 5405 } | 5404 } |
| 5406 SYNTAX("smovu"); | 5405 SYNTAX("smovu"); |
| 5407 #line 747 "rx-decode.opc" | 5406 #line 759 "rx-decode.opc" |
| 5408 ID(smovu); | 5407 ID(smovu); |
| 5409 | 5408 |
| 5410 } | 5409 } |
| 5411 break; | 5410 break; |
| 5412 case 0x88: | 5411 case 0x88: |
| 5413 case 0x89: | 5412 case 0x89: |
| 5414 case 0x8a: | 5413 case 0x8a: |
| 5415 { | 5414 { |
| 5416 /** 0111 1111 1000 10sz sstr%s */ | 5415 /** 0111 1111 1000 10sz sstr%s */ |
| 5417 #line 762 "rx-decode.opc" | 5416 #line 774 "rx-decode.opc" |
| 5418 int sz AU = op[1] & 0x03; | 5417 int sz AU = op[1] & 0x03; |
| 5419 if (trace) | 5418 if (trace) |
| 5420 { | 5419 { |
| 5421 printf ("\033[33m%s\033[0m %02x %02x\n", | 5420 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5422 "/** 0111 1111 1000 10sz sstr%s */", | 5421 "/** 0111 1111 1000 10sz sstr%s */", |
| 5423 op[0], op[1]); | 5422 op[0], op[1]); |
| 5424 printf (" sz = 0x%x\n", sz); | 5423 printf (" sz = 0x%x\n", sz); |
| 5425 } | 5424 } |
| 5426 SYNTAX("sstr%s"); | 5425 SYNTAX("sstr%s"); |
| 5427 #line 762 "rx-decode.opc" | 5426 #line 774 "rx-decode.opc" |
| 5428 ID(sstr); BWL(sz); | 5427 ID(sstr); BWL(sz); |
| 5429 | 5428 |
| 5430 /*----------------------------------------------------------------
------*/ | 5429 /*----------------------------------------------------------------
------*/ |
| 5431 /* RMPA
*/ | 5430 /* RMPA
*/ |
| 5432 | 5431 |
| 5433 } | 5432 } |
| 5434 break; | 5433 break; |
| 5435 case 0x8b: | 5434 case 0x8b: |
| 5436 { | 5435 { |
| 5437 /** 0111 1111 1000 1011 smovb */ | 5436 /** 0111 1111 1000 1011 smovb */ |
| 5438 if (trace) | 5437 if (trace) |
| 5439 { | 5438 { |
| 5440 printf ("\033[33m%s\033[0m %02x %02x\n", | 5439 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5441 "/** 0111 1111 1000 1011 smovb */", | 5440 "/** 0111 1111 1000 1011 smovb */", |
| 5442 op[0], op[1]); | 5441 op[0], op[1]); |
| 5443 } | 5442 } |
| 5444 SYNTAX("smovb"); | 5443 SYNTAX("smovb"); |
| 5445 #line 750 "rx-decode.opc" | 5444 #line 762 "rx-decode.opc" |
| 5446 ID(smovb); | 5445 ID(smovb); |
| 5447 | 5446 |
| 5448 } | 5447 } |
| 5449 break; | 5448 break; |
| 5450 case 0x8c: | 5449 case 0x8c: |
| 5451 case 0x8d: | 5450 case 0x8d: |
| 5452 case 0x8e: | 5451 case 0x8e: |
| 5453 { | 5452 { |
| 5454 /** 0111 1111 1000 11sz rmpa%s */ | 5453 /** 0111 1111 1000 11sz rmpa%s */ |
| 5455 #line 768 "rx-decode.opc" | 5454 #line 780 "rx-decode.opc" |
| 5456 int sz AU = op[1] & 0x03; | 5455 int sz AU = op[1] & 0x03; |
| 5457 if (trace) | 5456 if (trace) |
| 5458 { | 5457 { |
| 5459 printf ("\033[33m%s\033[0m %02x %02x\n", | 5458 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5460 "/** 0111 1111 1000 11sz rmpa%s */", | 5459 "/** 0111 1111 1000 11sz rmpa%s */", |
| 5461 op[0], op[1]); | 5460 op[0], op[1]); |
| 5462 printf (" sz = 0x%x\n", sz); | 5461 printf (" sz = 0x%x\n", sz); |
| 5463 } | 5462 } |
| 5464 SYNTAX("rmpa%s"); | 5463 SYNTAX("rmpa%s"); |
| 5465 #line 768 "rx-decode.opc" | 5464 #line 780 "rx-decode.opc" |
| 5466 ID(rmpa); BWL(sz); F_OS__; | 5465 ID(rmpa); BWL(sz); F_OS__; |
| 5467 | 5466 |
| 5468 /*----------------------------------------------------------------
------*/ | 5467 /*----------------------------------------------------------------
------*/ |
| 5469 /* HI/LO stuff
*/ | 5468 /* HI/LO stuff
*/ |
| 5470 | 5469 |
| 5471 } | 5470 } |
| 5472 break; | 5471 break; |
| 5473 case 0x8f: | 5472 case 0x8f: |
| 5474 { | 5473 { |
| 5475 /** 0111 1111 1000 1111 smovf */ | 5474 /** 0111 1111 1000 1111 smovf */ |
| 5476 if (trace) | 5475 if (trace) |
| 5477 { | 5476 { |
| 5478 printf ("\033[33m%s\033[0m %02x %02x\n", | 5477 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5479 "/** 0111 1111 1000 1111 smovf */", | 5478 "/** 0111 1111 1000 1111 smovf */", |
| 5480 op[0], op[1]); | 5479 op[0], op[1]); |
| 5481 } | 5480 } |
| 5482 SYNTAX("smovf"); | 5481 SYNTAX("smovf"); |
| 5483 #line 759 "rx-decode.opc" | 5482 #line 771 "rx-decode.opc" |
| 5484 ID(smovf); | 5483 ID(smovf); |
| 5485 | 5484 |
| 5486 } | 5485 } |
| 5487 break; | 5486 break; |
| 5488 case 0x93: | 5487 case 0x93: |
| 5489 { | 5488 { |
| 5490 /** 0111 1111 1001 0011 satr */ | 5489 /** 0111 1111 1001 0011 satr */ |
| 5491 if (trace) | 5490 if (trace) |
| 5492 { | 5491 { |
| 5493 printf ("\033[33m%s\033[0m %02x %02x\n", | 5492 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5494 "/** 0111 1111 1001 0011 satr */", | 5493 "/** 0111 1111 1001 0011 satr */", |
| 5495 op[0], op[1]); | 5494 op[0], op[1]); |
| 5496 } | 5495 } |
| 5497 SYNTAX("satr"); | 5496 SYNTAX("satr"); |
| 5498 #line 810 "rx-decode.opc" | 5497 #line 822 "rx-decode.opc" |
| 5499 ID(satr); | 5498 ID(satr); |
| 5500 | 5499 |
| 5501 /*----------------------------------------------------------------
------*/ | 5500 /*----------------------------------------------------------------
------*/ |
| 5502 /* FLOAT
*/ | 5501 /* FLOAT
*/ |
| 5503 | 5502 |
| 5504 } | 5503 } |
| 5505 break; | 5504 break; |
| 5506 case 0x94: | 5505 case 0x94: |
| 5507 { | 5506 { |
| 5508 /** 0111 1111 1001 0100 rtfi */ | 5507 /** 0111 1111 1001 0100 rtfi */ |
| 5509 if (trace) | 5508 if (trace) |
| 5510 { | 5509 { |
| 5511 printf ("\033[33m%s\033[0m %02x %02x\n", | 5510 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5512 "/** 0111 1111 1001 0100 rtfi */", | 5511 "/** 0111 1111 1001 0100 rtfi */", |
| 5513 op[0], op[1]); | 5512 op[0], op[1]); |
| 5514 } | 5513 } |
| 5515 SYNTAX("rtfi"); | 5514 SYNTAX("rtfi"); |
| 5516 #line 937 "rx-decode.opc" | 5515 #line 949 "rx-decode.opc" |
| 5517 ID(rtfi); | 5516 ID(rtfi); |
| 5518 | 5517 |
| 5519 } | 5518 } |
| 5520 break; | 5519 break; |
| 5521 case 0x95: | 5520 case 0x95: |
| 5522 { | 5521 { |
| 5523 /** 0111 1111 1001 0101 rte */ | 5522 /** 0111 1111 1001 0101 rte */ |
| 5524 if (trace) | 5523 if (trace) |
| 5525 { | 5524 { |
| 5526 printf ("\033[33m%s\033[0m %02x %02x\n", | 5525 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5527 "/** 0111 1111 1001 0101 rte */", | 5526 "/** 0111 1111 1001 0101 rte */", |
| 5528 op[0], op[1]); | 5527 op[0], op[1]); |
| 5529 } | 5528 } |
| 5530 SYNTAX("rte"); | 5529 SYNTAX("rte"); |
| 5531 #line 940 "rx-decode.opc" | 5530 #line 952 "rx-decode.opc" |
| 5532 ID(rte); | 5531 ID(rte); |
| 5533 | 5532 |
| 5534 } | 5533 } |
| 5535 break; | 5534 break; |
| 5536 case 0x96: | 5535 case 0x96: |
| 5537 { | 5536 { |
| 5538 /** 0111 1111 1001 0110 wait */ | 5537 /** 0111 1111 1001 0110 wait */ |
| 5539 if (trace) | 5538 if (trace) |
| 5540 { | 5539 { |
| 5541 printf ("\033[33m%s\033[0m %02x %02x\n", | 5540 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5542 "/** 0111 1111 1001 0110 wait */", | 5541 "/** 0111 1111 1001 0110 wait */", |
| 5543 op[0], op[1]); | 5542 op[0], op[1]); |
| 5544 } | 5543 } |
| 5545 SYNTAX("wait"); | 5544 SYNTAX("wait"); |
| 5546 #line 952 "rx-decode.opc" | 5545 #line 964 "rx-decode.opc" |
| 5547 ID(wait); | 5546 ID(wait); |
| 5548 | 5547 |
| 5549 /*----------------------------------------------------------------
------*/ | 5548 /*----------------------------------------------------------------
------*/ |
| 5550 /* SCcnd
*/ | 5549 /* SCcnd
*/ |
| 5551 | 5550 |
| 5552 } | 5551 } |
| 5553 break; | 5552 break; |
| 5554 case 0xa0: | 5553 case 0xa0: |
| 5555 case 0xa1: | 5554 case 0xa1: |
| 5556 case 0xa2: | 5555 case 0xa2: |
| 5557 case 0xa3: | 5556 case 0xa3: |
| 5558 case 0xa4: | 5557 case 0xa4: |
| 5559 case 0xa5: | 5558 case 0xa5: |
| 5560 case 0xa6: | 5559 case 0xa6: |
| 5561 case 0xa7: | 5560 case 0xa7: |
| 5562 case 0xa8: | 5561 case 0xa8: |
| 5563 case 0xa9: | 5562 case 0xa9: |
| 5564 case 0xaa: | 5563 case 0xaa: |
| 5565 case 0xab: | 5564 case 0xab: |
| 5566 case 0xac: | 5565 case 0xac: |
| 5567 case 0xad: | 5566 case 0xad: |
| 5568 case 0xae: | 5567 case 0xae: |
| 5569 case 0xaf: | 5568 case 0xaf: |
| 5570 { | 5569 { |
| 5571 /** 0111 1111 1010 rdst setpsw %0 */ | 5570 /** 0111 1111 1010 rdst setpsw %0 */ |
| 5572 #line 913 "rx-decode.opc" | 5571 #line 925 "rx-decode.opc" |
| 5573 int rdst AU = op[1] & 0x0f; | 5572 int rdst AU = op[1] & 0x0f; |
| 5574 if (trace) | 5573 if (trace) |
| 5575 { | 5574 { |
| 5576 printf ("\033[33m%s\033[0m %02x %02x\n", | 5575 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5577 "/** 0111 1111 1010 rdst setpsw
%0 */", | 5576 "/** 0111 1111 1010 rdst setpsw
%0 */", |
| 5578 op[0], op[1]); | 5577 op[0], op[1]); |
| 5579 printf (" rdst = 0x%x\n", rdst); | 5578 printf (" rdst = 0x%x\n", rdst); |
| 5580 } | 5579 } |
| 5581 SYNTAX("setpsw %0"); | 5580 SYNTAX("setpsw %0"); |
| 5582 #line 913 "rx-decode.opc" | 5581 #line 925 "rx-decode.opc" |
| 5583 ID(setpsw); DF(rdst); | 5582 ID(setpsw); DF(rdst); |
| 5584 | 5583 |
| 5585 } | 5584 } |
| 5586 break; | 5585 break; |
| 5587 case 0xb0: | 5586 case 0xb0: |
| 5588 case 0xb1: | 5587 case 0xb1: |
| 5589 case 0xb2: | 5588 case 0xb2: |
| 5590 case 0xb3: | 5589 case 0xb3: |
| 5591 case 0xb4: | 5590 case 0xb4: |
| 5592 case 0xb5: | 5591 case 0xb5: |
| 5593 case 0xb6: | 5592 case 0xb6: |
| 5594 case 0xb7: | 5593 case 0xb7: |
| 5595 case 0xb8: | 5594 case 0xb8: |
| 5596 case 0xb9: | 5595 case 0xb9: |
| 5597 case 0xba: | 5596 case 0xba: |
| 5598 case 0xbb: | 5597 case 0xbb: |
| 5599 case 0xbc: | 5598 case 0xbc: |
| 5600 case 0xbd: | 5599 case 0xbd: |
| 5601 case 0xbe: | 5600 case 0xbe: |
| 5602 case 0xbf: | 5601 case 0xbf: |
| 5603 { | 5602 { |
| 5604 /** 0111 1111 1011 rdst clrpsw %0 */ | 5603 /** 0111 1111 1011 rdst clrpsw %0 */ |
| 5605 #line 910 "rx-decode.opc" | 5604 #line 922 "rx-decode.opc" |
| 5606 int rdst AU = op[1] & 0x0f; | 5605 int rdst AU = op[1] & 0x0f; |
| 5607 if (trace) | 5606 if (trace) |
| 5608 { | 5607 { |
| 5609 printf ("\033[33m%s\033[0m %02x %02x\n", | 5608 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5610 "/** 0111 1111 1011 rdst clrpsw
%0 */", | 5609 "/** 0111 1111 1011 rdst clrpsw
%0 */", |
| 5611 op[0], op[1]); | 5610 op[0], op[1]); |
| 5612 printf (" rdst = 0x%x\n", rdst); | 5611 printf (" rdst = 0x%x\n", rdst); |
| 5613 } | 5612 } |
| 5614 SYNTAX("clrpsw %0"); | 5613 SYNTAX("clrpsw %0"); |
| 5615 #line 910 "rx-decode.opc" | 5614 #line 922 "rx-decode.opc" |
| 5616 ID(clrpsw); DF(rdst); | 5615 ID(clrpsw); DF(rdst); |
| 5617 | 5616 |
| 5618 } | 5617 } |
| 5619 break; | 5618 break; |
| 5620 default: UNSUPPORTED(); break; | 5619 default: UNSUPPORTED(); break; |
| 5621 } | 5620 } |
| 5622 break; | 5621 break; |
| 5623 case 0x80: | 5622 case 0x80: |
| 5624 GETBYTE (); | 5623 GETBYTE (); |
| 5625 switch (op[1] & 0x00) | 5624 switch (op[1] & 0x00) |
| 5626 { | 5625 { |
| 5627 case 0x00: | 5626 case 0x00: |
| 5628 op_semantics_38: | 5627 op_semantics_38: |
| 5629 { | 5628 { |
| 5630 /** 10sz 0dsp a dst b src mov%s %1, %0 */ | 5629 /** 10sz 0dsp a dst b src mov%s %1, %0 */ |
| 5631 #line 296 "rx-decode.opc" | 5630 #line 308 "rx-decode.opc" |
| 5632 int sz AU = (op[0] >> 4) & 0x03; | 5631 int sz AU = (op[0] >> 4) & 0x03; |
| 5633 #line 296 "rx-decode.opc" | 5632 #line 308 "rx-decode.opc" |
| 5634 int dsp AU = op[0] & 0x07; | 5633 int dsp AU = op[0] & 0x07; |
| 5635 #line 296 "rx-decode.opc" | 5634 #line 308 "rx-decode.opc" |
| 5636 int a AU = (op[1] >> 7) & 0x01; | 5635 int a AU = (op[1] >> 7) & 0x01; |
| 5637 #line 296 "rx-decode.opc" | 5636 #line 308 "rx-decode.opc" |
| 5638 int dst AU = (op[1] >> 4) & 0x07; | 5637 int dst AU = (op[1] >> 4) & 0x07; |
| 5639 #line 296 "rx-decode.opc" | 5638 #line 308 "rx-decode.opc" |
| 5640 int b AU = (op[1] >> 3) & 0x01; | 5639 int b AU = (op[1] >> 3) & 0x01; |
| 5641 #line 296 "rx-decode.opc" | 5640 #line 308 "rx-decode.opc" |
| 5642 int src AU = op[1] & 0x07; | 5641 int src AU = op[1] & 0x07; |
| 5643 if (trace) | 5642 if (trace) |
| 5644 { | 5643 { |
| 5645 printf ("\033[33m%s\033[0m %02x %02x\n", | 5644 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5646 "/** 10sz 0dsp a dst b src mov%s %1, %0 */", | 5645 "/** 10sz 0dsp a dst b src mov%s %1, %0 */", |
| 5647 op[0], op[1]); | 5646 op[0], op[1]); |
| 5648 printf (" sz = 0x%x,", sz); | 5647 printf (" sz = 0x%x,", sz); |
| 5649 printf (" dsp = 0x%x,", dsp); | 5648 printf (" dsp = 0x%x,", dsp); |
| 5650 printf (" a = 0x%x,", a); | 5649 printf (" a = 0x%x,", a); |
| 5651 printf (" dst = 0x%x,", dst); | 5650 printf (" dst = 0x%x,", dst); |
| 5652 printf (" b = 0x%x,", b); | 5651 printf (" b = 0x%x,", b); |
| 5653 printf (" src = 0x%x\n", src); | 5652 printf (" src = 0x%x\n", src); |
| 5654 } | 5653 } |
| 5655 SYNTAX("mov%s %1, %0"); | 5654 SYNTAX("mov%s %1, %0"); |
| 5656 #line 296 "rx-decode.opc" | 5655 #line 308 "rx-decode.opc" |
| 5657 ID(mov); sBWL(sz); DIs(dst, dsp*4+a*2+b, sz); SR(src); F_____; | 5656 ID(mov); sBWL(sz); DIs(dst, dsp*4+a*2+b, sz); SR(src); F_____; |
| 5658 | 5657 |
| 5659 } | 5658 } |
| 5660 break; | 5659 break; |
| 5661 } | 5660 } |
| 5662 break; | 5661 break; |
| 5663 case 0x81: | 5662 case 0x81: |
| 5664 GETBYTE (); | 5663 GETBYTE (); |
| 5665 switch (op[1] & 0x00) | 5664 switch (op[1] & 0x00) |
| 5666 { | 5665 { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5724 } | 5723 } |
| 5725 break; | 5724 break; |
| 5726 case 0x88: | 5725 case 0x88: |
| 5727 GETBYTE (); | 5726 GETBYTE (); |
| 5728 switch (op[1] & 0x00) | 5727 switch (op[1] & 0x00) |
| 5729 { | 5728 { |
| 5730 case 0x00: | 5729 case 0x00: |
| 5731 op_semantics_39: | 5730 op_semantics_39: |
| 5732 { | 5731 { |
| 5733 /** 10sz 1dsp a src b dst mov%s %1, %0 */ | 5732 /** 10sz 1dsp a src b dst mov%s %1, %0 */ |
| 5734 #line 293 "rx-decode.opc" | 5733 #line 305 "rx-decode.opc" |
| 5735 int sz AU = (op[0] >> 4) & 0x03; | 5734 int sz AU = (op[0] >> 4) & 0x03; |
| 5736 #line 293 "rx-decode.opc" | 5735 #line 305 "rx-decode.opc" |
| 5737 int dsp AU = op[0] & 0x07; | 5736 int dsp AU = op[0] & 0x07; |
| 5738 #line 293 "rx-decode.opc" | 5737 #line 305 "rx-decode.opc" |
| 5739 int a AU = (op[1] >> 7) & 0x01; | 5738 int a AU = (op[1] >> 7) & 0x01; |
| 5740 #line 293 "rx-decode.opc" | 5739 #line 305 "rx-decode.opc" |
| 5741 int src AU = (op[1] >> 4) & 0x07; | 5740 int src AU = (op[1] >> 4) & 0x07; |
| 5742 #line 293 "rx-decode.opc" | 5741 #line 305 "rx-decode.opc" |
| 5743 int b AU = (op[1] >> 3) & 0x01; | 5742 int b AU = (op[1] >> 3) & 0x01; |
| 5744 #line 293 "rx-decode.opc" | 5743 #line 305 "rx-decode.opc" |
| 5745 int dst AU = op[1] & 0x07; | 5744 int dst AU = op[1] & 0x07; |
| 5746 if (trace) | 5745 if (trace) |
| 5747 { | 5746 { |
| 5748 printf ("\033[33m%s\033[0m %02x %02x\n", | 5747 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 5749 "/** 10sz 1dsp a src b dst mov%s %1, %0 */", | 5748 "/** 10sz 1dsp a src b dst mov%s %1, %0 */", |
| 5750 op[0], op[1]); | 5749 op[0], op[1]); |
| 5751 printf (" sz = 0x%x,", sz); | 5750 printf (" sz = 0x%x,", sz); |
| 5752 printf (" dsp = 0x%x,", dsp); | 5751 printf (" dsp = 0x%x,", dsp); |
| 5753 printf (" a = 0x%x,", a); | 5752 printf (" a = 0x%x,", a); |
| 5754 printf (" src = 0x%x,", src); | 5753 printf (" src = 0x%x,", src); |
| 5755 printf (" b = 0x%x,", b); | 5754 printf (" b = 0x%x,", b); |
| 5756 printf (" dst = 0x%x\n", dst); | 5755 printf (" dst = 0x%x\n", dst); |
| 5757 } | 5756 } |
| 5758 SYNTAX("mov%s %1, %0"); | 5757 SYNTAX("mov%s %1, %0"); |
| 5759 #line 293 "rx-decode.opc" | 5758 #line 305 "rx-decode.opc" |
| 5760 ID(mov); sBWL(sz); DR(dst); SIs(src, dsp*4+a*2+b, sz); F_____; | 5759 ID(mov); sBWL(sz); DR(dst); SIs(src, dsp*4+a*2+b, sz); F_____; |
| 5761 | 5760 |
| 5762 } | 5761 } |
| 5763 break; | 5762 break; |
| 5764 } | 5763 } |
| 5765 break; | 5764 break; |
| 5766 case 0x89: | 5765 case 0x89: |
| 5767 GETBYTE (); | 5766 GETBYTE (); |
| 5768 switch (op[1] & 0x00) | 5767 switch (op[1] & 0x00) |
| 5769 { | 5768 { |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6115 } | 6114 } |
| 6116 break; | 6115 break; |
| 6117 case 0xb0: | 6116 case 0xb0: |
| 6118 GETBYTE (); | 6117 GETBYTE (); |
| 6119 switch (op[1] & 0x00) | 6118 switch (op[1] & 0x00) |
| 6120 { | 6119 { |
| 6121 case 0x00: | 6120 case 0x00: |
| 6122 op_semantics_40: | 6121 op_semantics_40: |
| 6123 { | 6122 { |
| 6124 /** 1011 w dsp a src b dst movu%s %1, %0 */ | 6123 /** 1011 w dsp a src b dst movu%s %1, %0 */ |
| 6125 #line 316 "rx-decode.opc" | 6124 #line 328 "rx-decode.opc" |
| 6126 int w AU = (op[0] >> 3) & 0x01; | 6125 int w AU = (op[0] >> 3) & 0x01; |
| 6127 #line 316 "rx-decode.opc" | 6126 #line 328 "rx-decode.opc" |
| 6128 int dsp AU = op[0] & 0x07; | 6127 int dsp AU = op[0] & 0x07; |
| 6129 #line 316 "rx-decode.opc" | 6128 #line 328 "rx-decode.opc" |
| 6130 int a AU = (op[1] >> 7) & 0x01; | 6129 int a AU = (op[1] >> 7) & 0x01; |
| 6131 #line 316 "rx-decode.opc" | 6130 #line 328 "rx-decode.opc" |
| 6132 int src AU = (op[1] >> 4) & 0x07; | 6131 int src AU = (op[1] >> 4) & 0x07; |
| 6133 #line 316 "rx-decode.opc" | 6132 #line 328 "rx-decode.opc" |
| 6134 int b AU = (op[1] >> 3) & 0x01; | 6133 int b AU = (op[1] >> 3) & 0x01; |
| 6135 #line 316 "rx-decode.opc" | 6134 #line 328 "rx-decode.opc" |
| 6136 int dst AU = op[1] & 0x07; | 6135 int dst AU = op[1] & 0x07; |
| 6137 if (trace) | 6136 if (trace) |
| 6138 { | 6137 { |
| 6139 printf ("\033[33m%s\033[0m %02x %02x\n", | 6138 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6140 "/** 1011 w dsp a src b dst movu%s %1, %0 */", | 6139 "/** 1011 w dsp a src b dst movu%s %1, %0 */", |
| 6141 op[0], op[1]); | 6140 op[0], op[1]); |
| 6142 printf (" w = 0x%x,", w); | 6141 printf (" w = 0x%x,", w); |
| 6143 printf (" dsp = 0x%x,", dsp); | 6142 printf (" dsp = 0x%x,", dsp); |
| 6144 printf (" a = 0x%x,", a); | 6143 printf (" a = 0x%x,", a); |
| 6145 printf (" src = 0x%x,", src); | 6144 printf (" src = 0x%x,", src); |
| 6146 printf (" b = 0x%x,", b); | 6145 printf (" b = 0x%x,", b); |
| 6147 printf (" dst = 0x%x\n", dst); | 6146 printf (" dst = 0x%x\n", dst); |
| 6148 } | 6147 } |
| 6149 SYNTAX("movu%s %1, %0"); | 6148 SYNTAX("movu%s %1, %0"); |
| 6150 #line 316 "rx-decode.opc" | 6149 #line 328 "rx-decode.opc" |
| 6151 ID(mov); uBWL(w); DR(dst); SIs(src, dsp*4+a*2+b, w); F_____; | 6150 ID(mov); uBWL(w); DR(dst); SIs(src, dsp*4+a*2+b, w); F_____; |
| 6152 | 6151 |
| 6153 } | 6152 } |
| 6154 break; | 6153 break; |
| 6155 } | 6154 } |
| 6156 break; | 6155 break; |
| 6157 case 0xb1: | 6156 case 0xb1: |
| 6158 GETBYTE (); | 6157 GETBYTE (); |
| 6159 switch (op[1] & 0x00) | 6158 switch (op[1] & 0x00) |
| 6160 { | 6159 { |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6290 } | 6289 } |
| 6291 break; | 6290 break; |
| 6292 case 0xc0: | 6291 case 0xc0: |
| 6293 GETBYTE (); | 6292 GETBYTE (); |
| 6294 switch (op[1] & 0x00) | 6293 switch (op[1] & 0x00) |
| 6295 { | 6294 { |
| 6296 case 0x00: | 6295 case 0x00: |
| 6297 op_semantics_41: | 6296 op_semantics_41: |
| 6298 { | 6297 { |
| 6299 /** 11sz sd ss rsrc rdst mov%s %1, %0 */ | 6298 /** 11sz sd ss rsrc rdst mov%s %1, %0 */ |
| 6300 #line 274 "rx-decode.opc" | 6299 #line 286 "rx-decode.opc" |
| 6301 int sz AU = (op[0] >> 4) & 0x03; | 6300 int sz AU = (op[0] >> 4) & 0x03; |
| 6302 #line 274 "rx-decode.opc" | 6301 #line 286 "rx-decode.opc" |
| 6303 int sd AU = (op[0] >> 2) & 0x03; | 6302 int sd AU = (op[0] >> 2) & 0x03; |
| 6304 #line 274 "rx-decode.opc" | 6303 #line 286 "rx-decode.opc" |
| 6305 int ss AU = op[0] & 0x03; | 6304 int ss AU = op[0] & 0x03; |
| 6306 #line 274 "rx-decode.opc" | 6305 #line 286 "rx-decode.opc" |
| 6307 int rsrc AU = (op[1] >> 4) & 0x0f; | 6306 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 6308 #line 274 "rx-decode.opc" | 6307 #line 286 "rx-decode.opc" |
| 6309 int rdst AU = op[1] & 0x0f; | 6308 int rdst AU = op[1] & 0x0f; |
| 6310 if (trace) | 6309 if (trace) |
| 6311 { | 6310 { |
| 6312 printf ("\033[33m%s\033[0m %02x %02x\n", | 6311 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6313 "/** 11sz sd ss rsrc rdst mov%s %1, %0 */", | 6312 "/** 11sz sd ss rsrc rdst mov%s %1, %0 */", |
| 6314 op[0], op[1]); | 6313 op[0], op[1]); |
| 6315 printf (" sz = 0x%x,", sz); | 6314 printf (" sz = 0x%x,", sz); |
| 6316 printf (" sd = 0x%x,", sd); | 6315 printf (" sd = 0x%x,", sd); |
| 6317 printf (" ss = 0x%x,", ss); | 6316 printf (" ss = 0x%x,", ss); |
| 6318 printf (" rsrc = 0x%x,", rsrc); | 6317 printf (" rsrc = 0x%x,", rsrc); |
| 6319 printf (" rdst = 0x%x\n", rdst); | 6318 printf (" rdst = 0x%x\n", rdst); |
| 6320 } | 6319 } |
| 6321 SYNTAX("mov%s %1, %0"); | 6320 SYNTAX("mov%s %1, %0"); |
| 6322 #line 274 "rx-decode.opc" | 6321 #line 286 "rx-decode.opc" |
| 6323 if (ss == 3 && sz == 2 && rsrc == 0 && rdst == 0) | 6322 if (ss == 3 && sz == 2 && rsrc == 0 && rdst == 0) |
| 6324 { | 6323 { |
| 6325 ID(nop2); | 6324 ID(nop2); |
| 6326 rx->syntax = "nop"; | 6325 rx->syntax = "nop"; |
| 6327 } | 6326 } |
| 6328 else | 6327 else |
| 6329 { | 6328 { |
| 6330 ID(mov); sBWL(sz); F_____; | 6329 ID(mov); sBWL(sz); F_____; |
| 6331 if ((ss == 3) && (sd != 3)) | 6330 if ((ss == 3) && (sd != 3)) |
| 6332 { | 6331 { |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6766 } | 6765 } |
| 6767 break; | 6766 break; |
| 6768 case 0xf0: | 6767 case 0xf0: |
| 6769 GETBYTE (); | 6768 GETBYTE (); |
| 6770 switch (op[1] & 0x08) | 6769 switch (op[1] & 0x08) |
| 6771 { | 6770 { |
| 6772 case 0x00: | 6771 case 0x00: |
| 6773 op_semantics_42: | 6772 op_semantics_42: |
| 6774 { | 6773 { |
| 6775 /** 1111 00sd rdst 0bit bset #%1, %0%S0 */ | 6774 /** 1111 00sd rdst 0bit bset #%1, %0%S0 */ |
| 6776 #line 861 "rx-decode.opc" | 6775 #line 873 "rx-decode.opc" |
| 6777 int sd AU = op[0] & 0x03; | 6776 int sd AU = op[0] & 0x03; |
| 6778 #line 861 "rx-decode.opc" | 6777 #line 873 "rx-decode.opc" |
| 6779 int rdst AU = (op[1] >> 4) & 0x0f; | 6778 int rdst AU = (op[1] >> 4) & 0x0f; |
| 6780 #line 861 "rx-decode.opc" | 6779 #line 873 "rx-decode.opc" |
| 6781 int bit AU = op[1] & 0x07; | 6780 int bit AU = op[1] & 0x07; |
| 6782 if (trace) | 6781 if (trace) |
| 6783 { | 6782 { |
| 6784 printf ("\033[33m%s\033[0m %02x %02x\n", | 6783 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6785 "/** 1111 00sd rdst 0bit bset
#%1, %0%S0 */", | 6784 "/** 1111 00sd rdst 0bit bset
#%1, %0%S0 */", |
| 6786 op[0], op[1]); | 6785 op[0], op[1]); |
| 6787 printf (" sd = 0x%x,", sd); | 6786 printf (" sd = 0x%x,", sd); |
| 6788 printf (" rdst = 0x%x,", rdst); | 6787 printf (" rdst = 0x%x,", rdst); |
| 6789 printf (" bit = 0x%x\n", bit); | 6788 printf (" bit = 0x%x\n", bit); |
| 6790 } | 6789 } |
| 6791 SYNTAX("bset #%1, %0%S0"); | 6790 SYNTAX("bset #%1, %0%S0"); |
| 6792 #line 861 "rx-decode.opc" | 6791 #line 873 "rx-decode.opc" |
| 6793 ID(bset); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; | 6792 ID(bset); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; |
| 6794 | 6793 |
| 6795 } | 6794 } |
| 6796 break; | 6795 break; |
| 6797 case 0x08: | 6796 case 0x08: |
| 6798 op_semantics_43: | 6797 op_semantics_43: |
| 6799 { | 6798 { |
| 6800 /** 1111 00sd rdst 1bit bclr #%1, %0%S0 */ | 6799 /** 1111 00sd rdst 1bit bclr #%1, %0%S0 */ |
| 6801 #line 871 "rx-decode.opc" | 6800 #line 883 "rx-decode.opc" |
| 6802 int sd AU = op[0] & 0x03; | 6801 int sd AU = op[0] & 0x03; |
| 6803 #line 871 "rx-decode.opc" | 6802 #line 883 "rx-decode.opc" |
| 6804 int rdst AU = (op[1] >> 4) & 0x0f; | 6803 int rdst AU = (op[1] >> 4) & 0x0f; |
| 6805 #line 871 "rx-decode.opc" | 6804 #line 883 "rx-decode.opc" |
| 6806 int bit AU = op[1] & 0x07; | 6805 int bit AU = op[1] & 0x07; |
| 6807 if (trace) | 6806 if (trace) |
| 6808 { | 6807 { |
| 6809 printf ("\033[33m%s\033[0m %02x %02x\n", | 6808 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6810 "/** 1111 00sd rdst 1bit bclr
#%1, %0%S0 */", | 6809 "/** 1111 00sd rdst 1bit bclr
#%1, %0%S0 */", |
| 6811 op[0], op[1]); | 6810 op[0], op[1]); |
| 6812 printf (" sd = 0x%x,", sd); | 6811 printf (" sd = 0x%x,", sd); |
| 6813 printf (" rdst = 0x%x,", rdst); | 6812 printf (" rdst = 0x%x,", rdst); |
| 6814 printf (" bit = 0x%x\n", bit); | 6813 printf (" bit = 0x%x\n", bit); |
| 6815 } | 6814 } |
| 6816 SYNTAX("bclr #%1, %0%S0"); | 6815 SYNTAX("bclr #%1, %0%S0"); |
| 6817 #line 871 "rx-decode.opc" | 6816 #line 883 "rx-decode.opc" |
| 6818 ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; | 6817 ID(bclr); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); F_____; |
| 6819 | 6818 |
| 6820 } | 6819 } |
| 6821 break; | 6820 break; |
| 6822 } | 6821 } |
| 6823 break; | 6822 break; |
| 6824 case 0xf1: | 6823 case 0xf1: |
| 6825 GETBYTE (); | 6824 GETBYTE (); |
| 6826 switch (op[1] & 0x08) | 6825 switch (op[1] & 0x08) |
| 6827 { | 6826 { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6859 break; | 6858 break; |
| 6860 case 0xf4: | 6859 case 0xf4: |
| 6861 GETBYTE (); | 6860 GETBYTE (); |
| 6862 switch (op[1] & 0x0c) | 6861 switch (op[1] & 0x0c) |
| 6863 { | 6862 { |
| 6864 case 0x00: | 6863 case 0x00: |
| 6865 case 0x04: | 6864 case 0x04: |
| 6866 op_semantics_44: | 6865 op_semantics_44: |
| 6867 { | 6866 { |
| 6868 /** 1111 01sd rdst 0bit btst #%2, %1%S1 */ | 6867 /** 1111 01sd rdst 0bit btst #%2, %1%S1 */ |
| 6869 #line 881 "rx-decode.opc" | 6868 #line 893 "rx-decode.opc" |
| 6870 int sd AU = op[0] & 0x03; | 6869 int sd AU = op[0] & 0x03; |
| 6871 #line 881 "rx-decode.opc" | 6870 #line 893 "rx-decode.opc" |
| 6872 int rdst AU = (op[1] >> 4) & 0x0f; | 6871 int rdst AU = (op[1] >> 4) & 0x0f; |
| 6873 #line 881 "rx-decode.opc" | 6872 #line 893 "rx-decode.opc" |
| 6874 int bit AU = op[1] & 0x07; | 6873 int bit AU = op[1] & 0x07; |
| 6875 if (trace) | 6874 if (trace) |
| 6876 { | 6875 { |
| 6877 printf ("\033[33m%s\033[0m %02x %02x\n", | 6876 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6878 "/** 1111 01sd rdst 0bit btst
#%2, %1%S1 */", | 6877 "/** 1111 01sd rdst 0bit btst
#%2, %1%S1 */", |
| 6879 op[0], op[1]); | 6878 op[0], op[1]); |
| 6880 printf (" sd = 0x%x,", sd); | 6879 printf (" sd = 0x%x,", sd); |
| 6881 printf (" rdst = 0x%x,", rdst); | 6880 printf (" rdst = 0x%x,", rdst); |
| 6882 printf (" bit = 0x%x\n", bit); | 6881 printf (" bit = 0x%x\n", bit); |
| 6883 } | 6882 } |
| 6884 SYNTAX("btst #%2, %1%S1"); | 6883 SYNTAX("btst #%2, %1%S1"); |
| 6885 #line 881 "rx-decode.opc" | 6884 #line 893 "rx-decode.opc" |
| 6886 ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F___ZC; | 6885 ID(btst); BWL(BSIZE); S2C(bit); SD(sd, rdst, BSIZE); F___ZC; |
| 6887 | 6886 |
| 6888 } | 6887 } |
| 6889 break; | 6888 break; |
| 6890 case 0x08: | 6889 case 0x08: |
| 6891 op_semantics_45: | 6890 op_semantics_45: |
| 6892 { | 6891 { |
| 6893 /** 1111 01ss rsrc 10sz push%s %1 */ | 6892 /** 1111 01ss rsrc 10sz push%s %1 */ |
| 6894 #line 341 "rx-decode.opc" | 6893 #line 353 "rx-decode.opc" |
| 6895 int ss AU = op[0] & 0x03; | 6894 int ss AU = op[0] & 0x03; |
| 6896 #line 341 "rx-decode.opc" | 6895 #line 353 "rx-decode.opc" |
| 6897 int rsrc AU = (op[1] >> 4) & 0x0f; | 6896 int rsrc AU = (op[1] >> 4) & 0x0f; |
| 6898 #line 341 "rx-decode.opc" | 6897 #line 353 "rx-decode.opc" |
| 6899 int sz AU = op[1] & 0x03; | 6898 int sz AU = op[1] & 0x03; |
| 6900 if (trace) | 6899 if (trace) |
| 6901 { | 6900 { |
| 6902 printf ("\033[33m%s\033[0m %02x %02x\n", | 6901 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6903 "/** 1111 01ss rsrc 10sz push%s %1 */", | 6902 "/** 1111 01ss rsrc 10sz push%s %1 */", |
| 6904 op[0], op[1]); | 6903 op[0], op[1]); |
| 6905 printf (" ss = 0x%x,", ss); | 6904 printf (" ss = 0x%x,", ss); |
| 6906 printf (" rsrc = 0x%x,", rsrc); | 6905 printf (" rsrc = 0x%x,", rsrc); |
| 6907 printf (" sz = 0x%x\n", sz); | 6906 printf (" sz = 0x%x\n", sz); |
| 6908 } | 6907 } |
| 6909 SYNTAX("push%s %1"); | 6908 SYNTAX("push%s %1"); |
| 6910 #line 341 "rx-decode.opc" | 6909 #line 353 "rx-decode.opc" |
| 6911 ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SD(ss, rsrc, s
z); F_____; | 6910 ID(mov); BWL(sz); OP(0, RX_Operand_Predec, 0, 0); SD(ss, rsrc, s
z); F_____; |
| 6912 | 6911 |
| 6913 /*----------------------------------------------------------------
------*/ | 6912 /*----------------------------------------------------------------
------*/ |
| 6914 /* XCHG
*/ | 6913 /* XCHG
*/ |
| 6915 | 6914 |
| 6916 } | 6915 } |
| 6917 break; | 6916 break; |
| 6918 default: UNSUPPORTED(); break; | 6917 default: UNSUPPORTED(); break; |
| 6919 } | 6918 } |
| 6920 break; | 6919 break; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6961 } | 6960 } |
| 6962 break; | 6961 break; |
| 6963 case 0xf8: | 6962 case 0xf8: |
| 6964 GETBYTE (); | 6963 GETBYTE (); |
| 6965 switch (op[1] & 0x00) | 6964 switch (op[1] & 0x00) |
| 6966 { | 6965 { |
| 6967 case 0x00: | 6966 case 0x00: |
| 6968 op_semantics_46: | 6967 op_semantics_46: |
| 6969 { | 6968 { |
| 6970 /** 1111 10sd rdst im sz mov%s #%1, %0 */ | 6969 /** 1111 10sd rdst im sz mov%s #%1, %0 */ |
| 6971 #line 265 "rx-decode.opc" | 6970 #line 264 "rx-decode.opc" |
| 6972 int sd AU = op[0] & 0x03; | 6971 int sd AU = op[0] & 0x03; |
| 6973 #line 265 "rx-decode.opc" | 6972 #line 264 "rx-decode.opc" |
| 6974 int rdst AU = (op[1] >> 4) & 0x0f; | 6973 int rdst AU = (op[1] >> 4) & 0x0f; |
| 6975 #line 265 "rx-decode.opc" | 6974 #line 264 "rx-decode.opc" |
| 6976 int im AU = (op[1] >> 2) & 0x03; | 6975 int im AU = (op[1] >> 2) & 0x03; |
| 6977 #line 265 "rx-decode.opc" | 6976 #line 264 "rx-decode.opc" |
| 6978 int sz AU = op[1] & 0x03; | 6977 int sz AU = op[1] & 0x03; |
| 6979 if (trace) | 6978 if (trace) |
| 6980 { | 6979 { |
| 6981 printf ("\033[33m%s\033[0m %02x %02x\n", | 6980 printf ("\033[33m%s\033[0m %02x %02x\n", |
| 6982 "/** 1111 10sd rdst im sz mov%s #%1, %0 */", | 6981 "/** 1111 10sd rdst im sz mov%s #%1, %0 */", |
| 6983 op[0], op[1]); | 6982 op[0], op[1]); |
| 6984 printf (" sd = 0x%x,", sd); | 6983 printf (" sd = 0x%x,", sd); |
| 6985 printf (" rdst = 0x%x,", rdst); | 6984 printf (" rdst = 0x%x,", rdst); |
| 6986 printf (" im = 0x%x,", im); | 6985 printf (" im = 0x%x,", im); |
| 6987 printf (" sz = 0x%x\n", sz); | 6986 printf (" sz = 0x%x\n", sz); |
| 6988 } | 6987 } |
| 6989 SYNTAX("mov%s #%1, %0"); | 6988 SYNTAX("mov%s #%1, %0"); |
| 6990 #line 265 "rx-decode.opc" | 6989 #line 264 "rx-decode.opc" |
| 6991 ID(mov); sBWL (sz); DD(sd, rdst, sz); SC(IMMex(im)); F_____; | 6990 ID(mov); DD(sd, rdst, sz); |
| 6991 if ((im == 1 && sz == 0) |
| 6992 || (im == 2 && sz == 1) |
| 6993 || (im == 0 && sz == 2)) |
| 6994 { |
| 6995 BWL (sz); |
| 6996 SC(IMM(im)); |
| 6997 } |
| 6998 else |
| 6999 { |
| 7000 sBWL (sz); |
| 7001 SC(IMMex(im)); |
| 7002 } |
| 7003 F_____; |
| 6992 | 7004 |
| 6993 } | 7005 } |
| 6994 break; | 7006 break; |
| 6995 } | 7007 } |
| 6996 break; | 7008 break; |
| 6997 case 0xf9: | 7009 case 0xf9: |
| 6998 GETBYTE (); | 7010 GETBYTE (); |
| 6999 switch (op[1] & 0x00) | 7011 switch (op[1] & 0x00) |
| 7000 { | 7012 { |
| 7001 case 0x00: | 7013 case 0x00: |
| (...skipping 23 matching lines...) Expand all Loading... |
| 7025 GETBYTE (); | 7037 GETBYTE (); |
| 7026 switch (op[1] & 0xff) | 7038 switch (op[1] & 0xff) |
| 7027 { | 7039 { |
| 7028 case 0x03: | 7040 case 0x03: |
| 7029 GETBYTE (); | 7041 GETBYTE (); |
| 7030 switch (op[2] & 0x00) | 7042 switch (op[2] & 0x00) |
| 7031 { | 7043 { |
| 7032 case 0x00: | 7044 case 0x00: |
| 7033 { | 7045 { |
| 7034 /** 1111 1100 0000 0011 rsrc rdst sbb %1, %0 */ | 7046 /** 1111 1100 0000 0011 rsrc rdst sbb %1, %0 */ |
| 7035 #line 515 "rx-decode.opc" | 7047 #line 527 "rx-decode.opc" |
| 7036 int rsrc AU = (op[2] >> 4) & 0x0f; | 7048 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7037 #line 515 "rx-decode.opc" | 7049 #line 527 "rx-decode.opc" |
| 7038 int rdst AU = op[2] & 0x0f; | 7050 int rdst AU = op[2] & 0x0f; |
| 7039 if (trace) | 7051 if (trace) |
| 7040 { | 7052 { |
| 7041 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7053 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7042 "/** 1111 1100 0000 0011 rsrc rdst sbb
%1, %0 */", | 7054 "/** 1111 1100 0000 0011 rsrc rdst sbb
%1, %0 */", |
| 7043 op[0], op[1], op[2]); | 7055 op[0], op[1], op[2]); |
| 7044 printf (" rsrc = 0x%x,", rsrc); | 7056 printf (" rsrc = 0x%x,", rsrc); |
| 7045 printf (" rdst = 0x%x\n", rdst); | 7057 printf (" rdst = 0x%x\n", rdst); |
| 7046 } | 7058 } |
| 7047 SYNTAX("sbb %1, %0"); | 7059 SYNTAX("sbb %1, %0"); |
| 7048 #line 515 "rx-decode.opc" | 7060 #line 527 "rx-decode.opc" |
| 7049 ID(sbb); SR (rsrc); DR(rdst); F_OSZC; | 7061 ID(sbb); SR (rsrc); DR(rdst); F_OSZC; |
| 7050 | 7062 |
| 7051 /* FIXME: only supports .L */ | 7063 /* FIXME: only supports .L */ |
| 7052 } | 7064 } |
| 7053 break; | 7065 break; |
| 7054 } | 7066 } |
| 7055 break; | 7067 break; |
| 7056 case 0x07: | 7068 case 0x07: |
| 7057 GETBYTE (); | 7069 GETBYTE (); |
| 7058 switch (op[2] & 0x00) | 7070 switch (op[2] & 0x00) |
| 7059 { | 7071 { |
| 7060 case 0x00: | 7072 case 0x00: |
| 7061 { | 7073 { |
| 7062 /** 1111 1100 0000 0111 rsrc rdst neg %2, %0 */ | 7074 /** 1111 1100 0000 0111 rsrc rdst neg %2, %0 */ |
| 7063 #line 446 "rx-decode.opc" | 7075 #line 458 "rx-decode.opc" |
| 7064 int rsrc AU = (op[2] >> 4) & 0x0f; | 7076 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7065 #line 446 "rx-decode.opc" | 7077 #line 458 "rx-decode.opc" |
| 7066 int rdst AU = op[2] & 0x0f; | 7078 int rdst AU = op[2] & 0x0f; |
| 7067 if (trace) | 7079 if (trace) |
| 7068 { | 7080 { |
| 7069 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7081 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7070 "/** 1111 1100 0000 0111 rsrc rdst neg
%2, %0 */", | 7082 "/** 1111 1100 0000 0111 rsrc rdst neg
%2, %0 */", |
| 7071 op[0], op[1], op[2]); | 7083 op[0], op[1], op[2]); |
| 7072 printf (" rsrc = 0x%x,", rsrc); | 7084 printf (" rsrc = 0x%x,", rsrc); |
| 7073 printf (" rdst = 0x%x\n", rdst); | 7085 printf (" rdst = 0x%x\n", rdst); |
| 7074 } | 7086 } |
| 7075 SYNTAX("neg %2, %0"); | 7087 SYNTAX("neg %2, %0"); |
| 7076 #line 446 "rx-decode.opc" | 7088 #line 458 "rx-decode.opc" |
| 7077 ID(sub); DR(rdst); SC(0); S2R(rsrc); F_OSZC; | 7089 ID(sub); DR(rdst); SC(0); S2R(rsrc); F_OSZC; |
| 7078 | 7090 |
| 7079 /*----------------------------------------------------------
------------*/ | 7091 /*----------------------------------------------------------
------------*/ |
| 7080 /* ADC
*/ | 7092 /* ADC
*/ |
| 7081 | 7093 |
| 7082 } | 7094 } |
| 7083 break; | 7095 break; |
| 7084 } | 7096 } |
| 7085 break; | 7097 break; |
| 7086 case 0x0b: | 7098 case 0x0b: |
| 7087 GETBYTE (); | 7099 GETBYTE (); |
| 7088 switch (op[2] & 0x00) | 7100 switch (op[2] & 0x00) |
| 7089 { | 7101 { |
| 7090 case 0x00: | 7102 case 0x00: |
| 7091 { | 7103 { |
| 7092 /** 1111 1100 0000 1011 rsrc rdst adc %1, %0 */ | 7104 /** 1111 1100 0000 1011 rsrc rdst adc %1, %0 */ |
| 7093 #line 455 "rx-decode.opc" | 7105 #line 467 "rx-decode.opc" |
| 7094 int rsrc AU = (op[2] >> 4) & 0x0f; | 7106 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7095 #line 455 "rx-decode.opc" | 7107 #line 467 "rx-decode.opc" |
| 7096 int rdst AU = op[2] & 0x0f; | 7108 int rdst AU = op[2] & 0x0f; |
| 7097 if (trace) | 7109 if (trace) |
| 7098 { | 7110 { |
| 7099 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7111 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7100 "/** 1111 1100 0000 1011 rsrc rdst adc
%1, %0 */", | 7112 "/** 1111 1100 0000 1011 rsrc rdst adc
%1, %0 */", |
| 7101 op[0], op[1], op[2]); | 7113 op[0], op[1], op[2]); |
| 7102 printf (" rsrc = 0x%x,", rsrc); | 7114 printf (" rsrc = 0x%x,", rsrc); |
| 7103 printf (" rdst = 0x%x\n", rdst); | 7115 printf (" rdst = 0x%x\n", rdst); |
| 7104 } | 7116 } |
| 7105 SYNTAX("adc %1, %0"); | 7117 SYNTAX("adc %1, %0"); |
| 7106 #line 455 "rx-decode.opc" | 7118 #line 467 "rx-decode.opc" |
| 7107 ID(adc); SR(rsrc); DR(rdst); F_OSZC; | 7119 ID(adc); SR(rsrc); DR(rdst); F_OSZC; |
| 7108 | 7120 |
| 7109 } | 7121 } |
| 7110 break; | 7122 break; |
| 7111 } | 7123 } |
| 7112 break; | 7124 break; |
| 7113 case 0x0f: | 7125 case 0x0f: |
| 7114 GETBYTE (); | 7126 GETBYTE (); |
| 7115 switch (op[2] & 0x00) | 7127 switch (op[2] & 0x00) |
| 7116 { | 7128 { |
| 7117 case 0x00: | 7129 case 0x00: |
| 7118 { | 7130 { |
| 7119 /** 1111 1100 0000 1111 rsrc rdst abs %1, %0 */ | 7131 /** 1111 1100 0000 1111 rsrc rdst abs %1, %0 */ |
| 7120 #line 528 "rx-decode.opc" | 7132 #line 540 "rx-decode.opc" |
| 7121 int rsrc AU = (op[2] >> 4) & 0x0f; | 7133 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7122 #line 528 "rx-decode.opc" | 7134 #line 540 "rx-decode.opc" |
| 7123 int rdst AU = op[2] & 0x0f; | 7135 int rdst AU = op[2] & 0x0f; |
| 7124 if (trace) | 7136 if (trace) |
| 7125 { | 7137 { |
| 7126 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7138 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7127 "/** 1111 1100 0000 1111 rsrc rdst abs
%1, %0 */", | 7139 "/** 1111 1100 0000 1111 rsrc rdst abs
%1, %0 */", |
| 7128 op[0], op[1], op[2]); | 7140 op[0], op[1], op[2]); |
| 7129 printf (" rsrc = 0x%x,", rsrc); | 7141 printf (" rsrc = 0x%x,", rsrc); |
| 7130 printf (" rdst = 0x%x\n", rdst); | 7142 printf (" rdst = 0x%x\n", rdst); |
| 7131 } | 7143 } |
| 7132 SYNTAX("abs %1, %0"); | 7144 SYNTAX("abs %1, %0"); |
| 7133 #line 528 "rx-decode.opc" | 7145 #line 540 "rx-decode.opc" |
| 7134 ID(abs); DR(rdst); SR(rsrc); F_OSZ_; | 7146 ID(abs); DR(rdst); SR(rsrc); F_OSZ_; |
| 7135 | 7147 |
| 7136 /*----------------------------------------------------------
------------*/ | 7148 /*----------------------------------------------------------
------------*/ |
| 7137 /* MAX
*/ | 7149 /* MAX
*/ |
| 7138 | 7150 |
| 7139 } | 7151 } |
| 7140 break; | 7152 break; |
| 7141 } | 7153 } |
| 7142 break; | 7154 break; |
| 7143 case 0x10: | 7155 case 0x10: |
| 7144 GETBYTE (); | 7156 GETBYTE (); |
| 7145 switch (op[2] & 0x00) | 7157 switch (op[2] & 0x00) |
| 7146 { | 7158 { |
| 7147 case 0x00: | 7159 case 0x00: |
| 7148 op_semantics_47: | 7160 op_semantics_47: |
| 7149 { | 7161 { |
| 7150 /** 1111 1100 0001 00ss rsrc rdst max %1%S1, %0 */ | 7162 /** 1111 1100 0001 00ss rsrc rdst max %1%S1, %0 */ |
| 7151 #line 537 "rx-decode.opc" | 7163 #line 549 "rx-decode.opc" |
| 7152 int ss AU = op[1] & 0x03; | 7164 int ss AU = op[1] & 0x03; |
| 7153 #line 537 "rx-decode.opc" | 7165 #line 549 "rx-decode.opc" |
| 7154 int rsrc AU = (op[2] >> 4) & 0x0f; | 7166 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7155 #line 537 "rx-decode.opc" | 7167 #line 549 "rx-decode.opc" |
| 7156 int rdst AU = op[2] & 0x0f; | 7168 int rdst AU = op[2] & 0x0f; |
| 7157 if (trace) | 7169 if (trace) |
| 7158 { | 7170 { |
| 7159 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7171 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7160 "/** 1111 1100 0001 00ss rsrc rdst max
%1%S1, %0 */", | 7172 "/** 1111 1100 0001 00ss rsrc rdst max
%1%S1, %0 */", |
| 7161 op[0], op[1], op[2]); | 7173 op[0], op[1], op[2]); |
| 7162 printf (" ss = 0x%x,", ss); | 7174 printf (" ss = 0x%x,", ss); |
| 7163 printf (" rsrc = 0x%x,", rsrc); | 7175 printf (" rsrc = 0x%x,", rsrc); |
| 7164 printf (" rdst = 0x%x\n", rdst); | 7176 printf (" rdst = 0x%x\n", rdst); |
| 7165 } | 7177 } |
| 7166 SYNTAX("max %1%S1, %0"); | 7178 SYNTAX("max %1%S1, %0"); |
| 7167 #line 537 "rx-decode.opc" | 7179 #line 549 "rx-decode.opc" |
| 7168 if (ss == 3 && rsrc == 0 && rdst == 0) | 7180 if (ss == 3 && rsrc == 0 && rdst == 0) |
| 7169 { | 7181 { |
| 7170 ID(nop3); | 7182 ID(nop3); |
| 7171 rx->syntax = "nop"; | 7183 rx->syntax = "nop"; |
| 7172 } | 7184 } |
| 7173 else | 7185 else |
| 7174 { | 7186 { |
| 7175 ID(max); SP(ss, rsrc); DR(rdst); | 7187 ID(max); SP(ss, rsrc); DR(rdst); |
| 7176 } | 7188 } |
| 7177 | 7189 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 7207 } | 7219 } |
| 7208 break; | 7220 break; |
| 7209 case 0x14: | 7221 case 0x14: |
| 7210 GETBYTE (); | 7222 GETBYTE (); |
| 7211 switch (op[2] & 0x00) | 7223 switch (op[2] & 0x00) |
| 7212 { | 7224 { |
| 7213 case 0x00: | 7225 case 0x00: |
| 7214 op_semantics_48: | 7226 op_semantics_48: |
| 7215 { | 7227 { |
| 7216 /** 1111 1100 0001 01ss rsrc rdst min %1%S1, %0 */ | 7228 /** 1111 1100 0001 01ss rsrc rdst min %1%S1, %0 */ |
| 7217 #line 557 "rx-decode.opc" | 7229 #line 569 "rx-decode.opc" |
| 7218 int ss AU = op[1] & 0x03; | 7230 int ss AU = op[1] & 0x03; |
| 7219 #line 557 "rx-decode.opc" | 7231 #line 569 "rx-decode.opc" |
| 7220 int rsrc AU = (op[2] >> 4) & 0x0f; | 7232 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7221 #line 557 "rx-decode.opc" | 7233 #line 569 "rx-decode.opc" |
| 7222 int rdst AU = op[2] & 0x0f; | 7234 int rdst AU = op[2] & 0x0f; |
| 7223 if (trace) | 7235 if (trace) |
| 7224 { | 7236 { |
| 7225 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7237 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7226 "/** 1111 1100 0001 01ss rsrc rdst min
%1%S1, %0 */", | 7238 "/** 1111 1100 0001 01ss rsrc rdst min
%1%S1, %0 */", |
| 7227 op[0], op[1], op[2]); | 7239 op[0], op[1], op[2]); |
| 7228 printf (" ss = 0x%x,", ss); | 7240 printf (" ss = 0x%x,", ss); |
| 7229 printf (" rsrc = 0x%x,", rsrc); | 7241 printf (" rsrc = 0x%x,", rsrc); |
| 7230 printf (" rdst = 0x%x\n", rdst); | 7242 printf (" rdst = 0x%x\n", rdst); |
| 7231 } | 7243 } |
| 7232 SYNTAX("min %1%S1, %0"); | 7244 SYNTAX("min %1%S1, %0"); |
| 7233 #line 557 "rx-decode.opc" | 7245 #line 569 "rx-decode.opc" |
| 7234 ID(min); SP(ss, rsrc); DR(rdst); | 7246 ID(min); SP(ss, rsrc); DR(rdst); |
| 7235 | 7247 |
| 7236 } | 7248 } |
| 7237 break; | 7249 break; |
| 7238 } | 7250 } |
| 7239 break; | 7251 break; |
| 7240 case 0x15: | 7252 case 0x15: |
| 7241 GETBYTE (); | 7253 GETBYTE (); |
| 7242 switch (op[2] & 0x00) | 7254 switch (op[2] & 0x00) |
| 7243 { | 7255 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7265 } | 7277 } |
| 7266 break; | 7278 break; |
| 7267 case 0x18: | 7279 case 0x18: |
| 7268 GETBYTE (); | 7280 GETBYTE (); |
| 7269 switch (op[2] & 0x00) | 7281 switch (op[2] & 0x00) |
| 7270 { | 7282 { |
| 7271 case 0x00: | 7283 case 0x00: |
| 7272 op_semantics_49: | 7284 op_semantics_49: |
| 7273 { | 7285 { |
| 7274 /** 1111 1100 0001 10ss rsrc rdst emul %1%S1, %0 */ | 7286 /** 1111 1100 0001 10ss rsrc rdst emul %1%S1, %0 */ |
| 7275 #line 587 "rx-decode.opc" | 7287 #line 599 "rx-decode.opc" |
| 7276 int ss AU = op[1] & 0x03; | 7288 int ss AU = op[1] & 0x03; |
| 7277 #line 587 "rx-decode.opc" | 7289 #line 599 "rx-decode.opc" |
| 7278 int rsrc AU = (op[2] >> 4) & 0x0f; | 7290 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7279 #line 587 "rx-decode.opc" | 7291 #line 599 "rx-decode.opc" |
| 7280 int rdst AU = op[2] & 0x0f; | 7292 int rdst AU = op[2] & 0x0f; |
| 7281 if (trace) | 7293 if (trace) |
| 7282 { | 7294 { |
| 7283 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7295 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7284 "/** 1111 1100 0001 10ss rsrc rdst emul
%1%S1, %0 */", | 7296 "/** 1111 1100 0001 10ss rsrc rdst emul
%1%S1, %0 */", |
| 7285 op[0], op[1], op[2]); | 7297 op[0], op[1], op[2]); |
| 7286 printf (" ss = 0x%x,", ss); | 7298 printf (" ss = 0x%x,", ss); |
| 7287 printf (" rsrc = 0x%x,", rsrc); | 7299 printf (" rsrc = 0x%x,", rsrc); |
| 7288 printf (" rdst = 0x%x\n", rdst); | 7300 printf (" rdst = 0x%x\n", rdst); |
| 7289 } | 7301 } |
| 7290 SYNTAX("emul %1%S1, %0"); | 7302 SYNTAX("emul %1%S1, %0"); |
| 7291 #line 587 "rx-decode.opc" | 7303 #line 599 "rx-decode.opc" |
| 7292 ID(emul); SP(ss, rsrc); DR(rdst); | 7304 ID(emul); SP(ss, rsrc); DR(rdst); |
| 7293 | 7305 |
| 7294 } | 7306 } |
| 7295 break; | 7307 break; |
| 7296 } | 7308 } |
| 7297 break; | 7309 break; |
| 7298 case 0x19: | 7310 case 0x19: |
| 7299 GETBYTE (); | 7311 GETBYTE (); |
| 7300 switch (op[2] & 0x00) | 7312 switch (op[2] & 0x00) |
| 7301 { | 7313 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7323 } | 7335 } |
| 7324 break; | 7336 break; |
| 7325 case 0x1c: | 7337 case 0x1c: |
| 7326 GETBYTE (); | 7338 GETBYTE (); |
| 7327 switch (op[2] & 0x00) | 7339 switch (op[2] & 0x00) |
| 7328 { | 7340 { |
| 7329 case 0x00: | 7341 case 0x00: |
| 7330 op_semantics_50: | 7342 op_semantics_50: |
| 7331 { | 7343 { |
| 7332 /** 1111 1100 0001 11ss rsrc rdst emulu %1%S1, %0 */ | 7344 /** 1111 1100 0001 11ss rsrc rdst emulu %1%S1, %0 */ |
| 7333 #line 599 "rx-decode.opc" | 7345 #line 611 "rx-decode.opc" |
| 7334 int ss AU = op[1] & 0x03; | 7346 int ss AU = op[1] & 0x03; |
| 7335 #line 599 "rx-decode.opc" | 7347 #line 611 "rx-decode.opc" |
| 7336 int rsrc AU = (op[2] >> 4) & 0x0f; | 7348 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7337 #line 599 "rx-decode.opc" | 7349 #line 611 "rx-decode.opc" |
| 7338 int rdst AU = op[2] & 0x0f; | 7350 int rdst AU = op[2] & 0x0f; |
| 7339 if (trace) | 7351 if (trace) |
| 7340 { | 7352 { |
| 7341 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7353 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7342 "/** 1111 1100 0001 11ss rsrc rdst emulu
%1%S1, %0 */", | 7354 "/** 1111 1100 0001 11ss rsrc rdst emulu
%1%S1, %0 */", |
| 7343 op[0], op[1], op[2]); | 7355 op[0], op[1], op[2]); |
| 7344 printf (" ss = 0x%x,", ss); | 7356 printf (" ss = 0x%x,", ss); |
| 7345 printf (" rsrc = 0x%x,", rsrc); | 7357 printf (" rsrc = 0x%x,", rsrc); |
| 7346 printf (" rdst = 0x%x\n", rdst); | 7358 printf (" rdst = 0x%x\n", rdst); |
| 7347 } | 7359 } |
| 7348 SYNTAX("emulu %1%S1, %0"); | 7360 SYNTAX("emulu %1%S1, %0"); |
| 7349 #line 599 "rx-decode.opc" | 7361 #line 611 "rx-decode.opc" |
| 7350 ID(emulu); SP(ss, rsrc); DR(rdst); | 7362 ID(emulu); SP(ss, rsrc); DR(rdst); |
| 7351 | 7363 |
| 7352 } | 7364 } |
| 7353 break; | 7365 break; |
| 7354 } | 7366 } |
| 7355 break; | 7367 break; |
| 7356 case 0x1d: | 7368 case 0x1d: |
| 7357 GETBYTE (); | 7369 GETBYTE (); |
| 7358 switch (op[2] & 0x00) | 7370 switch (op[2] & 0x00) |
| 7359 { | 7371 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7381 } | 7393 } |
| 7382 break; | 7394 break; |
| 7383 case 0x20: | 7395 case 0x20: |
| 7384 GETBYTE (); | 7396 GETBYTE (); |
| 7385 switch (op[2] & 0x00) | 7397 switch (op[2] & 0x00) |
| 7386 { | 7398 { |
| 7387 case 0x00: | 7399 case 0x00: |
| 7388 op_semantics_51: | 7400 op_semantics_51: |
| 7389 { | 7401 { |
| 7390 /** 1111 1100 0010 00ss rsrc rdst div %1%S1, %0 */ | 7402 /** 1111 1100 0010 00ss rsrc rdst div %1%S1, %0 */ |
| 7391 #line 611 "rx-decode.opc" | 7403 #line 623 "rx-decode.opc" |
| 7392 int ss AU = op[1] & 0x03; | 7404 int ss AU = op[1] & 0x03; |
| 7393 #line 611 "rx-decode.opc" | 7405 #line 623 "rx-decode.opc" |
| 7394 int rsrc AU = (op[2] >> 4) & 0x0f; | 7406 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7395 #line 611 "rx-decode.opc" | 7407 #line 623 "rx-decode.opc" |
| 7396 int rdst AU = op[2] & 0x0f; | 7408 int rdst AU = op[2] & 0x0f; |
| 7397 if (trace) | 7409 if (trace) |
| 7398 { | 7410 { |
| 7399 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7411 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7400 "/** 1111 1100 0010 00ss rsrc rdst div
%1%S1, %0 */", | 7412 "/** 1111 1100 0010 00ss rsrc rdst div
%1%S1, %0 */", |
| 7401 op[0], op[1], op[2]); | 7413 op[0], op[1], op[2]); |
| 7402 printf (" ss = 0x%x,", ss); | 7414 printf (" ss = 0x%x,", ss); |
| 7403 printf (" rsrc = 0x%x,", rsrc); | 7415 printf (" rsrc = 0x%x,", rsrc); |
| 7404 printf (" rdst = 0x%x\n", rdst); | 7416 printf (" rdst = 0x%x\n", rdst); |
| 7405 } | 7417 } |
| 7406 SYNTAX("div %1%S1, %0"); | 7418 SYNTAX("div %1%S1, %0"); |
| 7407 #line 611 "rx-decode.opc" | 7419 #line 623 "rx-decode.opc" |
| 7408 ID(div); SP(ss, rsrc); DR(rdst); F_O___; | 7420 ID(div); SP(ss, rsrc); DR(rdst); F_O___; |
| 7409 | 7421 |
| 7410 } | 7422 } |
| 7411 break; | 7423 break; |
| 7412 } | 7424 } |
| 7413 break; | 7425 break; |
| 7414 case 0x21: | 7426 case 0x21: |
| 7415 GETBYTE (); | 7427 GETBYTE (); |
| 7416 switch (op[2] & 0x00) | 7428 switch (op[2] & 0x00) |
| 7417 { | 7429 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7439 } | 7451 } |
| 7440 break; | 7452 break; |
| 7441 case 0x24: | 7453 case 0x24: |
| 7442 GETBYTE (); | 7454 GETBYTE (); |
| 7443 switch (op[2] & 0x00) | 7455 switch (op[2] & 0x00) |
| 7444 { | 7456 { |
| 7445 case 0x00: | 7457 case 0x00: |
| 7446 op_semantics_52: | 7458 op_semantics_52: |
| 7447 { | 7459 { |
| 7448 /** 1111 1100 0010 01ss rsrc rdst divu %1%S1, %0 */ | 7460 /** 1111 1100 0010 01ss rsrc rdst divu %1%S1, %0 */ |
| 7449 #line 623 "rx-decode.opc" | 7461 #line 635 "rx-decode.opc" |
| 7450 int ss AU = op[1] & 0x03; | 7462 int ss AU = op[1] & 0x03; |
| 7451 #line 623 "rx-decode.opc" | 7463 #line 635 "rx-decode.opc" |
| 7452 int rsrc AU = (op[2] >> 4) & 0x0f; | 7464 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7453 #line 623 "rx-decode.opc" | 7465 #line 635 "rx-decode.opc" |
| 7454 int rdst AU = op[2] & 0x0f; | 7466 int rdst AU = op[2] & 0x0f; |
| 7455 if (trace) | 7467 if (trace) |
| 7456 { | 7468 { |
| 7457 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7469 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7458 "/** 1111 1100 0010 01ss rsrc rdst divu
%1%S1, %0 */", | 7470 "/** 1111 1100 0010 01ss rsrc rdst divu
%1%S1, %0 */", |
| 7459 op[0], op[1], op[2]); | 7471 op[0], op[1], op[2]); |
| 7460 printf (" ss = 0x%x,", ss); | 7472 printf (" ss = 0x%x,", ss); |
| 7461 printf (" rsrc = 0x%x,", rsrc); | 7473 printf (" rsrc = 0x%x,", rsrc); |
| 7462 printf (" rdst = 0x%x\n", rdst); | 7474 printf (" rdst = 0x%x\n", rdst); |
| 7463 } | 7475 } |
| 7464 SYNTAX("divu %1%S1, %0"); | 7476 SYNTAX("divu %1%S1, %0"); |
| 7465 #line 623 "rx-decode.opc" | 7477 #line 635 "rx-decode.opc" |
| 7466 ID(divu); SP(ss, rsrc); DR(rdst); F_O___; | 7478 ID(divu); SP(ss, rsrc); DR(rdst); F_O___; |
| 7467 | 7479 |
| 7468 } | 7480 } |
| 7469 break; | 7481 break; |
| 7470 } | 7482 } |
| 7471 break; | 7483 break; |
| 7472 case 0x25: | 7484 case 0x25: |
| 7473 GETBYTE (); | 7485 GETBYTE (); |
| 7474 switch (op[2] & 0x00) | 7486 switch (op[2] & 0x00) |
| 7475 { | 7487 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7497 } | 7509 } |
| 7498 break; | 7510 break; |
| 7499 case 0x30: | 7511 case 0x30: |
| 7500 GETBYTE (); | 7512 GETBYTE (); |
| 7501 switch (op[2] & 0x00) | 7513 switch (op[2] & 0x00) |
| 7502 { | 7514 { |
| 7503 case 0x00: | 7515 case 0x00: |
| 7504 op_semantics_53: | 7516 op_semantics_53: |
| 7505 { | 7517 { |
| 7506 /** 1111 1100 0011 00ss rsrc rdst tst %1%S1, %2 */ | 7518 /** 1111 1100 0011 00ss rsrc rdst tst %1%S1, %2 */ |
| 7507 #line 434 "rx-decode.opc" | 7519 #line 446 "rx-decode.opc" |
| 7508 int ss AU = op[1] & 0x03; | 7520 int ss AU = op[1] & 0x03; |
| 7509 #line 434 "rx-decode.opc" | 7521 #line 446 "rx-decode.opc" |
| 7510 int rsrc AU = (op[2] >> 4) & 0x0f; | 7522 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7511 #line 434 "rx-decode.opc" | 7523 #line 446 "rx-decode.opc" |
| 7512 int rdst AU = op[2] & 0x0f; | 7524 int rdst AU = op[2] & 0x0f; |
| 7513 if (trace) | 7525 if (trace) |
| 7514 { | 7526 { |
| 7515 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7527 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7516 "/** 1111 1100 0011 00ss rsrc rdst tst
%1%S1, %2 */", | 7528 "/** 1111 1100 0011 00ss rsrc rdst tst
%1%S1, %2 */", |
| 7517 op[0], op[1], op[2]); | 7529 op[0], op[1], op[2]); |
| 7518 printf (" ss = 0x%x,", ss); | 7530 printf (" ss = 0x%x,", ss); |
| 7519 printf (" rsrc = 0x%x,", rsrc); | 7531 printf (" rsrc = 0x%x,", rsrc); |
| 7520 printf (" rdst = 0x%x\n", rdst); | 7532 printf (" rdst = 0x%x\n", rdst); |
| 7521 } | 7533 } |
| 7522 SYNTAX("tst %1%S1, %2"); | 7534 SYNTAX("tst %1%S1, %2"); |
| 7523 #line 434 "rx-decode.opc" | 7535 #line 446 "rx-decode.opc" |
| 7524 ID(and); SP(ss, rsrc); S2R(rdst); F__SZ_; | 7536 ID(and); SP(ss, rsrc); S2R(rdst); F__SZ_; |
| 7525 | 7537 |
| 7526 } | 7538 } |
| 7527 break; | 7539 break; |
| 7528 } | 7540 } |
| 7529 break; | 7541 break; |
| 7530 case 0x31: | 7542 case 0x31: |
| 7531 GETBYTE (); | 7543 GETBYTE (); |
| 7532 switch (op[2] & 0x00) | 7544 switch (op[2] & 0x00) |
| 7533 { | 7545 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7555 } | 7567 } |
| 7556 break; | 7568 break; |
| 7557 case 0x34: | 7569 case 0x34: |
| 7558 GETBYTE (); | 7570 GETBYTE (); |
| 7559 switch (op[2] & 0x00) | 7571 switch (op[2] & 0x00) |
| 7560 { | 7572 { |
| 7561 case 0x00: | 7573 case 0x00: |
| 7562 op_semantics_54: | 7574 op_semantics_54: |
| 7563 { | 7575 { |
| 7564 /** 1111 1100 0011 01ss rsrc rdst xor %1%S1, %0 */ | 7576 /** 1111 1100 0011 01ss rsrc rdst xor %1%S1, %0 */ |
| 7565 #line 413 "rx-decode.opc" | 7577 #line 425 "rx-decode.opc" |
| 7566 int ss AU = op[1] & 0x03; | 7578 int ss AU = op[1] & 0x03; |
| 7567 #line 413 "rx-decode.opc" | 7579 #line 425 "rx-decode.opc" |
| 7568 int rsrc AU = (op[2] >> 4) & 0x0f; | 7580 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7569 #line 413 "rx-decode.opc" | 7581 #line 425 "rx-decode.opc" |
| 7570 int rdst AU = op[2] & 0x0f; | 7582 int rdst AU = op[2] & 0x0f; |
| 7571 if (trace) | 7583 if (trace) |
| 7572 { | 7584 { |
| 7573 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7585 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7574 "/** 1111 1100 0011 01ss rsrc rdst xor
%1%S1, %0 */", | 7586 "/** 1111 1100 0011 01ss rsrc rdst xor
%1%S1, %0 */", |
| 7575 op[0], op[1], op[2]); | 7587 op[0], op[1], op[2]); |
| 7576 printf (" ss = 0x%x,", ss); | 7588 printf (" ss = 0x%x,", ss); |
| 7577 printf (" rsrc = 0x%x,", rsrc); | 7589 printf (" rsrc = 0x%x,", rsrc); |
| 7578 printf (" rdst = 0x%x\n", rdst); | 7590 printf (" rdst = 0x%x\n", rdst); |
| 7579 } | 7591 } |
| 7580 SYNTAX("xor %1%S1, %0"); | 7592 SYNTAX("xor %1%S1, %0"); |
| 7581 #line 413 "rx-decode.opc" | 7593 #line 425 "rx-decode.opc" |
| 7582 ID(xor); SP(ss, rsrc); DR(rdst); F__SZ_; | 7594 ID(xor); SP(ss, rsrc); DR(rdst); F__SZ_; |
| 7583 | 7595 |
| 7584 } | 7596 } |
| 7585 break; | 7597 break; |
| 7586 } | 7598 } |
| 7587 break; | 7599 break; |
| 7588 case 0x35: | 7600 case 0x35: |
| 7589 GETBYTE (); | 7601 GETBYTE (); |
| 7590 switch (op[2] & 0x00) | 7602 switch (op[2] & 0x00) |
| 7591 { | 7603 { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 7612 break; | 7624 break; |
| 7613 } | 7625 } |
| 7614 break; | 7626 break; |
| 7615 case 0x3b: | 7627 case 0x3b: |
| 7616 GETBYTE (); | 7628 GETBYTE (); |
| 7617 switch (op[2] & 0x00) | 7629 switch (op[2] & 0x00) |
| 7618 { | 7630 { |
| 7619 case 0x00: | 7631 case 0x00: |
| 7620 { | 7632 { |
| 7621 /** 1111 1100 0011 1011 rsrc rdst not %1, %0 */ | 7633 /** 1111 1100 0011 1011 rsrc rdst not %1, %0 */ |
| 7622 #line 425 "rx-decode.opc" | 7634 #line 437 "rx-decode.opc" |
| 7623 int rsrc AU = (op[2] >> 4) & 0x0f; | 7635 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7624 #line 425 "rx-decode.opc" | 7636 #line 437 "rx-decode.opc" |
| 7625 int rdst AU = op[2] & 0x0f; | 7637 int rdst AU = op[2] & 0x0f; |
| 7626 if (trace) | 7638 if (trace) |
| 7627 { | 7639 { |
| 7628 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7640 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7629 "/** 1111 1100 0011 1011 rsrc rdst not
%1, %0 */", | 7641 "/** 1111 1100 0011 1011 rsrc rdst not
%1, %0 */", |
| 7630 op[0], op[1], op[2]); | 7642 op[0], op[1], op[2]); |
| 7631 printf (" rsrc = 0x%x,", rsrc); | 7643 printf (" rsrc = 0x%x,", rsrc); |
| 7632 printf (" rdst = 0x%x\n", rdst); | 7644 printf (" rdst = 0x%x\n", rdst); |
| 7633 } | 7645 } |
| 7634 SYNTAX("not %1, %0"); | 7646 SYNTAX("not %1, %0"); |
| 7635 #line 425 "rx-decode.opc" | 7647 #line 437 "rx-decode.opc" |
| 7636 ID(xor); DR(rdst); SR(rsrc); S2C(~0); F__SZ_; | 7648 ID(xor); DR(rdst); SR(rsrc); S2C(~0); F__SZ_; |
| 7637 | 7649 |
| 7638 /*----------------------------------------------------------
------------*/ | 7650 /*----------------------------------------------------------
------------*/ |
| 7639 /* TST
*/ | 7651 /* TST
*/ |
| 7640 | 7652 |
| 7641 } | 7653 } |
| 7642 break; | 7654 break; |
| 7643 } | 7655 } |
| 7644 break; | 7656 break; |
| 7645 case 0x40: | 7657 case 0x40: |
| 7646 GETBYTE (); | 7658 GETBYTE (); |
| 7647 switch (op[2] & 0x00) | 7659 switch (op[2] & 0x00) |
| 7648 { | 7660 { |
| 7649 case 0x00: | 7661 case 0x00: |
| 7650 op_semantics_55: | 7662 op_semantics_55: |
| 7651 { | 7663 { |
| 7652 /** 1111 1100 0100 00ss rsrc rdst xchg %1%S1, %0 */ | 7664 /** 1111 1100 0100 00ss rsrc rdst xchg %1%S1, %0 */ |
| 7653 #line 347 "rx-decode.opc" | 7665 #line 359 "rx-decode.opc" |
| 7654 int ss AU = op[1] & 0x03; | 7666 int ss AU = op[1] & 0x03; |
| 7655 #line 347 "rx-decode.opc" | 7667 #line 359 "rx-decode.opc" |
| 7656 int rsrc AU = (op[2] >> 4) & 0x0f; | 7668 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7657 #line 347 "rx-decode.opc" | 7669 #line 359 "rx-decode.opc" |
| 7658 int rdst AU = op[2] & 0x0f; | 7670 int rdst AU = op[2] & 0x0f; |
| 7659 if (trace) | 7671 if (trace) |
| 7660 { | 7672 { |
| 7661 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7673 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7662 "/** 1111 1100 0100 00ss rsrc rdst xchg
%1%S1, %0 */", | 7674 "/** 1111 1100 0100 00ss rsrc rdst xchg
%1%S1, %0 */", |
| 7663 op[0], op[1], op[2]); | 7675 op[0], op[1], op[2]); |
| 7664 printf (" ss = 0x%x,", ss); | 7676 printf (" ss = 0x%x,", ss); |
| 7665 printf (" rsrc = 0x%x,", rsrc); | 7677 printf (" rsrc = 0x%x,", rsrc); |
| 7666 printf (" rdst = 0x%x\n", rdst); | 7678 printf (" rdst = 0x%x\n", rdst); |
| 7667 } | 7679 } |
| 7668 SYNTAX("xchg %1%S1, %0"); | 7680 SYNTAX("xchg %1%S1, %0"); |
| 7669 #line 347 "rx-decode.opc" | 7681 #line 359 "rx-decode.opc" |
| 7670 ID(xchg); DR(rdst); SP(ss, rsrc); | 7682 ID(xchg); DR(rdst); SP(ss, rsrc); |
| 7671 | 7683 |
| 7672 } | 7684 } |
| 7673 break; | 7685 break; |
| 7674 } | 7686 } |
| 7675 break; | 7687 break; |
| 7676 case 0x41: | 7688 case 0x41: |
| 7677 GETBYTE (); | 7689 GETBYTE (); |
| 7678 switch (op[2] & 0x00) | 7690 switch (op[2] & 0x00) |
| 7679 { | 7691 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7701 } | 7713 } |
| 7702 break; | 7714 break; |
| 7703 case 0x44: | 7715 case 0x44: |
| 7704 GETBYTE (); | 7716 GETBYTE (); |
| 7705 switch (op[2] & 0x00) | 7717 switch (op[2] & 0x00) |
| 7706 { | 7718 { |
| 7707 case 0x00: | 7719 case 0x00: |
| 7708 op_semantics_56: | 7720 op_semantics_56: |
| 7709 { | 7721 { |
| 7710 /** 1111 1100 0100 01sd rsrc rdst itof %1%S1, %0 */ | 7722 /** 1111 1100 0100 01sd rsrc rdst itof %1%S1, %0 */ |
| 7711 #line 852 "rx-decode.opc" | 7723 #line 864 "rx-decode.opc" |
| 7712 int sd AU = op[1] & 0x03; | 7724 int sd AU = op[1] & 0x03; |
| 7713 #line 852 "rx-decode.opc" | 7725 #line 864 "rx-decode.opc" |
| 7714 int rsrc AU = (op[2] >> 4) & 0x0f; | 7726 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 7715 #line 852 "rx-decode.opc" | 7727 #line 864 "rx-decode.opc" |
| 7716 int rdst AU = op[2] & 0x0f; | 7728 int rdst AU = op[2] & 0x0f; |
| 7717 if (trace) | 7729 if (trace) |
| 7718 { | 7730 { |
| 7719 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7731 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7720 "/** 1111 1100 0100 01sd rsrc rdst itof
%1%S1, %0 */", | 7732 "/** 1111 1100 0100 01sd rsrc rdst itof
%1%S1, %0 */", |
| 7721 op[0], op[1], op[2]); | 7733 op[0], op[1], op[2]); |
| 7722 printf (" sd = 0x%x,", sd); | 7734 printf (" sd = 0x%x,", sd); |
| 7723 printf (" rsrc = 0x%x,", rsrc); | 7735 printf (" rsrc = 0x%x,", rsrc); |
| 7724 printf (" rdst = 0x%x\n", rdst); | 7736 printf (" rdst = 0x%x\n", rdst); |
| 7725 } | 7737 } |
| 7726 SYNTAX("itof %1%S1, %0"); | 7738 SYNTAX("itof %1%S1, %0"); |
| 7727 #line 852 "rx-decode.opc" | 7739 #line 864 "rx-decode.opc" |
| 7728 ID(itof); DR (rdst); SP(sd, rsrc); F__SZ_; | 7740 ID(itof); DR (rdst); SP(sd, rsrc); F__SZ_; |
| 7729 | 7741 |
| 7730 } | 7742 } |
| 7731 break; | 7743 break; |
| 7732 } | 7744 } |
| 7733 break; | 7745 break; |
| 7734 case 0x45: | 7746 case 0x45: |
| 7735 GETBYTE (); | 7747 GETBYTE (); |
| 7736 switch (op[2] & 0x00) | 7748 switch (op[2] & 0x00) |
| 7737 { | 7749 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7759 } | 7771 } |
| 7760 break; | 7772 break; |
| 7761 case 0x60: | 7773 case 0x60: |
| 7762 GETBYTE (); | 7774 GETBYTE (); |
| 7763 switch (op[2] & 0x00) | 7775 switch (op[2] & 0x00) |
| 7764 { | 7776 { |
| 7765 case 0x00: | 7777 case 0x00: |
| 7766 op_semantics_57: | 7778 op_semantics_57: |
| 7767 { | 7779 { |
| 7768 /** 1111 1100 0110 00sd rdst rsrc bset %1, %0%S0 */ | 7780 /** 1111 1100 0110 00sd rdst rsrc bset %1, %0%S0 */ |
| 7769 #line 864 "rx-decode.opc" | 7781 #line 876 "rx-decode.opc" |
| 7770 int sd AU = op[1] & 0x03; | 7782 int sd AU = op[1] & 0x03; |
| 7771 #line 864 "rx-decode.opc" | 7783 #line 876 "rx-decode.opc" |
| 7772 int rdst AU = (op[2] >> 4) & 0x0f; | 7784 int rdst AU = (op[2] >> 4) & 0x0f; |
| 7773 #line 864 "rx-decode.opc" | 7785 #line 876 "rx-decode.opc" |
| 7774 int rsrc AU = op[2] & 0x0f; | 7786 int rsrc AU = op[2] & 0x0f; |
| 7775 if (trace) | 7787 if (trace) |
| 7776 { | 7788 { |
| 7777 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7789 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7778 "/** 1111 1100 0110 00sd rdst rsrc bset
%1, %0%S0 */", | 7790 "/** 1111 1100 0110 00sd rdst rsrc bset
%1, %0%S0 */", |
| 7779 op[0], op[1], op[2]); | 7791 op[0], op[1], op[2]); |
| 7780 printf (" sd = 0x%x,", sd); | 7792 printf (" sd = 0x%x,", sd); |
| 7781 printf (" rdst = 0x%x,", rdst); | 7793 printf (" rdst = 0x%x,", rdst); |
| 7782 printf (" rsrc = 0x%x\n", rsrc); | 7794 printf (" rsrc = 0x%x\n", rsrc); |
| 7783 } | 7795 } |
| 7784 SYNTAX("bset %1, %0%S0"); | 7796 SYNTAX("bset %1, %0%S0"); |
| 7785 #line 864 "rx-decode.opc" | 7797 #line 876 "rx-decode.opc" |
| 7786 ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F____
_; | 7798 ID(bset); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F____
_; |
| 7787 | 7799 |
| 7788 } | 7800 } |
| 7789 break; | 7801 break; |
| 7790 } | 7802 } |
| 7791 break; | 7803 break; |
| 7792 case 0x61: | 7804 case 0x61: |
| 7793 GETBYTE (); | 7805 GETBYTE (); |
| 7794 switch (op[2] & 0x00) | 7806 switch (op[2] & 0x00) |
| 7795 { | 7807 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7817 } | 7829 } |
| 7818 break; | 7830 break; |
| 7819 case 0x64: | 7831 case 0x64: |
| 7820 GETBYTE (); | 7832 GETBYTE (); |
| 7821 switch (op[2] & 0x00) | 7833 switch (op[2] & 0x00) |
| 7822 { | 7834 { |
| 7823 case 0x00: | 7835 case 0x00: |
| 7824 op_semantics_58: | 7836 op_semantics_58: |
| 7825 { | 7837 { |
| 7826 /** 1111 1100 0110 01sd rdst rsrc bclr %1, %0%S0 */ | 7838 /** 1111 1100 0110 01sd rdst rsrc bclr %1, %0%S0 */ |
| 7827 #line 874 "rx-decode.opc" | 7839 #line 886 "rx-decode.opc" |
| 7828 int sd AU = op[1] & 0x03; | 7840 int sd AU = op[1] & 0x03; |
| 7829 #line 874 "rx-decode.opc" | 7841 #line 886 "rx-decode.opc" |
| 7830 int rdst AU = (op[2] >> 4) & 0x0f; | 7842 int rdst AU = (op[2] >> 4) & 0x0f; |
| 7831 #line 874 "rx-decode.opc" | 7843 #line 886 "rx-decode.opc" |
| 7832 int rsrc AU = op[2] & 0x0f; | 7844 int rsrc AU = op[2] & 0x0f; |
| 7833 if (trace) | 7845 if (trace) |
| 7834 { | 7846 { |
| 7835 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7847 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7836 "/** 1111 1100 0110 01sd rdst rsrc bclr
%1, %0%S0 */", | 7848 "/** 1111 1100 0110 01sd rdst rsrc bclr
%1, %0%S0 */", |
| 7837 op[0], op[1], op[2]); | 7849 op[0], op[1], op[2]); |
| 7838 printf (" sd = 0x%x,", sd); | 7850 printf (" sd = 0x%x,", sd); |
| 7839 printf (" rdst = 0x%x,", rdst); | 7851 printf (" rdst = 0x%x,", rdst); |
| 7840 printf (" rsrc = 0x%x\n", rsrc); | 7852 printf (" rsrc = 0x%x\n", rsrc); |
| 7841 } | 7853 } |
| 7842 SYNTAX("bclr %1, %0%S0"); | 7854 SYNTAX("bclr %1, %0%S0"); |
| 7843 #line 874 "rx-decode.opc" | 7855 #line 886 "rx-decode.opc" |
| 7844 ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F____
_; | 7856 ID(bclr); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); F____
_; |
| 7845 | 7857 |
| 7846 } | 7858 } |
| 7847 break; | 7859 break; |
| 7848 } | 7860 } |
| 7849 break; | 7861 break; |
| 7850 case 0x65: | 7862 case 0x65: |
| 7851 GETBYTE (); | 7863 GETBYTE (); |
| 7852 switch (op[2] & 0x00) | 7864 switch (op[2] & 0x00) |
| 7853 { | 7865 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7875 } | 7887 } |
| 7876 break; | 7888 break; |
| 7877 case 0x68: | 7889 case 0x68: |
| 7878 GETBYTE (); | 7890 GETBYTE (); |
| 7879 switch (op[2] & 0x00) | 7891 switch (op[2] & 0x00) |
| 7880 { | 7892 { |
| 7881 case 0x00: | 7893 case 0x00: |
| 7882 op_semantics_59: | 7894 op_semantics_59: |
| 7883 { | 7895 { |
| 7884 /** 1111 1100 0110 10sd rdst rsrc btst %2, %1%S1 */ | 7896 /** 1111 1100 0110 10sd rdst rsrc btst %2, %1%S1 */ |
| 7885 #line 884 "rx-decode.opc" | 7897 #line 896 "rx-decode.opc" |
| 7886 int sd AU = op[1] & 0x03; | 7898 int sd AU = op[1] & 0x03; |
| 7887 #line 884 "rx-decode.opc" | 7899 #line 896 "rx-decode.opc" |
| 7888 int rdst AU = (op[2] >> 4) & 0x0f; | 7900 int rdst AU = (op[2] >> 4) & 0x0f; |
| 7889 #line 884 "rx-decode.opc" | 7901 #line 896 "rx-decode.opc" |
| 7890 int rsrc AU = op[2] & 0x0f; | 7902 int rsrc AU = op[2] & 0x0f; |
| 7891 if (trace) | 7903 if (trace) |
| 7892 { | 7904 { |
| 7893 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7905 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7894 "/** 1111 1100 0110 10sd rdst rsrc btst
%2, %1%S1 */", | 7906 "/** 1111 1100 0110 10sd rdst rsrc btst
%2, %1%S1 */", |
| 7895 op[0], op[1], op[2]); | 7907 op[0], op[1], op[2]); |
| 7896 printf (" sd = 0x%x,", sd); | 7908 printf (" sd = 0x%x,", sd); |
| 7897 printf (" rdst = 0x%x,", rdst); | 7909 printf (" rdst = 0x%x,", rdst); |
| 7898 printf (" rsrc = 0x%x\n", rsrc); | 7910 printf (" rsrc = 0x%x\n", rsrc); |
| 7899 } | 7911 } |
| 7900 SYNTAX("btst %2, %1%S1"); | 7912 SYNTAX("btst %2, %1%S1"); |
| 7901 #line 884 "rx-decode.opc" | 7913 #line 896 "rx-decode.opc" |
| 7902 ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F___
ZC; | 7914 ID(btst); BWL(BSIZE); S2R(rsrc); SD(sd, rdst, BSIZE); F___
ZC; |
| 7903 | 7915 |
| 7904 } | 7916 } |
| 7905 break; | 7917 break; |
| 7906 } | 7918 } |
| 7907 break; | 7919 break; |
| 7908 case 0x69: | 7920 case 0x69: |
| 7909 GETBYTE (); | 7921 GETBYTE (); |
| 7910 switch (op[2] & 0x00) | 7922 switch (op[2] & 0x00) |
| 7911 { | 7923 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7933 } | 7945 } |
| 7934 break; | 7946 break; |
| 7935 case 0x6c: | 7947 case 0x6c: |
| 7936 GETBYTE (); | 7948 GETBYTE (); |
| 7937 switch (op[2] & 0x00) | 7949 switch (op[2] & 0x00) |
| 7938 { | 7950 { |
| 7939 case 0x00: | 7951 case 0x00: |
| 7940 op_semantics_60: | 7952 op_semantics_60: |
| 7941 { | 7953 { |
| 7942 /** 1111 1100 0110 11sd rdst rsrc bnot %1, %0%S0 */ | 7954 /** 1111 1100 0110 11sd rdst rsrc bnot %1, %0%S0 */ |
| 7943 #line 894 "rx-decode.opc" | 7955 #line 906 "rx-decode.opc" |
| 7944 int sd AU = op[1] & 0x03; | 7956 int sd AU = op[1] & 0x03; |
| 7945 #line 894 "rx-decode.opc" | 7957 #line 906 "rx-decode.opc" |
| 7946 int rdst AU = (op[2] >> 4) & 0x0f; | 7958 int rdst AU = (op[2] >> 4) & 0x0f; |
| 7947 #line 894 "rx-decode.opc" | 7959 #line 906 "rx-decode.opc" |
| 7948 int rsrc AU = op[2] & 0x0f; | 7960 int rsrc AU = op[2] & 0x0f; |
| 7949 if (trace) | 7961 if (trace) |
| 7950 { | 7962 { |
| 7951 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 7963 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 7952 "/** 1111 1100 0110 11sd rdst rsrc bnot
%1, %0%S0 */", | 7964 "/** 1111 1100 0110 11sd rdst rsrc bnot
%1, %0%S0 */", |
| 7953 op[0], op[1], op[2]); | 7965 op[0], op[1], op[2]); |
| 7954 printf (" sd = 0x%x,", sd); | 7966 printf (" sd = 0x%x,", sd); |
| 7955 printf (" rdst = 0x%x,", rdst); | 7967 printf (" rdst = 0x%x,", rdst); |
| 7956 printf (" rsrc = 0x%x\n", rsrc); | 7968 printf (" rsrc = 0x%x\n", rsrc); |
| 7957 } | 7969 } |
| 7958 SYNTAX("bnot %1, %0%S0"); | 7970 SYNTAX("bnot %1, %0%S0"); |
| 7959 #line 894 "rx-decode.opc" | 7971 #line 906 "rx-decode.opc" |
| 7960 ID(bnot); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); | 7972 ID(bnot); BWL(BSIZE); SR(rsrc); DD(sd, rdst, BSIZE); |
| 7961 | 7973 |
| 7962 } | 7974 } |
| 7963 break; | 7975 break; |
| 7964 } | 7976 } |
| 7965 break; | 7977 break; |
| 7966 case 0x6d: | 7978 case 0x6d: |
| 7967 GETBYTE (); | 7979 GETBYTE (); |
| 7968 switch (op[2] & 0x00) | 7980 switch (op[2] & 0x00) |
| 7969 { | 7981 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 7991 } | 8003 } |
| 7992 break; | 8004 break; |
| 7993 case 0x80: | 8005 case 0x80: |
| 7994 GETBYTE (); | 8006 GETBYTE (); |
| 7995 switch (op[2] & 0x00) | 8007 switch (op[2] & 0x00) |
| 7996 { | 8008 { |
| 7997 case 0x00: | 8009 case 0x00: |
| 7998 op_semantics_61: | 8010 op_semantics_61: |
| 7999 { | 8011 { |
| 8000 /** 1111 1100 1000 00sd rsrc rdst fsub %1%S1, %0 */ | 8012 /** 1111 1100 1000 00sd rsrc rdst fsub %1%S1, %0 */ |
| 8001 #line 831 "rx-decode.opc" | 8013 #line 843 "rx-decode.opc" |
| 8002 int sd AU = op[1] & 0x03; | 8014 int sd AU = op[1] & 0x03; |
| 8003 #line 831 "rx-decode.opc" | 8015 #line 843 "rx-decode.opc" |
| 8004 int rsrc AU = (op[2] >> 4) & 0x0f; | 8016 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8005 #line 831 "rx-decode.opc" | 8017 #line 843 "rx-decode.opc" |
| 8006 int rdst AU = op[2] & 0x0f; | 8018 int rdst AU = op[2] & 0x0f; |
| 8007 if (trace) | 8019 if (trace) |
| 8008 { | 8020 { |
| 8009 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8021 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8010 "/** 1111 1100 1000 00sd rsrc rdst fsub
%1%S1, %0 */", | 8022 "/** 1111 1100 1000 00sd rsrc rdst fsub
%1%S1, %0 */", |
| 8011 op[0], op[1], op[2]); | 8023 op[0], op[1], op[2]); |
| 8012 printf (" sd = 0x%x,", sd); | 8024 printf (" sd = 0x%x,", sd); |
| 8013 printf (" rsrc = 0x%x,", rsrc); | 8025 printf (" rsrc = 0x%x,", rsrc); |
| 8014 printf (" rdst = 0x%x\n", rdst); | 8026 printf (" rdst = 0x%x\n", rdst); |
| 8015 } | 8027 } |
| 8016 SYNTAX("fsub %1%S1, %0"); | 8028 SYNTAX("fsub %1%S1, %0"); |
| 8017 #line 831 "rx-decode.opc" | 8029 #line 843 "rx-decode.opc" |
| 8018 ID(fsub); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8030 ID(fsub); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8019 | 8031 |
| 8020 } | 8032 } |
| 8021 break; | 8033 break; |
| 8022 } | 8034 } |
| 8023 break; | 8035 break; |
| 8024 case 0x81: | 8036 case 0x81: |
| 8025 GETBYTE (); | 8037 GETBYTE (); |
| 8026 switch (op[2] & 0x00) | 8038 switch (op[2] & 0x00) |
| 8027 { | 8039 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8049 } | 8061 } |
| 8050 break; | 8062 break; |
| 8051 case 0x84: | 8063 case 0x84: |
| 8052 GETBYTE (); | 8064 GETBYTE (); |
| 8053 switch (op[2] & 0x00) | 8065 switch (op[2] & 0x00) |
| 8054 { | 8066 { |
| 8055 case 0x00: | 8067 case 0x00: |
| 8056 op_semantics_62: | 8068 op_semantics_62: |
| 8057 { | 8069 { |
| 8058 /** 1111 1100 1000 01sd rsrc rdst fcmp %1%S1, %0 */ | 8070 /** 1111 1100 1000 01sd rsrc rdst fcmp %1%S1, %0 */ |
| 8059 #line 825 "rx-decode.opc" | 8071 #line 837 "rx-decode.opc" |
| 8060 int sd AU = op[1] & 0x03; | 8072 int sd AU = op[1] & 0x03; |
| 8061 #line 825 "rx-decode.opc" | 8073 #line 837 "rx-decode.opc" |
| 8062 int rsrc AU = (op[2] >> 4) & 0x0f; | 8074 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8063 #line 825 "rx-decode.opc" | 8075 #line 837 "rx-decode.opc" |
| 8064 int rdst AU = op[2] & 0x0f; | 8076 int rdst AU = op[2] & 0x0f; |
| 8065 if (trace) | 8077 if (trace) |
| 8066 { | 8078 { |
| 8067 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8079 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8068 "/** 1111 1100 1000 01sd rsrc rdst fcmp
%1%S1, %0 */", | 8080 "/** 1111 1100 1000 01sd rsrc rdst fcmp
%1%S1, %0 */", |
| 8069 op[0], op[1], op[2]); | 8081 op[0], op[1], op[2]); |
| 8070 printf (" sd = 0x%x,", sd); | 8082 printf (" sd = 0x%x,", sd); |
| 8071 printf (" rsrc = 0x%x,", rsrc); | 8083 printf (" rsrc = 0x%x,", rsrc); |
| 8072 printf (" rdst = 0x%x\n", rdst); | 8084 printf (" rdst = 0x%x\n", rdst); |
| 8073 } | 8085 } |
| 8074 SYNTAX("fcmp %1%S1, %0"); | 8086 SYNTAX("fcmp %1%S1, %0"); |
| 8075 #line 825 "rx-decode.opc" | 8087 #line 837 "rx-decode.opc" |
| 8076 ID(fcmp); DR(rdst); SD(sd, rsrc, LSIZE); F_OSZ_; | 8088 ID(fcmp); DR(rdst); SD(sd, rsrc, LSIZE); F_OSZ_; |
| 8077 | 8089 |
| 8078 } | 8090 } |
| 8079 break; | 8091 break; |
| 8080 } | 8092 } |
| 8081 break; | 8093 break; |
| 8082 case 0x85: | 8094 case 0x85: |
| 8083 GETBYTE (); | 8095 GETBYTE (); |
| 8084 switch (op[2] & 0x00) | 8096 switch (op[2] & 0x00) |
| 8085 { | 8097 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8107 } | 8119 } |
| 8108 break; | 8120 break; |
| 8109 case 0x88: | 8121 case 0x88: |
| 8110 GETBYTE (); | 8122 GETBYTE (); |
| 8111 switch (op[2] & 0x00) | 8123 switch (op[2] & 0x00) |
| 8112 { | 8124 { |
| 8113 case 0x00: | 8125 case 0x00: |
| 8114 op_semantics_63: | 8126 op_semantics_63: |
| 8115 { | 8127 { |
| 8116 /** 1111 1100 1000 10sd rsrc rdst fadd %1%S1, %0 */ | 8128 /** 1111 1100 1000 10sd rsrc rdst fadd %1%S1, %0 */ |
| 8117 #line 819 "rx-decode.opc" | 8129 #line 831 "rx-decode.opc" |
| 8118 int sd AU = op[1] & 0x03; | 8130 int sd AU = op[1] & 0x03; |
| 8119 #line 819 "rx-decode.opc" | 8131 #line 831 "rx-decode.opc" |
| 8120 int rsrc AU = (op[2] >> 4) & 0x0f; | 8132 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8121 #line 819 "rx-decode.opc" | 8133 #line 831 "rx-decode.opc" |
| 8122 int rdst AU = op[2] & 0x0f; | 8134 int rdst AU = op[2] & 0x0f; |
| 8123 if (trace) | 8135 if (trace) |
| 8124 { | 8136 { |
| 8125 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8137 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8126 "/** 1111 1100 1000 10sd rsrc rdst fadd
%1%S1, %0 */", | 8138 "/** 1111 1100 1000 10sd rsrc rdst fadd
%1%S1, %0 */", |
| 8127 op[0], op[1], op[2]); | 8139 op[0], op[1], op[2]); |
| 8128 printf (" sd = 0x%x,", sd); | 8140 printf (" sd = 0x%x,", sd); |
| 8129 printf (" rsrc = 0x%x,", rsrc); | 8141 printf (" rsrc = 0x%x,", rsrc); |
| 8130 printf (" rdst = 0x%x\n", rdst); | 8142 printf (" rdst = 0x%x\n", rdst); |
| 8131 } | 8143 } |
| 8132 SYNTAX("fadd %1%S1, %0"); | 8144 SYNTAX("fadd %1%S1, %0"); |
| 8133 #line 819 "rx-decode.opc" | 8145 #line 831 "rx-decode.opc" |
| 8134 ID(fadd); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8146 ID(fadd); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8135 | 8147 |
| 8136 } | 8148 } |
| 8137 break; | 8149 break; |
| 8138 } | 8150 } |
| 8139 break; | 8151 break; |
| 8140 case 0x89: | 8152 case 0x89: |
| 8141 GETBYTE (); | 8153 GETBYTE (); |
| 8142 switch (op[2] & 0x00) | 8154 switch (op[2] & 0x00) |
| 8143 { | 8155 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8165 } | 8177 } |
| 8166 break; | 8178 break; |
| 8167 case 0x8c: | 8179 case 0x8c: |
| 8168 GETBYTE (); | 8180 GETBYTE (); |
| 8169 switch (op[2] & 0x00) | 8181 switch (op[2] & 0x00) |
| 8170 { | 8182 { |
| 8171 case 0x00: | 8183 case 0x00: |
| 8172 op_semantics_64: | 8184 op_semantics_64: |
| 8173 { | 8185 { |
| 8174 /** 1111 1100 1000 11sd rsrc rdst fmul %1%S1, %0 */ | 8186 /** 1111 1100 1000 11sd rsrc rdst fmul %1%S1, %0 */ |
| 8175 #line 840 "rx-decode.opc" | 8187 #line 852 "rx-decode.opc" |
| 8176 int sd AU = op[1] & 0x03; | 8188 int sd AU = op[1] & 0x03; |
| 8177 #line 840 "rx-decode.opc" | 8189 #line 852 "rx-decode.opc" |
| 8178 int rsrc AU = (op[2] >> 4) & 0x0f; | 8190 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8179 #line 840 "rx-decode.opc" | 8191 #line 852 "rx-decode.opc" |
| 8180 int rdst AU = op[2] & 0x0f; | 8192 int rdst AU = op[2] & 0x0f; |
| 8181 if (trace) | 8193 if (trace) |
| 8182 { | 8194 { |
| 8183 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8195 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8184 "/** 1111 1100 1000 11sd rsrc rdst fmul
%1%S1, %0 */", | 8196 "/** 1111 1100 1000 11sd rsrc rdst fmul
%1%S1, %0 */", |
| 8185 op[0], op[1], op[2]); | 8197 op[0], op[1], op[2]); |
| 8186 printf (" sd = 0x%x,", sd); | 8198 printf (" sd = 0x%x,", sd); |
| 8187 printf (" rsrc = 0x%x,", rsrc); | 8199 printf (" rsrc = 0x%x,", rsrc); |
| 8188 printf (" rdst = 0x%x\n", rdst); | 8200 printf (" rdst = 0x%x\n", rdst); |
| 8189 } | 8201 } |
| 8190 SYNTAX("fmul %1%S1, %0"); | 8202 SYNTAX("fmul %1%S1, %0"); |
| 8191 #line 840 "rx-decode.opc" | 8203 #line 852 "rx-decode.opc" |
| 8192 ID(fmul); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8204 ID(fmul); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8193 | 8205 |
| 8194 } | 8206 } |
| 8195 break; | 8207 break; |
| 8196 } | 8208 } |
| 8197 break; | 8209 break; |
| 8198 case 0x8d: | 8210 case 0x8d: |
| 8199 GETBYTE (); | 8211 GETBYTE (); |
| 8200 switch (op[2] & 0x00) | 8212 switch (op[2] & 0x00) |
| 8201 { | 8213 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8223 } | 8235 } |
| 8224 break; | 8236 break; |
| 8225 case 0x90: | 8237 case 0x90: |
| 8226 GETBYTE (); | 8238 GETBYTE (); |
| 8227 switch (op[2] & 0x00) | 8239 switch (op[2] & 0x00) |
| 8228 { | 8240 { |
| 8229 case 0x00: | 8241 case 0x00: |
| 8230 op_semantics_65: | 8242 op_semantics_65: |
| 8231 { | 8243 { |
| 8232 /** 1111 1100 1001 00sd rsrc rdst fdiv %1%S1, %0 */ | 8244 /** 1111 1100 1001 00sd rsrc rdst fdiv %1%S1, %0 */ |
| 8233 #line 846 "rx-decode.opc" | 8245 #line 858 "rx-decode.opc" |
| 8234 int sd AU = op[1] & 0x03; | 8246 int sd AU = op[1] & 0x03; |
| 8235 #line 846 "rx-decode.opc" | 8247 #line 858 "rx-decode.opc" |
| 8236 int rsrc AU = (op[2] >> 4) & 0x0f; | 8248 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8237 #line 846 "rx-decode.opc" | 8249 #line 858 "rx-decode.opc" |
| 8238 int rdst AU = op[2] & 0x0f; | 8250 int rdst AU = op[2] & 0x0f; |
| 8239 if (trace) | 8251 if (trace) |
| 8240 { | 8252 { |
| 8241 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8253 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8242 "/** 1111 1100 1001 00sd rsrc rdst fdiv
%1%S1, %0 */", | 8254 "/** 1111 1100 1001 00sd rsrc rdst fdiv
%1%S1, %0 */", |
| 8243 op[0], op[1], op[2]); | 8255 op[0], op[1], op[2]); |
| 8244 printf (" sd = 0x%x,", sd); | 8256 printf (" sd = 0x%x,", sd); |
| 8245 printf (" rsrc = 0x%x,", rsrc); | 8257 printf (" rsrc = 0x%x,", rsrc); |
| 8246 printf (" rdst = 0x%x\n", rdst); | 8258 printf (" rdst = 0x%x\n", rdst); |
| 8247 } | 8259 } |
| 8248 SYNTAX("fdiv %1%S1, %0"); | 8260 SYNTAX("fdiv %1%S1, %0"); |
| 8249 #line 846 "rx-decode.opc" | 8261 #line 858 "rx-decode.opc" |
| 8250 ID(fdiv); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8262 ID(fdiv); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8251 | 8263 |
| 8252 } | 8264 } |
| 8253 break; | 8265 break; |
| 8254 } | 8266 } |
| 8255 break; | 8267 break; |
| 8256 case 0x91: | 8268 case 0x91: |
| 8257 GETBYTE (); | 8269 GETBYTE (); |
| 8258 switch (op[2] & 0x00) | 8270 switch (op[2] & 0x00) |
| 8259 { | 8271 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8281 } | 8293 } |
| 8282 break; | 8294 break; |
| 8283 case 0x94: | 8295 case 0x94: |
| 8284 GETBYTE (); | 8296 GETBYTE (); |
| 8285 switch (op[2] & 0x00) | 8297 switch (op[2] & 0x00) |
| 8286 { | 8298 { |
| 8287 case 0x00: | 8299 case 0x00: |
| 8288 op_semantics_66: | 8300 op_semantics_66: |
| 8289 { | 8301 { |
| 8290 /** 1111 1100 1001 01sd rsrc rdst ftoi %1%S1, %0 */ | 8302 /** 1111 1100 1001 01sd rsrc rdst ftoi %1%S1, %0 */ |
| 8291 #line 834 "rx-decode.opc" | 8303 #line 846 "rx-decode.opc" |
| 8292 int sd AU = op[1] & 0x03; | 8304 int sd AU = op[1] & 0x03; |
| 8293 #line 834 "rx-decode.opc" | 8305 #line 846 "rx-decode.opc" |
| 8294 int rsrc AU = (op[2] >> 4) & 0x0f; | 8306 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8295 #line 834 "rx-decode.opc" | 8307 #line 846 "rx-decode.opc" |
| 8296 int rdst AU = op[2] & 0x0f; | 8308 int rdst AU = op[2] & 0x0f; |
| 8297 if (trace) | 8309 if (trace) |
| 8298 { | 8310 { |
| 8299 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8311 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8300 "/** 1111 1100 1001 01sd rsrc rdst ftoi
%1%S1, %0 */", | 8312 "/** 1111 1100 1001 01sd rsrc rdst ftoi
%1%S1, %0 */", |
| 8301 op[0], op[1], op[2]); | 8313 op[0], op[1], op[2]); |
| 8302 printf (" sd = 0x%x,", sd); | 8314 printf (" sd = 0x%x,", sd); |
| 8303 printf (" rsrc = 0x%x,", rsrc); | 8315 printf (" rsrc = 0x%x,", rsrc); |
| 8304 printf (" rdst = 0x%x\n", rdst); | 8316 printf (" rdst = 0x%x\n", rdst); |
| 8305 } | 8317 } |
| 8306 SYNTAX("ftoi %1%S1, %0"); | 8318 SYNTAX("ftoi %1%S1, %0"); |
| 8307 #line 834 "rx-decode.opc" | 8319 #line 846 "rx-decode.opc" |
| 8308 ID(ftoi); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8320 ID(ftoi); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8309 | 8321 |
| 8310 } | 8322 } |
| 8311 break; | 8323 break; |
| 8312 } | 8324 } |
| 8313 break; | 8325 break; |
| 8314 case 0x95: | 8326 case 0x95: |
| 8315 GETBYTE (); | 8327 GETBYTE (); |
| 8316 switch (op[2] & 0x00) | 8328 switch (op[2] & 0x00) |
| 8317 { | 8329 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8339 } | 8351 } |
| 8340 break; | 8352 break; |
| 8341 case 0x98: | 8353 case 0x98: |
| 8342 GETBYTE (); | 8354 GETBYTE (); |
| 8343 switch (op[2] & 0x00) | 8355 switch (op[2] & 0x00) |
| 8344 { | 8356 { |
| 8345 case 0x00: | 8357 case 0x00: |
| 8346 op_semantics_67: | 8358 op_semantics_67: |
| 8347 { | 8359 { |
| 8348 /** 1111 1100 1001 10sd rsrc rdst round %1%S1, %0 */ | 8360 /** 1111 1100 1001 10sd rsrc rdst round %1%S1, %0 */ |
| 8349 #line 849 "rx-decode.opc" | 8361 #line 861 "rx-decode.opc" |
| 8350 int sd AU = op[1] & 0x03; | 8362 int sd AU = op[1] & 0x03; |
| 8351 #line 849 "rx-decode.opc" | 8363 #line 861 "rx-decode.opc" |
| 8352 int rsrc AU = (op[2] >> 4) & 0x0f; | 8364 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 8353 #line 849 "rx-decode.opc" | 8365 #line 861 "rx-decode.opc" |
| 8354 int rdst AU = op[2] & 0x0f; | 8366 int rdst AU = op[2] & 0x0f; |
| 8355 if (trace) | 8367 if (trace) |
| 8356 { | 8368 { |
| 8357 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8369 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8358 "/** 1111 1100 1001 10sd rsrc rdst round
%1%S1, %0 */", | 8370 "/** 1111 1100 1001 10sd rsrc rdst round
%1%S1, %0 */", |
| 8359 op[0], op[1], op[2]); | 8371 op[0], op[1], op[2]); |
| 8360 printf (" sd = 0x%x,", sd); | 8372 printf (" sd = 0x%x,", sd); |
| 8361 printf (" rsrc = 0x%x,", rsrc); | 8373 printf (" rsrc = 0x%x,", rsrc); |
| 8362 printf (" rdst = 0x%x\n", rdst); | 8374 printf (" rdst = 0x%x\n", rdst); |
| 8363 } | 8375 } |
| 8364 SYNTAX("round %1%S1, %0"); | 8376 SYNTAX("round %1%S1, %0"); |
| 8365 #line 849 "rx-decode.opc" | 8377 #line 861 "rx-decode.opc" |
| 8366 ID(round); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; | 8378 ID(round); DR(rdst); SD(sd, rsrc, LSIZE); F__SZ_; |
| 8367 | 8379 |
| 8368 } | 8380 } |
| 8369 break; | 8381 break; |
| 8370 } | 8382 } |
| 8371 break; | 8383 break; |
| 8372 case 0x99: | 8384 case 0x99: |
| 8373 GETBYTE (); | 8385 GETBYTE (); |
| 8374 switch (op[2] & 0x00) | 8386 switch (op[2] & 0x00) |
| 8375 { | 8387 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 8397 } | 8409 } |
| 8398 break; | 8410 break; |
| 8399 case 0xd0: | 8411 case 0xd0: |
| 8400 GETBYTE (); | 8412 GETBYTE (); |
| 8401 switch (op[2] & 0x00) | 8413 switch (op[2] & 0x00) |
| 8402 { | 8414 { |
| 8403 case 0x00: | 8415 case 0x00: |
| 8404 op_semantics_68: | 8416 op_semantics_68: |
| 8405 { | 8417 { |
| 8406 /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ | 8418 /** 1111 1100 1101 sz sd rdst cond sc%1%s %0 */ |
| 8407 #line 958 "rx-decode.opc" | 8419 #line 970 "rx-decode.opc" |
| 8408 int sz AU = (op[1] >> 2) & 0x03; | 8420 int sz AU = (op[1] >> 2) & 0x03; |
| 8409 #line 958 "rx-decode.opc" | 8421 #line 970 "rx-decode.opc" |
| 8410 int sd AU = op[1] & 0x03; | 8422 int sd AU = op[1] & 0x03; |
| 8411 #line 958 "rx-decode.opc" | 8423 #line 970 "rx-decode.opc" |
| 8412 int rdst AU = (op[2] >> 4) & 0x0f; | 8424 int rdst AU = (op[2] >> 4) & 0x0f; |
| 8413 #line 958 "rx-decode.opc" | 8425 #line 970 "rx-decode.opc" |
| 8414 int cond AU = op[2] & 0x0f; | 8426 int cond AU = op[2] & 0x0f; |
| 8415 if (trace) | 8427 if (trace) |
| 8416 { | 8428 { |
| 8417 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8429 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8418 "/** 1111 1100 1101 sz sd rdst cond sc%1%s
%0 */", | 8430 "/** 1111 1100 1101 sz sd rdst cond sc%1%s
%0 */", |
| 8419 op[0], op[1], op[2]); | 8431 op[0], op[1], op[2]); |
| 8420 printf (" sz = 0x%x,", sz); | 8432 printf (" sz = 0x%x,", sz); |
| 8421 printf (" sd = 0x%x,", sd); | 8433 printf (" sd = 0x%x,", sd); |
| 8422 printf (" rdst = 0x%x,", rdst); | 8434 printf (" rdst = 0x%x,", rdst); |
| 8423 printf (" cond = 0x%x\n", cond); | 8435 printf (" cond = 0x%x\n", cond); |
| 8424 } | 8436 } |
| 8425 SYNTAX("sc%1%s %0"); | 8437 SYNTAX("sc%1%s %0"); |
| 8426 #line 958 "rx-decode.opc" | 8438 #line 970 "rx-decode.opc" |
| 8427 ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); | 8439 ID(sccnd); BWL(sz); DD (sd, rdst, sz); Scc(cond); |
| 8428 | 8440 |
| 8429 } | 8441 } |
| 8430 break; | 8442 break; |
| 8431 } | 8443 } |
| 8432 break; | 8444 break; |
| 8433 case 0xd1: | 8445 case 0xd1: |
| 8434 GETBYTE (); | 8446 GETBYTE (); |
| 8435 switch (op[2] & 0x00) | 8447 switch (op[2] & 0x00) |
| 8436 { | 8448 { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8544 case 0x08: | 8556 case 0x08: |
| 8545 case 0x09: | 8557 case 0x09: |
| 8546 case 0x0a: | 8558 case 0x0a: |
| 8547 case 0x0b: | 8559 case 0x0b: |
| 8548 case 0x0c: | 8560 case 0x0c: |
| 8549 case 0x0d: | 8561 case 0x0d: |
| 8550 case 0x0e: | 8562 case 0x0e: |
| 8551 op_semantics_69: | 8563 op_semantics_69: |
| 8552 { | 8564 { |
| 8553 /** 1111 1100 111bit sd rdst cond bm%2 #%1, %0%S0 */ | 8565 /** 1111 1100 111bit sd rdst cond bm%2 #%1, %0%S0 */ |
| 8554 #line 901 "rx-decode.opc" | 8566 #line 913 "rx-decode.opc" |
| 8555 int bit AU = (op[1] >> 2) & 0x07; | 8567 int bit AU = (op[1] >> 2) & 0x07; |
| 8556 #line 901 "rx-decode.opc" | 8568 #line 913 "rx-decode.opc" |
| 8557 int sd AU = op[1] & 0x03; | 8569 int sd AU = op[1] & 0x03; |
| 8558 #line 901 "rx-decode.opc" | 8570 #line 913 "rx-decode.opc" |
| 8559 int rdst AU = (op[2] >> 4) & 0x0f; | 8571 int rdst AU = (op[2] >> 4) & 0x0f; |
| 8560 #line 901 "rx-decode.opc" | 8572 #line 913 "rx-decode.opc" |
| 8561 int cond AU = op[2] & 0x0f; | 8573 int cond AU = op[2] & 0x0f; |
| 8562 if (trace) | 8574 if (trace) |
| 8563 { | 8575 { |
| 8564 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8576 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8565 "/** 1111 1100 111bit sd rdst cond bm%2
#%1, %0%S0 */", | 8577 "/** 1111 1100 111bit sd rdst cond bm%2
#%1, %0%S0 */", |
| 8566 op[0], op[1], op[2]); | 8578 op[0], op[1], op[2]); |
| 8567 printf (" bit = 0x%x,", bit); | 8579 printf (" bit = 0x%x,", bit); |
| 8568 printf (" sd = 0x%x,", sd); | 8580 printf (" sd = 0x%x,", sd); |
| 8569 printf (" rdst = 0x%x,", rdst); | 8581 printf (" rdst = 0x%x,", rdst); |
| 8570 printf (" cond = 0x%x\n", cond); | 8582 printf (" cond = 0x%x\n", cond); |
| 8571 } | 8583 } |
| 8572 SYNTAX("bm%2 #%1, %0%S0"); | 8584 SYNTAX("bm%2 #%1, %0%S0"); |
| 8573 #line 901 "rx-decode.opc" | 8585 #line 913 "rx-decode.opc" |
| 8574 ID(bmcc); BWL(BSIZE); S2cc(cond); SC(bit); DD(sd, rdst, BS
IZE); | 8586 ID(bmcc); BWL(BSIZE); S2cc(cond); SC(bit); DD(sd, rdst, BS
IZE); |
| 8575 | 8587 |
| 8576 } | 8588 } |
| 8577 break; | 8589 break; |
| 8578 case 0x0f: | 8590 case 0x0f: |
| 8579 op_semantics_70: | 8591 op_semantics_70: |
| 8580 { | 8592 { |
| 8581 /** 1111 1100 111bit sd rdst 1111 bnot #%1, %0%S0 */ | 8593 /** 1111 1100 111bit sd rdst 1111 bnot #%1, %0%S0 */ |
| 8582 #line 891 "rx-decode.opc" | 8594 #line 903 "rx-decode.opc" |
| 8583 int bit AU = (op[1] >> 2) & 0x07; | 8595 int bit AU = (op[1] >> 2) & 0x07; |
| 8584 #line 891 "rx-decode.opc" | 8596 #line 903 "rx-decode.opc" |
| 8585 int sd AU = op[1] & 0x03; | 8597 int sd AU = op[1] & 0x03; |
| 8586 #line 891 "rx-decode.opc" | 8598 #line 903 "rx-decode.opc" |
| 8587 int rdst AU = (op[2] >> 4) & 0x0f; | 8599 int rdst AU = (op[2] >> 4) & 0x0f; |
| 8588 if (trace) | 8600 if (trace) |
| 8589 { | 8601 { |
| 8590 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 8602 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 8591 "/** 1111 1100 111bit sd rdst 1111 bnot
#%1, %0%S0 */", | 8603 "/** 1111 1100 111bit sd rdst 1111 bnot
#%1, %0%S0 */", |
| 8592 op[0], op[1], op[2]); | 8604 op[0], op[1], op[2]); |
| 8593 printf (" bit = 0x%x,", bit); | 8605 printf (" bit = 0x%x,", bit); |
| 8594 printf (" sd = 0x%x,", sd); | 8606 printf (" sd = 0x%x,", sd); |
| 8595 printf (" rdst = 0x%x\n", rdst); | 8607 printf (" rdst = 0x%x\n", rdst); |
| 8596 } | 8608 } |
| 8597 SYNTAX("bnot #%1, %0%S0"); | 8609 SYNTAX("bnot #%1, %0%S0"); |
| 8598 #line 891 "rx-decode.opc" | 8610 #line 903 "rx-decode.opc" |
| 8599 ID(bnot); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); | 8611 ID(bnot); BWL(BSIZE); SC(bit); DD(sd, rdst, BSIZE); |
| 8600 | 8612 |
| 8601 } | 8613 } |
| 8602 break; | 8614 break; |
| 8603 } | 8615 } |
| 8604 break; | 8616 break; |
| 8605 case 0xe1: | 8617 case 0xe1: |
| 8606 GETBYTE (); | 8618 GETBYTE (); |
| 8607 switch (op[2] & 0x0f) | 8619 switch (op[2] & 0x0f) |
| 8608 { | 8620 { |
| (...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9415 GETBYTE (); | 9427 GETBYTE (); |
| 9416 switch (op[1] & 0xff) | 9428 switch (op[1] & 0xff) |
| 9417 { | 9429 { |
| 9418 case 0x00: | 9430 case 0x00: |
| 9419 GETBYTE (); | 9431 GETBYTE (); |
| 9420 switch (op[2] & 0x00) | 9432 switch (op[2] & 0x00) |
| 9421 { | 9433 { |
| 9422 case 0x00: | 9434 case 0x00: |
| 9423 { | 9435 { |
| 9424 /** 1111 1101 0000 0000 srca srcb mulhi %1, %2 */ | 9436 /** 1111 1101 0000 0000 srca srcb mulhi %1, %2 */ |
| 9425 #line 774 "rx-decode.opc" | 9437 #line 786 "rx-decode.opc" |
| 9426 int srca AU = (op[2] >> 4) & 0x0f; | 9438 int srca AU = (op[2] >> 4) & 0x0f; |
| 9427 #line 774 "rx-decode.opc" | 9439 #line 786 "rx-decode.opc" |
| 9428 int srcb AU = op[2] & 0x0f; | 9440 int srcb AU = op[2] & 0x0f; |
| 9429 if (trace) | 9441 if (trace) |
| 9430 { | 9442 { |
| 9431 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9443 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9432 "/** 1111 1101 0000 0000 srca srcb mulhi
%1, %2 */", | 9444 "/** 1111 1101 0000 0000 srca srcb mulhi
%1, %2 */", |
| 9433 op[0], op[1], op[2]); | 9445 op[0], op[1], op[2]); |
| 9434 printf (" srca = 0x%x,", srca); | 9446 printf (" srca = 0x%x,", srca); |
| 9435 printf (" srcb = 0x%x\n", srcb); | 9447 printf (" srcb = 0x%x\n", srcb); |
| 9436 } | 9448 } |
| 9437 SYNTAX("mulhi %1, %2"); | 9449 SYNTAX("mulhi %1, %2"); |
| 9438 #line 774 "rx-decode.opc" | 9450 #line 786 "rx-decode.opc" |
| 9439 ID(mulhi); SR(srca); S2R(srcb); F_____; | 9451 ID(mulhi); SR(srca); S2R(srcb); F_____; |
| 9440 | 9452 |
| 9441 } | 9453 } |
| 9442 break; | 9454 break; |
| 9443 } | 9455 } |
| 9444 break; | 9456 break; |
| 9445 case 0x01: | 9457 case 0x01: |
| 9446 GETBYTE (); | 9458 GETBYTE (); |
| 9447 switch (op[2] & 0x00) | 9459 switch (op[2] & 0x00) |
| 9448 { | 9460 { |
| 9449 case 0x00: | 9461 case 0x00: |
| 9450 { | 9462 { |
| 9451 /** 1111 1101 0000 0001 srca srcb mullo %1, %2 */ | 9463 /** 1111 1101 0000 0001 srca srcb mullo %1, %2 */ |
| 9452 #line 777 "rx-decode.opc" | 9464 #line 789 "rx-decode.opc" |
| 9453 int srca AU = (op[2] >> 4) & 0x0f; | 9465 int srca AU = (op[2] >> 4) & 0x0f; |
| 9454 #line 777 "rx-decode.opc" | 9466 #line 789 "rx-decode.opc" |
| 9455 int srcb AU = op[2] & 0x0f; | 9467 int srcb AU = op[2] & 0x0f; |
| 9456 if (trace) | 9468 if (trace) |
| 9457 { | 9469 { |
| 9458 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9470 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9459 "/** 1111 1101 0000 0001 srca srcb mullo
%1, %2 */", | 9471 "/** 1111 1101 0000 0001 srca srcb mullo
%1, %2 */", |
| 9460 op[0], op[1], op[2]); | 9472 op[0], op[1], op[2]); |
| 9461 printf (" srca = 0x%x,", srca); | 9473 printf (" srca = 0x%x,", srca); |
| 9462 printf (" srcb = 0x%x\n", srcb); | 9474 printf (" srcb = 0x%x\n", srcb); |
| 9463 } | 9475 } |
| 9464 SYNTAX("mullo %1, %2"); | 9476 SYNTAX("mullo %1, %2"); |
| 9465 #line 777 "rx-decode.opc" | 9477 #line 789 "rx-decode.opc" |
| 9466 ID(mullo); SR(srca); S2R(srcb); F_____; | 9478 ID(mullo); SR(srca); S2R(srcb); F_____; |
| 9467 | 9479 |
| 9468 } | 9480 } |
| 9469 break; | 9481 break; |
| 9470 } | 9482 } |
| 9471 break; | 9483 break; |
| 9472 case 0x04: | 9484 case 0x04: |
| 9473 GETBYTE (); | 9485 GETBYTE (); |
| 9474 switch (op[2] & 0x00) | 9486 switch (op[2] & 0x00) |
| 9475 { | 9487 { |
| 9476 case 0x00: | 9488 case 0x00: |
| 9477 { | 9489 { |
| 9478 /** 1111 1101 0000 0100 srca srcb machi %1, %2 */ | 9490 /** 1111 1101 0000 0100 srca srcb machi %1, %2 */ |
| 9479 #line 780 "rx-decode.opc" | 9491 #line 792 "rx-decode.opc" |
| 9480 int srca AU = (op[2] >> 4) & 0x0f; | 9492 int srca AU = (op[2] >> 4) & 0x0f; |
| 9481 #line 780 "rx-decode.opc" | 9493 #line 792 "rx-decode.opc" |
| 9482 int srcb AU = op[2] & 0x0f; | 9494 int srcb AU = op[2] & 0x0f; |
| 9483 if (trace) | 9495 if (trace) |
| 9484 { | 9496 { |
| 9485 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9497 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9486 "/** 1111 1101 0000 0100 srca srcb machi
%1, %2 */", | 9498 "/** 1111 1101 0000 0100 srca srcb machi
%1, %2 */", |
| 9487 op[0], op[1], op[2]); | 9499 op[0], op[1], op[2]); |
| 9488 printf (" srca = 0x%x,", srca); | 9500 printf (" srca = 0x%x,", srca); |
| 9489 printf (" srcb = 0x%x\n", srcb); | 9501 printf (" srcb = 0x%x\n", srcb); |
| 9490 } | 9502 } |
| 9491 SYNTAX("machi %1, %2"); | 9503 SYNTAX("machi %1, %2"); |
| 9492 #line 780 "rx-decode.opc" | 9504 #line 792 "rx-decode.opc" |
| 9493 ID(machi); SR(srca); S2R(srcb); F_____; | 9505 ID(machi); SR(srca); S2R(srcb); F_____; |
| 9494 | 9506 |
| 9495 } | 9507 } |
| 9496 break; | 9508 break; |
| 9497 } | 9509 } |
| 9498 break; | 9510 break; |
| 9499 case 0x05: | 9511 case 0x05: |
| 9500 GETBYTE (); | 9512 GETBYTE (); |
| 9501 switch (op[2] & 0x00) | 9513 switch (op[2] & 0x00) |
| 9502 { | 9514 { |
| 9503 case 0x00: | 9515 case 0x00: |
| 9504 { | 9516 { |
| 9505 /** 1111 1101 0000 0101 srca srcb maclo %1, %2 */ | 9517 /** 1111 1101 0000 0101 srca srcb maclo %1, %2 */ |
| 9506 #line 783 "rx-decode.opc" | 9518 #line 795 "rx-decode.opc" |
| 9507 int srca AU = (op[2] >> 4) & 0x0f; | 9519 int srca AU = (op[2] >> 4) & 0x0f; |
| 9508 #line 783 "rx-decode.opc" | 9520 #line 795 "rx-decode.opc" |
| 9509 int srcb AU = op[2] & 0x0f; | 9521 int srcb AU = op[2] & 0x0f; |
| 9510 if (trace) | 9522 if (trace) |
| 9511 { | 9523 { |
| 9512 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9524 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9513 "/** 1111 1101 0000 0101 srca srcb maclo
%1, %2 */", | 9525 "/** 1111 1101 0000 0101 srca srcb maclo
%1, %2 */", |
| 9514 op[0], op[1], op[2]); | 9526 op[0], op[1], op[2]); |
| 9515 printf (" srca = 0x%x,", srca); | 9527 printf (" srca = 0x%x,", srca); |
| 9516 printf (" srcb = 0x%x\n", srcb); | 9528 printf (" srcb = 0x%x\n", srcb); |
| 9517 } | 9529 } |
| 9518 SYNTAX("maclo %1, %2"); | 9530 SYNTAX("maclo %1, %2"); |
| 9519 #line 783 "rx-decode.opc" | 9531 #line 795 "rx-decode.opc" |
| 9520 ID(maclo); SR(srca); S2R(srcb); F_____; | 9532 ID(maclo); SR(srca); S2R(srcb); F_____; |
| 9521 | 9533 |
| 9522 } | 9534 } |
| 9523 break; | 9535 break; |
| 9524 } | 9536 } |
| 9525 break; | 9537 break; |
| 9526 case 0x17: | 9538 case 0x17: |
| 9527 GETBYTE (); | 9539 GETBYTE (); |
| 9528 switch (op[2] & 0xf0) | 9540 switch (op[2] & 0xf0) |
| 9529 { | 9541 { |
| 9530 case 0x00: | 9542 case 0x00: |
| 9531 { | 9543 { |
| 9532 /** 1111 1101 0001 0111 0000 rsrc mvtachi %1 */ | 9544 /** 1111 1101 0001 0111 0000 rsrc mvtachi %1 */ |
| 9533 #line 786 "rx-decode.opc" | 9545 #line 798 "rx-decode.opc" |
| 9534 int rsrc AU = op[2] & 0x0f; | 9546 int rsrc AU = op[2] & 0x0f; |
| 9535 if (trace) | 9547 if (trace) |
| 9536 { | 9548 { |
| 9537 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9549 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9538 "/** 1111 1101 0001 0111 0000 rsrc mvtachi
%1 */", | 9550 "/** 1111 1101 0001 0111 0000 rsrc mvtachi
%1 */", |
| 9539 op[0], op[1], op[2]); | 9551 op[0], op[1], op[2]); |
| 9540 printf (" rsrc = 0x%x\n", rsrc); | 9552 printf (" rsrc = 0x%x\n", rsrc); |
| 9541 } | 9553 } |
| 9542 SYNTAX("mvtachi %1"); | 9554 SYNTAX("mvtachi %1"); |
| 9543 #line 786 "rx-decode.opc" | 9555 #line 798 "rx-decode.opc" |
| 9544 ID(mvtachi); SR(rsrc); F_____; | 9556 ID(mvtachi); SR(rsrc); F_____; |
| 9545 | 9557 |
| 9546 } | 9558 } |
| 9547 break; | 9559 break; |
| 9548 case 0x10: | 9560 case 0x10: |
| 9549 { | 9561 { |
| 9550 /** 1111 1101 0001 0111 0001 rsrc mvtaclo %1 */ | 9562 /** 1111 1101 0001 0111 0001 rsrc mvtaclo %1 */ |
| 9551 #line 789 "rx-decode.opc" | 9563 #line 801 "rx-decode.opc" |
| 9552 int rsrc AU = op[2] & 0x0f; | 9564 int rsrc AU = op[2] & 0x0f; |
| 9553 if (trace) | 9565 if (trace) |
| 9554 { | 9566 { |
| 9555 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9567 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9556 "/** 1111 1101 0001 0111 0001 rsrc mvtaclo
%1 */", | 9568 "/** 1111 1101 0001 0111 0001 rsrc mvtaclo
%1 */", |
| 9557 op[0], op[1], op[2]); | 9569 op[0], op[1], op[2]); |
| 9558 printf (" rsrc = 0x%x\n", rsrc); | 9570 printf (" rsrc = 0x%x\n", rsrc); |
| 9559 } | 9571 } |
| 9560 SYNTAX("mvtaclo %1"); | 9572 SYNTAX("mvtaclo %1"); |
| 9561 #line 789 "rx-decode.opc" | 9573 #line 801 "rx-decode.opc" |
| 9562 ID(mvtaclo); SR(rsrc); F_____; | 9574 ID(mvtaclo); SR(rsrc); F_____; |
| 9563 | 9575 |
| 9564 } | 9576 } |
| 9565 break; | 9577 break; |
| 9566 default: UNSUPPORTED(); break; | 9578 default: UNSUPPORTED(); break; |
| 9567 } | 9579 } |
| 9568 break; | 9580 break; |
| 9569 case 0x18: | 9581 case 0x18: |
| 9570 GETBYTE (); | 9582 GETBYTE (); |
| 9571 switch (op[2] & 0xef) | 9583 switch (op[2] & 0xef) |
| 9572 { | 9584 { |
| 9573 case 0x00: | 9585 case 0x00: |
| 9574 { | 9586 { |
| 9575 /** 1111 1101 0001 1000 000i 0000 racw #%1 */ | 9587 /** 1111 1101 0001 1000 000i 0000 racw #%1 */ |
| 9576 #line 801 "rx-decode.opc" | 9588 #line 813 "rx-decode.opc" |
| 9577 int i AU = (op[2] >> 4) & 0x01; | 9589 int i AU = (op[2] >> 4) & 0x01; |
| 9578 if (trace) | 9590 if (trace) |
| 9579 { | 9591 { |
| 9580 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9592 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9581 "/** 1111 1101 0001 1000 000i 0000 racw
#%1 */", | 9593 "/** 1111 1101 0001 1000 000i 0000 racw
#%1 */", |
| 9582 op[0], op[1], op[2]); | 9594 op[0], op[1], op[2]); |
| 9583 printf (" i = 0x%x\n", i); | 9595 printf (" i = 0x%x\n", i); |
| 9584 } | 9596 } |
| 9585 SYNTAX("racw #%1"); | 9597 SYNTAX("racw #%1"); |
| 9586 #line 801 "rx-decode.opc" | 9598 #line 813 "rx-decode.opc" |
| 9587 ID(racw); SC(i+1); F_____; | 9599 ID(racw); SC(i+1); F_____; |
| 9588 | 9600 |
| 9589 /*----------------------------------------------------------
------------*/ | 9601 /*----------------------------------------------------------
------------*/ |
| 9590 /* SAT
*/ | 9602 /* SAT
*/ |
| 9591 | 9603 |
| 9592 } | 9604 } |
| 9593 break; | 9605 break; |
| 9594 default: UNSUPPORTED(); break; | 9606 default: UNSUPPORTED(); break; |
| 9595 } | 9607 } |
| 9596 break; | 9608 break; |
| 9597 case 0x1f: | 9609 case 0x1f: |
| 9598 GETBYTE (); | 9610 GETBYTE (); |
| 9599 switch (op[2] & 0xf0) | 9611 switch (op[2] & 0xf0) |
| 9600 { | 9612 { |
| 9601 case 0x00: | 9613 case 0x00: |
| 9602 { | 9614 { |
| 9603 /** 1111 1101 0001 1111 0000 rdst mvfachi %0 */ | 9615 /** 1111 1101 0001 1111 0000 rdst mvfachi %0 */ |
| 9604 #line 792 "rx-decode.opc" | 9616 #line 804 "rx-decode.opc" |
| 9605 int rdst AU = op[2] & 0x0f; | 9617 int rdst AU = op[2] & 0x0f; |
| 9606 if (trace) | 9618 if (trace) |
| 9607 { | 9619 { |
| 9608 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9620 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9609 "/** 1111 1101 0001 1111 0000 rdst mvfachi
%0 */", | 9621 "/** 1111 1101 0001 1111 0000 rdst mvfachi
%0 */", |
| 9610 op[0], op[1], op[2]); | 9622 op[0], op[1], op[2]); |
| 9611 printf (" rdst = 0x%x\n", rdst); | 9623 printf (" rdst = 0x%x\n", rdst); |
| 9612 } | 9624 } |
| 9613 SYNTAX("mvfachi %0"); | 9625 SYNTAX("mvfachi %0"); |
| 9614 #line 792 "rx-decode.opc" | 9626 #line 804 "rx-decode.opc" |
| 9615 ID(mvfachi); DR(rdst); F_____; | 9627 ID(mvfachi); DR(rdst); F_____; |
| 9616 | 9628 |
| 9617 } | 9629 } |
| 9618 break; | 9630 break; |
| 9619 case 0x10: | 9631 case 0x10: |
| 9620 { | 9632 { |
| 9621 /** 1111 1101 0001 1111 0001 rdst mvfaclo %0 */ | 9633 /** 1111 1101 0001 1111 0001 rdst mvfaclo %0 */ |
| 9622 #line 798 "rx-decode.opc" | 9634 #line 810 "rx-decode.opc" |
| 9623 int rdst AU = op[2] & 0x0f; | 9635 int rdst AU = op[2] & 0x0f; |
| 9624 if (trace) | 9636 if (trace) |
| 9625 { | 9637 { |
| 9626 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9638 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9627 "/** 1111 1101 0001 1111 0001 rdst mvfaclo
%0 */", | 9639 "/** 1111 1101 0001 1111 0001 rdst mvfaclo
%0 */", |
| 9628 op[0], op[1], op[2]); | 9640 op[0], op[1], op[2]); |
| 9629 printf (" rdst = 0x%x\n", rdst); | 9641 printf (" rdst = 0x%x\n", rdst); |
| 9630 } | 9642 } |
| 9631 SYNTAX("mvfaclo %0"); | 9643 SYNTAX("mvfaclo %0"); |
| 9632 #line 798 "rx-decode.opc" | 9644 #line 810 "rx-decode.opc" |
| 9633 ID(mvfaclo); DR(rdst); F_____; | 9645 ID(mvfaclo); DR(rdst); F_____; |
| 9634 | 9646 |
| 9635 } | 9647 } |
| 9636 break; | 9648 break; |
| 9637 case 0x20: | 9649 case 0x20: |
| 9638 { | 9650 { |
| 9639 /** 1111 1101 0001 1111 0010 rdst mvfacmi %0 */ | 9651 /** 1111 1101 0001 1111 0010 rdst mvfacmi %0 */ |
| 9640 #line 795 "rx-decode.opc" | 9652 #line 807 "rx-decode.opc" |
| 9641 int rdst AU = op[2] & 0x0f; | 9653 int rdst AU = op[2] & 0x0f; |
| 9642 if (trace) | 9654 if (trace) |
| 9643 { | 9655 { |
| 9644 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9656 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9645 "/** 1111 1101 0001 1111 0010 rdst mvfacmi
%0 */", | 9657 "/** 1111 1101 0001 1111 0010 rdst mvfacmi
%0 */", |
| 9646 op[0], op[1], op[2]); | 9658 op[0], op[1], op[2]); |
| 9647 printf (" rdst = 0x%x\n", rdst); | 9659 printf (" rdst = 0x%x\n", rdst); |
| 9648 } | 9660 } |
| 9649 SYNTAX("mvfacmi %0"); | 9661 SYNTAX("mvfacmi %0"); |
| 9650 #line 795 "rx-decode.opc" | 9662 #line 807 "rx-decode.opc" |
| 9651 ID(mvfacmi); DR(rdst); F_____; | 9663 ID(mvfacmi); DR(rdst); F_____; |
| 9652 | 9664 |
| 9653 } | 9665 } |
| 9654 break; | 9666 break; |
| 9655 default: UNSUPPORTED(); break; | 9667 default: UNSUPPORTED(); break; |
| 9656 } | 9668 } |
| 9657 break; | 9669 break; |
| 9658 case 0x20: | 9670 case 0x20: |
| 9659 GETBYTE (); | 9671 GETBYTE (); |
| 9660 switch (op[2] & 0x00) | 9672 switch (op[2] & 0x00) |
| 9661 { | 9673 { |
| 9662 case 0x00: | 9674 case 0x00: |
| 9663 op_semantics_71: | 9675 op_semantics_71: |
| 9664 { | 9676 { |
| 9665 /** 1111 1101 0010 0p sz rdst rsrc mov%s %1, %0 *
/ | 9677 /** 1111 1101 0010 0p sz rdst rsrc mov%s %1, %0 *
/ |
| 9666 #line 308 "rx-decode.opc" | 9678 #line 320 "rx-decode.opc" |
| 9667 int p AU = (op[1] >> 2) & 0x01; | 9679 int p AU = (op[1] >> 2) & 0x01; |
| 9668 #line 308 "rx-decode.opc" | 9680 #line 320 "rx-decode.opc" |
| 9669 int sz AU = op[1] & 0x03; | 9681 int sz AU = op[1] & 0x03; |
| 9670 #line 308 "rx-decode.opc" | 9682 #line 320 "rx-decode.opc" |
| 9671 int rdst AU = (op[2] >> 4) & 0x0f; | 9683 int rdst AU = (op[2] >> 4) & 0x0f; |
| 9672 #line 308 "rx-decode.opc" | 9684 #line 320 "rx-decode.opc" |
| 9673 int rsrc AU = op[2] & 0x0f; | 9685 int rsrc AU = op[2] & 0x0f; |
| 9674 if (trace) | 9686 if (trace) |
| 9675 { | 9687 { |
| 9676 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9688 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9677 "/** 1111 1101 0010 0p sz rdst rsrc mov%s
%1, %0 */", | 9689 "/** 1111 1101 0010 0p sz rdst rsrc mov%s
%1, %0 */", |
| 9678 op[0], op[1], op[2]); | 9690 op[0], op[1], op[2]); |
| 9679 printf (" p = 0x%x,", p); | 9691 printf (" p = 0x%x,", p); |
| 9680 printf (" sz = 0x%x,", sz); | 9692 printf (" sz = 0x%x,", sz); |
| 9681 printf (" rdst = 0x%x,", rdst); | 9693 printf (" rdst = 0x%x,", rdst); |
| 9682 printf (" rsrc = 0x%x\n", rsrc); | 9694 printf (" rsrc = 0x%x\n", rsrc); |
| 9683 } | 9695 } |
| 9684 SYNTAX("mov%s %1, %0"); | 9696 SYNTAX("mov%s %1, %0"); |
| 9685 #line 308 "rx-decode.opc" | 9697 #line 320 "rx-decode.opc" |
| 9686 ID(mov); sBWL (sz); SR(rsrc); F_____; | 9698 ID(mov); sBWL (sz); SR(rsrc); F_____; |
| 9687 OP(0, p ? RX_Operand_Predec : RX_Operand_Postinc, rdst, 0)
; | 9699 OP(0, p ? RX_Operand_Predec : RX_Operand_Postinc, rdst, 0)
; |
| 9688 | 9700 |
| 9689 } | 9701 } |
| 9690 break; | 9702 break; |
| 9691 } | 9703 } |
| 9692 break; | 9704 break; |
| 9693 case 0x21: | 9705 case 0x21: |
| 9694 GETBYTE (); | 9706 GETBYTE (); |
| 9695 switch (op[2] & 0x00) | 9707 switch (op[2] & 0x00) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9736 } | 9748 } |
| 9737 break; | 9749 break; |
| 9738 case 0x28: | 9750 case 0x28: |
| 9739 GETBYTE (); | 9751 GETBYTE (); |
| 9740 switch (op[2] & 0x00) | 9752 switch (op[2] & 0x00) |
| 9741 { | 9753 { |
| 9742 case 0x00: | 9754 case 0x00: |
| 9743 op_semantics_72: | 9755 op_semantics_72: |
| 9744 { | 9756 { |
| 9745 /** 1111 1101 0010 1p sz rsrc rdst mov%s %1, %0 *
/ | 9757 /** 1111 1101 0010 1p sz rsrc rdst mov%s %1, %0 *
/ |
| 9746 #line 312 "rx-decode.opc" | 9758 #line 324 "rx-decode.opc" |
| 9747 int p AU = (op[1] >> 2) & 0x01; | 9759 int p AU = (op[1] >> 2) & 0x01; |
| 9748 #line 312 "rx-decode.opc" | 9760 #line 324 "rx-decode.opc" |
| 9749 int sz AU = op[1] & 0x03; | 9761 int sz AU = op[1] & 0x03; |
| 9750 #line 312 "rx-decode.opc" | 9762 #line 324 "rx-decode.opc" |
| 9751 int rsrc AU = (op[2] >> 4) & 0x0f; | 9763 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9752 #line 312 "rx-decode.opc" | 9764 #line 324 "rx-decode.opc" |
| 9753 int rdst AU = op[2] & 0x0f; | 9765 int rdst AU = op[2] & 0x0f; |
| 9754 if (trace) | 9766 if (trace) |
| 9755 { | 9767 { |
| 9756 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9768 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9757 "/** 1111 1101 0010 1p sz rsrc rdst mov%s
%1, %0 */", | 9769 "/** 1111 1101 0010 1p sz rsrc rdst mov%s
%1, %0 */", |
| 9758 op[0], op[1], op[2]); | 9770 op[0], op[1], op[2]); |
| 9759 printf (" p = 0x%x,", p); | 9771 printf (" p = 0x%x,", p); |
| 9760 printf (" sz = 0x%x,", sz); | 9772 printf (" sz = 0x%x,", sz); |
| 9761 printf (" rsrc = 0x%x,", rsrc); | 9773 printf (" rsrc = 0x%x,", rsrc); |
| 9762 printf (" rdst = 0x%x\n", rdst); | 9774 printf (" rdst = 0x%x\n", rdst); |
| 9763 } | 9775 } |
| 9764 SYNTAX("mov%s %1, %0"); | 9776 SYNTAX("mov%s %1, %0"); |
| 9765 #line 312 "rx-decode.opc" | 9777 #line 324 "rx-decode.opc" |
| 9766 ID(mov); sBWL (sz); DR(rdst); F_____; | 9778 ID(mov); sBWL (sz); DR(rdst); F_____; |
| 9767 OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0)
; | 9779 OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0)
; |
| 9768 | 9780 |
| 9769 } | 9781 } |
| 9770 break; | 9782 break; |
| 9771 } | 9783 } |
| 9772 break; | 9784 break; |
| 9773 case 0x29: | 9785 case 0x29: |
| 9774 GETBYTE (); | 9786 GETBYTE (); |
| 9775 switch (op[2] & 0x00) | 9787 switch (op[2] & 0x00) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9816 } | 9828 } |
| 9817 break; | 9829 break; |
| 9818 case 0x38: | 9830 case 0x38: |
| 9819 GETBYTE (); | 9831 GETBYTE (); |
| 9820 switch (op[2] & 0x00) | 9832 switch (op[2] & 0x00) |
| 9821 { | 9833 { |
| 9822 case 0x00: | 9834 case 0x00: |
| 9823 op_semantics_73: | 9835 op_semantics_73: |
| 9824 { | 9836 { |
| 9825 /** 1111 1101 0011 1p sz rsrc rdst movu%s %1, %0 *
/ | 9837 /** 1111 1101 0011 1p sz rsrc rdst movu%s %1, %0 *
/ |
| 9826 #line 322 "rx-decode.opc" | 9838 #line 334 "rx-decode.opc" |
| 9827 int p AU = (op[1] >> 2) & 0x01; | 9839 int p AU = (op[1] >> 2) & 0x01; |
| 9828 #line 322 "rx-decode.opc" | 9840 #line 334 "rx-decode.opc" |
| 9829 int sz AU = op[1] & 0x03; | 9841 int sz AU = op[1] & 0x03; |
| 9830 #line 322 "rx-decode.opc" | 9842 #line 334 "rx-decode.opc" |
| 9831 int rsrc AU = (op[2] >> 4) & 0x0f; | 9843 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9832 #line 322 "rx-decode.opc" | 9844 #line 334 "rx-decode.opc" |
| 9833 int rdst AU = op[2] & 0x0f; | 9845 int rdst AU = op[2] & 0x0f; |
| 9834 if (trace) | 9846 if (trace) |
| 9835 { | 9847 { |
| 9836 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9848 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9837 "/** 1111 1101 0011 1p sz rsrc rdst movu%s
%1, %0 */", | 9849 "/** 1111 1101 0011 1p sz rsrc rdst movu%s
%1, %0 */", |
| 9838 op[0], op[1], op[2]); | 9850 op[0], op[1], op[2]); |
| 9839 printf (" p = 0x%x,", p); | 9851 printf (" p = 0x%x,", p); |
| 9840 printf (" sz = 0x%x,", sz); | 9852 printf (" sz = 0x%x,", sz); |
| 9841 printf (" rsrc = 0x%x,", rsrc); | 9853 printf (" rsrc = 0x%x,", rsrc); |
| 9842 printf (" rdst = 0x%x\n", rdst); | 9854 printf (" rdst = 0x%x\n", rdst); |
| 9843 } | 9855 } |
| 9844 SYNTAX("movu%s %1, %0"); | 9856 SYNTAX("movu%s %1, %0"); |
| 9845 #line 322 "rx-decode.opc" | 9857 #line 334 "rx-decode.opc" |
| 9846 ID(mov); uBWL (sz); DR(rdst); F_____; | 9858 ID(mov); uBWL (sz); DR(rdst); F_____; |
| 9847 OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0
); | 9859 OP(1, p ? RX_Operand_Predec : RX_Operand_Postinc, rsrc, 0
); |
| 9848 | 9860 |
| 9849 /*----------------------------------------------------------
------------*/ | 9861 /*----------------------------------------------------------
------------*/ |
| 9850 /* PUSH/POP
*/ | 9862 /* PUSH/POP
*/ |
| 9851 | 9863 |
| 9852 } | 9864 } |
| 9853 break; | 9865 break; |
| 9854 } | 9866 } |
| 9855 break; | 9867 break; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9898 break; | 9910 break; |
| 9899 } | 9911 } |
| 9900 break; | 9912 break; |
| 9901 case 0x60: | 9913 case 0x60: |
| 9902 GETBYTE (); | 9914 GETBYTE (); |
| 9903 switch (op[2] & 0x00) | 9915 switch (op[2] & 0x00) |
| 9904 { | 9916 { |
| 9905 case 0x00: | 9917 case 0x00: |
| 9906 { | 9918 { |
| 9907 /** 1111 1101 0110 0000 rsrc rdst shlr %2, %0 */ | 9919 /** 1111 1101 0110 0000 rsrc rdst shlr %2, %0 */ |
| 9908 #line 655 "rx-decode.opc" | 9920 #line 667 "rx-decode.opc" |
| 9909 int rsrc AU = (op[2] >> 4) & 0x0f; | 9921 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9910 #line 655 "rx-decode.opc" | 9922 #line 667 "rx-decode.opc" |
| 9911 int rdst AU = op[2] & 0x0f; | 9923 int rdst AU = op[2] & 0x0f; |
| 9912 if (trace) | 9924 if (trace) |
| 9913 { | 9925 { |
| 9914 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9926 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9915 "/** 1111 1101 0110 0000 rsrc rdst shlr
%2, %0 */", | 9927 "/** 1111 1101 0110 0000 rsrc rdst shlr
%2, %0 */", |
| 9916 op[0], op[1], op[2]); | 9928 op[0], op[1], op[2]); |
| 9917 printf (" rsrc = 0x%x,", rsrc); | 9929 printf (" rsrc = 0x%x,", rsrc); |
| 9918 printf (" rdst = 0x%x\n", rdst); | 9930 printf (" rdst = 0x%x\n", rdst); |
| 9919 } | 9931 } |
| 9920 SYNTAX("shlr %2, %0"); | 9932 SYNTAX("shlr %2, %0"); |
| 9921 #line 655 "rx-decode.opc" | 9933 #line 667 "rx-decode.opc" |
| 9922 ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F__SZC; | 9934 ID(shlr); S2R(rsrc); SR(rdst); DR(rdst); F__SZC; |
| 9923 | 9935 |
| 9924 } | 9936 } |
| 9925 break; | 9937 break; |
| 9926 } | 9938 } |
| 9927 break; | 9939 break; |
| 9928 case 0x61: | 9940 case 0x61: |
| 9929 GETBYTE (); | 9941 GETBYTE (); |
| 9930 switch (op[2] & 0x00) | 9942 switch (op[2] & 0x00) |
| 9931 { | 9943 { |
| 9932 case 0x00: | 9944 case 0x00: |
| 9933 { | 9945 { |
| 9934 /** 1111 1101 0110 0001 rsrc rdst shar %2, %0 */ | 9946 /** 1111 1101 0110 0001 rsrc rdst shar %2, %0 */ |
| 9935 #line 645 "rx-decode.opc" | 9947 #line 657 "rx-decode.opc" |
| 9936 int rsrc AU = (op[2] >> 4) & 0x0f; | 9948 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9937 #line 645 "rx-decode.opc" | 9949 #line 657 "rx-decode.opc" |
| 9938 int rdst AU = op[2] & 0x0f; | 9950 int rdst AU = op[2] & 0x0f; |
| 9939 if (trace) | 9951 if (trace) |
| 9940 { | 9952 { |
| 9941 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9953 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9942 "/** 1111 1101 0110 0001 rsrc rdst shar
%2, %0 */", | 9954 "/** 1111 1101 0110 0001 rsrc rdst shar
%2, %0 */", |
| 9943 op[0], op[1], op[2]); | 9955 op[0], op[1], op[2]); |
| 9944 printf (" rsrc = 0x%x,", rsrc); | 9956 printf (" rsrc = 0x%x,", rsrc); |
| 9945 printf (" rdst = 0x%x\n", rdst); | 9957 printf (" rdst = 0x%x\n", rdst); |
| 9946 } | 9958 } |
| 9947 SYNTAX("shar %2, %0"); | 9959 SYNTAX("shar %2, %0"); |
| 9948 #line 645 "rx-decode.opc" | 9960 #line 657 "rx-decode.opc" |
| 9949 ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F_0SZC; | 9961 ID(shar); S2R(rsrc); SR(rdst); DR(rdst); F_0SZC; |
| 9950 | 9962 |
| 9951 } | 9963 } |
| 9952 break; | 9964 break; |
| 9953 } | 9965 } |
| 9954 break; | 9966 break; |
| 9955 case 0x62: | 9967 case 0x62: |
| 9956 GETBYTE (); | 9968 GETBYTE (); |
| 9957 switch (op[2] & 0x00) | 9969 switch (op[2] & 0x00) |
| 9958 { | 9970 { |
| 9959 case 0x00: | 9971 case 0x00: |
| 9960 { | 9972 { |
| 9961 /** 1111 1101 0110 0010 rsrc rdst shll %2, %0 */ | 9973 /** 1111 1101 0110 0010 rsrc rdst shll %2, %0 */ |
| 9962 #line 635 "rx-decode.opc" | 9974 #line 647 "rx-decode.opc" |
| 9963 int rsrc AU = (op[2] >> 4) & 0x0f; | 9975 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9964 #line 635 "rx-decode.opc" | 9976 #line 647 "rx-decode.opc" |
| 9965 int rdst AU = op[2] & 0x0f; | 9977 int rdst AU = op[2] & 0x0f; |
| 9966 if (trace) | 9978 if (trace) |
| 9967 { | 9979 { |
| 9968 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 9980 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9969 "/** 1111 1101 0110 0010 rsrc rdst shll
%2, %0 */", | 9981 "/** 1111 1101 0110 0010 rsrc rdst shll
%2, %0 */", |
| 9970 op[0], op[1], op[2]); | 9982 op[0], op[1], op[2]); |
| 9971 printf (" rsrc = 0x%x,", rsrc); | 9983 printf (" rsrc = 0x%x,", rsrc); |
| 9972 printf (" rdst = 0x%x\n", rdst); | 9984 printf (" rdst = 0x%x\n", rdst); |
| 9973 } | 9985 } |
| 9974 SYNTAX("shll %2, %0"); | 9986 SYNTAX("shll %2, %0"); |
| 9975 #line 635 "rx-decode.opc" | 9987 #line 647 "rx-decode.opc" |
| 9976 ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F_OSZC; | 9988 ID(shll); S2R(rsrc); SR(rdst); DR(rdst); F_OSZC; |
| 9977 | 9989 |
| 9978 } | 9990 } |
| 9979 break; | 9991 break; |
| 9980 } | 9992 } |
| 9981 break; | 9993 break; |
| 9982 case 0x64: | 9994 case 0x64: |
| 9983 GETBYTE (); | 9995 GETBYTE (); |
| 9984 switch (op[2] & 0x00) | 9996 switch (op[2] & 0x00) |
| 9985 { | 9997 { |
| 9986 case 0x00: | 9998 case 0x00: |
| 9987 { | 9999 { |
| 9988 /** 1111 1101 0110 0100 rsrc rdst rotr %1, %0 */ | 10000 /** 1111 1101 0110 0100 rsrc rdst rotr %1, %0 */ |
| 9989 #line 679 "rx-decode.opc" | 10001 #line 691 "rx-decode.opc" |
| 9990 int rsrc AU = (op[2] >> 4) & 0x0f; | 10002 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 9991 #line 679 "rx-decode.opc" | 10003 #line 691 "rx-decode.opc" |
| 9992 int rdst AU = op[2] & 0x0f; | 10004 int rdst AU = op[2] & 0x0f; |
| 9993 if (trace) | 10005 if (trace) |
| 9994 { | 10006 { |
| 9995 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10007 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 9996 "/** 1111 1101 0110 0100 rsrc rdst rotr
%1, %0 */", | 10008 "/** 1111 1101 0110 0100 rsrc rdst rotr
%1, %0 */", |
| 9997 op[0], op[1], op[2]); | 10009 op[0], op[1], op[2]); |
| 9998 printf (" rsrc = 0x%x,", rsrc); | 10010 printf (" rsrc = 0x%x,", rsrc); |
| 9999 printf (" rdst = 0x%x\n", rdst); | 10011 printf (" rdst = 0x%x\n", rdst); |
| 10000 } | 10012 } |
| 10001 SYNTAX("rotr %1, %0"); | 10013 SYNTAX("rotr %1, %0"); |
| 10002 #line 679 "rx-decode.opc" | 10014 #line 691 "rx-decode.opc" |
| 10003 ID(rotr); SR(rsrc); DR(rdst); F__SZC; | 10015 ID(rotr); SR(rsrc); DR(rdst); F__SZC; |
| 10004 | 10016 |
| 10005 } | 10017 } |
| 10006 break; | 10018 break; |
| 10007 } | 10019 } |
| 10008 break; | 10020 break; |
| 10009 case 0x65: | 10021 case 0x65: |
| 10010 GETBYTE (); | 10022 GETBYTE (); |
| 10011 switch (op[2] & 0x00) | 10023 switch (op[2] & 0x00) |
| 10012 { | 10024 { |
| 10013 case 0x00: | 10025 case 0x00: |
| 10014 { | 10026 { |
| 10015 /** 1111 1101 0110 0101 rsrc rdst revw %1, %0 */ | 10027 /** 1111 1101 0110 0101 rsrc rdst revw %1, %0 */ |
| 10016 #line 682 "rx-decode.opc" | 10028 #line 694 "rx-decode.opc" |
| 10017 int rsrc AU = (op[2] >> 4) & 0x0f; | 10029 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10018 #line 682 "rx-decode.opc" | 10030 #line 694 "rx-decode.opc" |
| 10019 int rdst AU = op[2] & 0x0f; | 10031 int rdst AU = op[2] & 0x0f; |
| 10020 if (trace) | 10032 if (trace) |
| 10021 { | 10033 { |
| 10022 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10034 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10023 "/** 1111 1101 0110 0101 rsrc rdst revw
%1, %0 */", | 10035 "/** 1111 1101 0110 0101 rsrc rdst revw
%1, %0 */", |
| 10024 op[0], op[1], op[2]); | 10036 op[0], op[1], op[2]); |
| 10025 printf (" rsrc = 0x%x,", rsrc); | 10037 printf (" rsrc = 0x%x,", rsrc); |
| 10026 printf (" rdst = 0x%x\n", rdst); | 10038 printf (" rdst = 0x%x\n", rdst); |
| 10027 } | 10039 } |
| 10028 SYNTAX("revw %1, %0"); | 10040 SYNTAX("revw %1, %0"); |
| 10029 #line 682 "rx-decode.opc" | 10041 #line 694 "rx-decode.opc" |
| 10030 ID(revw); SR(rsrc); DR(rdst); | 10042 ID(revw); SR(rsrc); DR(rdst); |
| 10031 | 10043 |
| 10032 } | 10044 } |
| 10033 break; | 10045 break; |
| 10034 } | 10046 } |
| 10035 break; | 10047 break; |
| 10036 case 0x66: | 10048 case 0x66: |
| 10037 GETBYTE (); | 10049 GETBYTE (); |
| 10038 switch (op[2] & 0x00) | 10050 switch (op[2] & 0x00) |
| 10039 { | 10051 { |
| 10040 case 0x00: | 10052 case 0x00: |
| 10041 { | 10053 { |
| 10042 /** 1111 1101 0110 0110 rsrc rdst rotl %1, %0 */ | 10054 /** 1111 1101 0110 0110 rsrc rdst rotl %1, %0 */ |
| 10043 #line 673 "rx-decode.opc" | 10055 #line 685 "rx-decode.opc" |
| 10044 int rsrc AU = (op[2] >> 4) & 0x0f; | 10056 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10045 #line 673 "rx-decode.opc" | 10057 #line 685 "rx-decode.opc" |
| 10046 int rdst AU = op[2] & 0x0f; | 10058 int rdst AU = op[2] & 0x0f; |
| 10047 if (trace) | 10059 if (trace) |
| 10048 { | 10060 { |
| 10049 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10061 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10050 "/** 1111 1101 0110 0110 rsrc rdst rotl
%1, %0 */", | 10062 "/** 1111 1101 0110 0110 rsrc rdst rotl
%1, %0 */", |
| 10051 op[0], op[1], op[2]); | 10063 op[0], op[1], op[2]); |
| 10052 printf (" rsrc = 0x%x,", rsrc); | 10064 printf (" rsrc = 0x%x,", rsrc); |
| 10053 printf (" rdst = 0x%x\n", rdst); | 10065 printf (" rdst = 0x%x\n", rdst); |
| 10054 } | 10066 } |
| 10055 SYNTAX("rotl %1, %0"); | 10067 SYNTAX("rotl %1, %0"); |
| 10056 #line 673 "rx-decode.opc" | 10068 #line 685 "rx-decode.opc" |
| 10057 ID(rotl); SR(rsrc); DR(rdst); F__SZC; | 10069 ID(rotl); SR(rsrc); DR(rdst); F__SZC; |
| 10058 | 10070 |
| 10059 } | 10071 } |
| 10060 break; | 10072 break; |
| 10061 } | 10073 } |
| 10062 break; | 10074 break; |
| 10063 case 0x67: | 10075 case 0x67: |
| 10064 GETBYTE (); | 10076 GETBYTE (); |
| 10065 switch (op[2] & 0x00) | 10077 switch (op[2] & 0x00) |
| 10066 { | 10078 { |
| 10067 case 0x00: | 10079 case 0x00: |
| 10068 { | 10080 { |
| 10069 /** 1111 1101 0110 0111 rsrc rdst revl %1, %0 */ | 10081 /** 1111 1101 0110 0111 rsrc rdst revl %1, %0 */ |
| 10070 #line 685 "rx-decode.opc" | 10082 #line 697 "rx-decode.opc" |
| 10071 int rsrc AU = (op[2] >> 4) & 0x0f; | 10083 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10072 #line 685 "rx-decode.opc" | 10084 #line 697 "rx-decode.opc" |
| 10073 int rdst AU = op[2] & 0x0f; | 10085 int rdst AU = op[2] & 0x0f; |
| 10074 if (trace) | 10086 if (trace) |
| 10075 { | 10087 { |
| 10076 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10088 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10077 "/** 1111 1101 0110 0111 rsrc rdst revl
%1, %0 */", | 10089 "/** 1111 1101 0110 0111 rsrc rdst revl
%1, %0 */", |
| 10078 op[0], op[1], op[2]); | 10090 op[0], op[1], op[2]); |
| 10079 printf (" rsrc = 0x%x,", rsrc); | 10091 printf (" rsrc = 0x%x,", rsrc); |
| 10080 printf (" rdst = 0x%x\n", rdst); | 10092 printf (" rdst = 0x%x\n", rdst); |
| 10081 } | 10093 } |
| 10082 SYNTAX("revl %1, %0"); | 10094 SYNTAX("revl %1, %0"); |
| 10083 #line 685 "rx-decode.opc" | 10095 #line 697 "rx-decode.opc" |
| 10084 ID(revl); SR(rsrc); DR(rdst); | 10096 ID(revl); SR(rsrc); DR(rdst); |
| 10085 | 10097 |
| 10086 /*----------------------------------------------------------
------------*/ | 10098 /*----------------------------------------------------------
------------*/ |
| 10087 /* BRANCH
*/ | 10099 /* BRANCH
*/ |
| 10088 | 10100 |
| 10089 } | 10101 } |
| 10090 break; | 10102 break; |
| 10091 } | 10103 } |
| 10092 break; | 10104 break; |
| 10093 case 0x68: | 10105 case 0x68: |
| 10094 GETBYTE (); | 10106 GETBYTE (); |
| 10095 switch (op[2] & 0x00) | 10107 switch (op[2] & 0x00) |
| 10096 { | 10108 { |
| 10097 case 0x00: | 10109 case 0x00: |
| 10098 op_semantics_74: | 10110 op_semantics_74: |
| 10099 { | 10111 { |
| 10100 /** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */ | 10112 /** 1111 1101 0110 100c rsrc rdst mvtc %1, %0 */ |
| 10101 #line 928 "rx-decode.opc" | 10113 #line 940 "rx-decode.opc" |
| 10102 int c AU = op[1] & 0x01; | 10114 int c AU = op[1] & 0x01; |
| 10103 #line 928 "rx-decode.opc" | 10115 #line 940 "rx-decode.opc" |
| 10104 int rsrc AU = (op[2] >> 4) & 0x0f; | 10116 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10105 #line 928 "rx-decode.opc" | 10117 #line 940 "rx-decode.opc" |
| 10106 int rdst AU = op[2] & 0x0f; | 10118 int rdst AU = op[2] & 0x0f; |
| 10107 if (trace) | 10119 if (trace) |
| 10108 { | 10120 { |
| 10109 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10121 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10110 "/** 1111 1101 0110 100c rsrc rdst mvtc
%1, %0 */", | 10122 "/** 1111 1101 0110 100c rsrc rdst mvtc
%1, %0 */", |
| 10111 op[0], op[1], op[2]); | 10123 op[0], op[1], op[2]); |
| 10112 printf (" c = 0x%x,", c); | 10124 printf (" c = 0x%x,", c); |
| 10113 printf (" rsrc = 0x%x,", rsrc); | 10125 printf (" rsrc = 0x%x,", rsrc); |
| 10114 printf (" rdst = 0x%x\n", rdst); | 10126 printf (" rdst = 0x%x\n", rdst); |
| 10115 } | 10127 } |
| 10116 SYNTAX("mvtc %1, %0"); | 10128 SYNTAX("mvtc %1, %0"); |
| 10117 #line 928 "rx-decode.opc" | 10129 #line 940 "rx-decode.opc" |
| 10118 ID(mov); SR(rsrc); DR(c*16+rdst + 16); | 10130 ID(mov); SR(rsrc); DR(c*16+rdst + 16); |
| 10119 | 10131 |
| 10120 } | 10132 } |
| 10121 break; | 10133 break; |
| 10122 } | 10134 } |
| 10123 break; | 10135 break; |
| 10124 case 0x69: | 10136 case 0x69: |
| 10125 GETBYTE (); | 10137 GETBYTE (); |
| 10126 switch (op[2] & 0x00) | 10138 switch (op[2] & 0x00) |
| 10127 { | 10139 { |
| 10128 case 0x00: | 10140 case 0x00: |
| 10129 goto op_semantics_74; | 10141 goto op_semantics_74; |
| 10130 break; | 10142 break; |
| 10131 } | 10143 } |
| 10132 break; | 10144 break; |
| 10133 case 0x6a: | 10145 case 0x6a: |
| 10134 GETBYTE (); | 10146 GETBYTE (); |
| 10135 switch (op[2] & 0x00) | 10147 switch (op[2] & 0x00) |
| 10136 { | 10148 { |
| 10137 case 0x00: | 10149 case 0x00: |
| 10138 op_semantics_75: | 10150 op_semantics_75: |
| 10139 { | 10151 { |
| 10140 /** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */ | 10152 /** 1111 1101 0110 101s rsrc rdst mvfc %1, %0 */ |
| 10141 #line 931 "rx-decode.opc" | 10153 #line 943 "rx-decode.opc" |
| 10142 int s AU = op[1] & 0x01; | 10154 int s AU = op[1] & 0x01; |
| 10143 #line 931 "rx-decode.opc" | 10155 #line 943 "rx-decode.opc" |
| 10144 int rsrc AU = (op[2] >> 4) & 0x0f; | 10156 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10145 #line 931 "rx-decode.opc" | 10157 #line 943 "rx-decode.opc" |
| 10146 int rdst AU = op[2] & 0x0f; | 10158 int rdst AU = op[2] & 0x0f; |
| 10147 if (trace) | 10159 if (trace) |
| 10148 { | 10160 { |
| 10149 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10161 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10150 "/** 1111 1101 0110 101s rsrc rdst mvfc
%1, %0 */", | 10162 "/** 1111 1101 0110 101s rsrc rdst mvfc
%1, %0 */", |
| 10151 op[0], op[1], op[2]); | 10163 op[0], op[1], op[2]); |
| 10152 printf (" s = 0x%x,", s); | 10164 printf (" s = 0x%x,", s); |
| 10153 printf (" rsrc = 0x%x,", rsrc); | 10165 printf (" rsrc = 0x%x,", rsrc); |
| 10154 printf (" rdst = 0x%x\n", rdst); | 10166 printf (" rdst = 0x%x\n", rdst); |
| 10155 } | 10167 } |
| 10156 SYNTAX("mvfc %1, %0"); | 10168 SYNTAX("mvfc %1, %0"); |
| 10157 #line 931 "rx-decode.opc" | 10169 #line 943 "rx-decode.opc" |
| 10158 ID(mov); SR((s*16+rsrc) + 16); DR(rdst); | 10170 ID(mov); SR((s*16+rsrc) + 16); DR(rdst); |
| 10159 | 10171 |
| 10160 /*----------------------------------------------------------
------------*/ | 10172 /*----------------------------------------------------------
------------*/ |
| 10161 /* INTERRUPTS
*/ | 10173 /* INTERRUPTS
*/ |
| 10162 | 10174 |
| 10163 } | 10175 } |
| 10164 break; | 10176 break; |
| 10165 } | 10177 } |
| 10166 break; | 10178 break; |
| 10167 case 0x6b: | 10179 case 0x6b: |
| 10168 GETBYTE (); | 10180 GETBYTE (); |
| 10169 switch (op[2] & 0x00) | 10181 switch (op[2] & 0x00) |
| 10170 { | 10182 { |
| 10171 case 0x00: | 10183 case 0x00: |
| 10172 goto op_semantics_75; | 10184 goto op_semantics_75; |
| 10173 break; | 10185 break; |
| 10174 } | 10186 } |
| 10175 break; | 10187 break; |
| 10176 case 0x6c: | 10188 case 0x6c: |
| 10177 GETBYTE (); | 10189 GETBYTE (); |
| 10178 switch (op[2] & 0x00) | 10190 switch (op[2] & 0x00) |
| 10179 { | 10191 { |
| 10180 case 0x00: | 10192 case 0x00: |
| 10181 op_semantics_76: | 10193 op_semantics_76: |
| 10182 { | 10194 { |
| 10183 /** 1111 1101 0110 110i mmmm rdst rotr #%1, %0 */ | 10195 /** 1111 1101 0110 110i mmmm rdst rotr #%1, %0 */ |
| 10184 #line 676 "rx-decode.opc" | 10196 #line 688 "rx-decode.opc" |
| 10185 int i AU = op[1] & 0x01; | 10197 int i AU = op[1] & 0x01; |
| 10186 #line 676 "rx-decode.opc" | 10198 #line 688 "rx-decode.opc" |
| 10187 int mmmm AU = (op[2] >> 4) & 0x0f; | 10199 int mmmm AU = (op[2] >> 4) & 0x0f; |
| 10188 #line 676 "rx-decode.opc" | 10200 #line 688 "rx-decode.opc" |
| 10189 int rdst AU = op[2] & 0x0f; | 10201 int rdst AU = op[2] & 0x0f; |
| 10190 if (trace) | 10202 if (trace) |
| 10191 { | 10203 { |
| 10192 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10204 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10193 "/** 1111 1101 0110 110i mmmm rdst rotr
#%1, %0 */", | 10205 "/** 1111 1101 0110 110i mmmm rdst rotr
#%1, %0 */", |
| 10194 op[0], op[1], op[2]); | 10206 op[0], op[1], op[2]); |
| 10195 printf (" i = 0x%x,", i); | 10207 printf (" i = 0x%x,", i); |
| 10196 printf (" mmmm = 0x%x,", mmmm); | 10208 printf (" mmmm = 0x%x,", mmmm); |
| 10197 printf (" rdst = 0x%x\n", rdst); | 10209 printf (" rdst = 0x%x\n", rdst); |
| 10198 } | 10210 } |
| 10199 SYNTAX("rotr #%1, %0"); | 10211 SYNTAX("rotr #%1, %0"); |
| 10200 #line 676 "rx-decode.opc" | 10212 #line 688 "rx-decode.opc" |
| 10201 ID(rotr); SC(i*16+mmmm); DR(rdst); F__SZC; | 10213 ID(rotr); SC(i*16+mmmm); DR(rdst); F__SZC; |
| 10202 | 10214 |
| 10203 } | 10215 } |
| 10204 break; | 10216 break; |
| 10205 } | 10217 } |
| 10206 break; | 10218 break; |
| 10207 case 0x6d: | 10219 case 0x6d: |
| 10208 GETBYTE (); | 10220 GETBYTE (); |
| 10209 switch (op[2] & 0x00) | 10221 switch (op[2] & 0x00) |
| 10210 { | 10222 { |
| 10211 case 0x00: | 10223 case 0x00: |
| 10212 goto op_semantics_76; | 10224 goto op_semantics_76; |
| 10213 break; | 10225 break; |
| 10214 } | 10226 } |
| 10215 break; | 10227 break; |
| 10216 case 0x6e: | 10228 case 0x6e: |
| 10217 GETBYTE (); | 10229 GETBYTE (); |
| 10218 switch (op[2] & 0x00) | 10230 switch (op[2] & 0x00) |
| 10219 { | 10231 { |
| 10220 case 0x00: | 10232 case 0x00: |
| 10221 op_semantics_77: | 10233 op_semantics_77: |
| 10222 { | 10234 { |
| 10223 /** 1111 1101 0110 111i mmmm rdst rotl #%1, %0 */ | 10235 /** 1111 1101 0110 111i mmmm rdst rotl #%1, %0 */ |
| 10224 #line 670 "rx-decode.opc" | 10236 #line 682 "rx-decode.opc" |
| 10225 int i AU = op[1] & 0x01; | 10237 int i AU = op[1] & 0x01; |
| 10226 #line 670 "rx-decode.opc" | 10238 #line 682 "rx-decode.opc" |
| 10227 int mmmm AU = (op[2] >> 4) & 0x0f; | 10239 int mmmm AU = (op[2] >> 4) & 0x0f; |
| 10228 #line 670 "rx-decode.opc" | 10240 #line 682 "rx-decode.opc" |
| 10229 int rdst AU = op[2] & 0x0f; | 10241 int rdst AU = op[2] & 0x0f; |
| 10230 if (trace) | 10242 if (trace) |
| 10231 { | 10243 { |
| 10232 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10244 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10233 "/** 1111 1101 0110 111i mmmm rdst rotl
#%1, %0 */", | 10245 "/** 1111 1101 0110 111i mmmm rdst rotl
#%1, %0 */", |
| 10234 op[0], op[1], op[2]); | 10246 op[0], op[1], op[2]); |
| 10235 printf (" i = 0x%x,", i); | 10247 printf (" i = 0x%x,", i); |
| 10236 printf (" mmmm = 0x%x,", mmmm); | 10248 printf (" mmmm = 0x%x,", mmmm); |
| 10237 printf (" rdst = 0x%x\n", rdst); | 10249 printf (" rdst = 0x%x\n", rdst); |
| 10238 } | 10250 } |
| 10239 SYNTAX("rotl #%1, %0"); | 10251 SYNTAX("rotl #%1, %0"); |
| 10240 #line 670 "rx-decode.opc" | 10252 #line 682 "rx-decode.opc" |
| 10241 ID(rotl); SC(i*16+mmmm); DR(rdst); F__SZC; | 10253 ID(rotl); SC(i*16+mmmm); DR(rdst); F__SZC; |
| 10242 | 10254 |
| 10243 } | 10255 } |
| 10244 break; | 10256 break; |
| 10245 } | 10257 } |
| 10246 break; | 10258 break; |
| 10247 case 0x6f: | 10259 case 0x6f: |
| 10248 GETBYTE (); | 10260 GETBYTE (); |
| 10249 switch (op[2] & 0x00) | 10261 switch (op[2] & 0x00) |
| 10250 { | 10262 { |
| 10251 case 0x00: | 10263 case 0x00: |
| 10252 goto op_semantics_77; | 10264 goto op_semantics_77; |
| 10253 break; | 10265 break; |
| 10254 } | 10266 } |
| 10255 break; | 10267 break; |
| 10256 case 0x70: | 10268 case 0x70: |
| 10257 GETBYTE (); | 10269 GETBYTE (); |
| 10258 switch (op[2] & 0xf0) | 10270 switch (op[2] & 0xf0) |
| 10259 { | 10271 { |
| 10260 case 0x20: | 10272 case 0x20: |
| 10261 op_semantics_78: | 10273 op_semantics_78: |
| 10262 { | 10274 { |
| 10263 /** 1111 1101 0111 im00 0010rdst adc #%1, %0 */ | 10275 /** 1111 1101 0111 im00 0010rdst adc #%1, %0 */ |
| 10264 #line 452 "rx-decode.opc" | 10276 #line 464 "rx-decode.opc" |
| 10265 int im AU = (op[1] >> 2) & 0x03; | 10277 int im AU = (op[1] >> 2) & 0x03; |
| 10266 #line 452 "rx-decode.opc" | 10278 #line 464 "rx-decode.opc" |
| 10267 int rdst AU = op[2] & 0x0f; | 10279 int rdst AU = op[2] & 0x0f; |
| 10268 if (trace) | 10280 if (trace) |
| 10269 { | 10281 { |
| 10270 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10282 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10271 "/** 1111 1101 0111 im00 0010rdst adc
#%1, %0 */", | 10283 "/** 1111 1101 0111 im00 0010rdst adc
#%1, %0 */", |
| 10272 op[0], op[1], op[2]); | 10284 op[0], op[1], op[2]); |
| 10273 printf (" im = 0x%x,", im); | 10285 printf (" im = 0x%x,", im); |
| 10274 printf (" rdst = 0x%x\n", rdst); | 10286 printf (" rdst = 0x%x\n", rdst); |
| 10275 } | 10287 } |
| 10276 SYNTAX("adc #%1, %0"); | 10288 SYNTAX("adc #%1, %0"); |
| 10277 #line 452 "rx-decode.opc" | 10289 #line 464 "rx-decode.opc" |
| 10278 ID(adc); SC(IMMex(im)); DR(rdst); F_OSZC; | 10290 ID(adc); SC(IMMex(im)); DR(rdst); F_OSZC; |
| 10279 | 10291 |
| 10280 } | 10292 } |
| 10281 break; | 10293 break; |
| 10282 case 0x40: | 10294 case 0x40: |
| 10283 op_semantics_79: | 10295 op_semantics_79: |
| 10284 { | 10296 { |
| 10285 /** 1111 1101 0111 im00 0100rdst max #%1, %0 */ | 10297 /** 1111 1101 0111 im00 0100rdst max #%1, %0 */ |
| 10286 #line 534 "rx-decode.opc" | 10298 #line 546 "rx-decode.opc" |
| 10287 int im AU = (op[1] >> 2) & 0x03; | 10299 int im AU = (op[1] >> 2) & 0x03; |
| 10288 #line 534 "rx-decode.opc" | 10300 #line 546 "rx-decode.opc" |
| 10289 int rdst AU = op[2] & 0x0f; | 10301 int rdst AU = op[2] & 0x0f; |
| 10290 if (trace) | 10302 if (trace) |
| 10291 { | 10303 { |
| 10292 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10304 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10293 "/** 1111 1101 0111 im00 0100rdst max
#%1, %0 */", | 10305 "/** 1111 1101 0111 im00 0100rdst max
#%1, %0 */", |
| 10294 op[0], op[1], op[2]); | 10306 op[0], op[1], op[2]); |
| 10295 printf (" im = 0x%x,", im); | 10307 printf (" im = 0x%x,", im); |
| 10296 printf (" rdst = 0x%x\n", rdst); | 10308 printf (" rdst = 0x%x\n", rdst); |
| 10297 } | 10309 } |
| 10298 SYNTAX("max #%1, %0"); | 10310 SYNTAX("max #%1, %0"); |
| 10299 #line 534 "rx-decode.opc" | 10311 #line 546 "rx-decode.opc" |
| 10300 ID(max); DR(rdst); SC(IMMex(im)); | 10312 ID(max); DR(rdst); SC(IMMex(im)); |
| 10301 | 10313 |
| 10302 } | 10314 } |
| 10303 break; | 10315 break; |
| 10304 case 0x50: | 10316 case 0x50: |
| 10305 op_semantics_80: | 10317 op_semantics_80: |
| 10306 { | 10318 { |
| 10307 /** 1111 1101 0111 im00 0101rdst min #%1, %0 */ | 10319 /** 1111 1101 0111 im00 0101rdst min #%1, %0 */ |
| 10308 #line 554 "rx-decode.opc" | 10320 #line 566 "rx-decode.opc" |
| 10309 int im AU = (op[1] >> 2) & 0x03; | 10321 int im AU = (op[1] >> 2) & 0x03; |
| 10310 #line 554 "rx-decode.opc" | 10322 #line 566 "rx-decode.opc" |
| 10311 int rdst AU = op[2] & 0x0f; | 10323 int rdst AU = op[2] & 0x0f; |
| 10312 if (trace) | 10324 if (trace) |
| 10313 { | 10325 { |
| 10314 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10326 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10315 "/** 1111 1101 0111 im00 0101rdst min
#%1, %0 */", | 10327 "/** 1111 1101 0111 im00 0101rdst min
#%1, %0 */", |
| 10316 op[0], op[1], op[2]); | 10328 op[0], op[1], op[2]); |
| 10317 printf (" im = 0x%x,", im); | 10329 printf (" im = 0x%x,", im); |
| 10318 printf (" rdst = 0x%x\n", rdst); | 10330 printf (" rdst = 0x%x\n", rdst); |
| 10319 } | 10331 } |
| 10320 SYNTAX("min #%1, %0"); | 10332 SYNTAX("min #%1, %0"); |
| 10321 #line 554 "rx-decode.opc" | 10333 #line 566 "rx-decode.opc" |
| 10322 ID(min); DR(rdst); SC(IMMex(im)); | 10334 ID(min); DR(rdst); SC(IMMex(im)); |
| 10323 | 10335 |
| 10324 } | 10336 } |
| 10325 break; | 10337 break; |
| 10326 case 0x60: | 10338 case 0x60: |
| 10327 op_semantics_81: | 10339 op_semantics_81: |
| 10328 { | 10340 { |
| 10329 /** 1111 1101 0111 im00 0110rdst emul #%1, %0 */ | 10341 /** 1111 1101 0111 im00 0110rdst emul #%1, %0 */ |
| 10330 #line 584 "rx-decode.opc" | 10342 #line 596 "rx-decode.opc" |
| 10331 int im AU = (op[1] >> 2) & 0x03; | 10343 int im AU = (op[1] >> 2) & 0x03; |
| 10332 #line 584 "rx-decode.opc" | 10344 #line 596 "rx-decode.opc" |
| 10333 int rdst AU = op[2] & 0x0f; | 10345 int rdst AU = op[2] & 0x0f; |
| 10334 if (trace) | 10346 if (trace) |
| 10335 { | 10347 { |
| 10336 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10348 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10337 "/** 1111 1101 0111 im00 0110rdst emul
#%1, %0 */", | 10349 "/** 1111 1101 0111 im00 0110rdst emul
#%1, %0 */", |
| 10338 op[0], op[1], op[2]); | 10350 op[0], op[1], op[2]); |
| 10339 printf (" im = 0x%x,", im); | 10351 printf (" im = 0x%x,", im); |
| 10340 printf (" rdst = 0x%x\n", rdst); | 10352 printf (" rdst = 0x%x\n", rdst); |
| 10341 } | 10353 } |
| 10342 SYNTAX("emul #%1, %0"); | 10354 SYNTAX("emul #%1, %0"); |
| 10343 #line 584 "rx-decode.opc" | 10355 #line 596 "rx-decode.opc" |
| 10344 ID(emul); DR(rdst); SC(IMMex(im)); | 10356 ID(emul); DR(rdst); SC(IMMex(im)); |
| 10345 | 10357 |
| 10346 } | 10358 } |
| 10347 break; | 10359 break; |
| 10348 case 0x70: | 10360 case 0x70: |
| 10349 op_semantics_82: | 10361 op_semantics_82: |
| 10350 { | 10362 { |
| 10351 /** 1111 1101 0111 im00 0111rdst emulu #%1, %0 */ | 10363 /** 1111 1101 0111 im00 0111rdst emulu #%1, %0 */ |
| 10352 #line 596 "rx-decode.opc" | 10364 #line 608 "rx-decode.opc" |
| 10353 int im AU = (op[1] >> 2) & 0x03; | 10365 int im AU = (op[1] >> 2) & 0x03; |
| 10354 #line 596 "rx-decode.opc" | 10366 #line 608 "rx-decode.opc" |
| 10355 int rdst AU = op[2] & 0x0f; | 10367 int rdst AU = op[2] & 0x0f; |
| 10356 if (trace) | 10368 if (trace) |
| 10357 { | 10369 { |
| 10358 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10370 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10359 "/** 1111 1101 0111 im00 0111rdst emulu
#%1, %0 */", | 10371 "/** 1111 1101 0111 im00 0111rdst emulu
#%1, %0 */", |
| 10360 op[0], op[1], op[2]); | 10372 op[0], op[1], op[2]); |
| 10361 printf (" im = 0x%x,", im); | 10373 printf (" im = 0x%x,", im); |
| 10362 printf (" rdst = 0x%x\n", rdst); | 10374 printf (" rdst = 0x%x\n", rdst); |
| 10363 } | 10375 } |
| 10364 SYNTAX("emulu #%1, %0"); | 10376 SYNTAX("emulu #%1, %0"); |
| 10365 #line 596 "rx-decode.opc" | 10377 #line 608 "rx-decode.opc" |
| 10366 ID(emulu); DR(rdst); SC(IMMex(im)); | 10378 ID(emulu); DR(rdst); SC(IMMex(im)); |
| 10367 | 10379 |
| 10368 } | 10380 } |
| 10369 break; | 10381 break; |
| 10370 case 0x80: | 10382 case 0x80: |
| 10371 op_semantics_83: | 10383 op_semantics_83: |
| 10372 { | 10384 { |
| 10373 /** 1111 1101 0111 im00 1000rdst div #%1, %0 */ | 10385 /** 1111 1101 0111 im00 1000rdst div #%1, %0 */ |
| 10374 #line 608 "rx-decode.opc" | 10386 #line 620 "rx-decode.opc" |
| 10375 int im AU = (op[1] >> 2) & 0x03; | 10387 int im AU = (op[1] >> 2) & 0x03; |
| 10376 #line 608 "rx-decode.opc" | 10388 #line 620 "rx-decode.opc" |
| 10377 int rdst AU = op[2] & 0x0f; | 10389 int rdst AU = op[2] & 0x0f; |
| 10378 if (trace) | 10390 if (trace) |
| 10379 { | 10391 { |
| 10380 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10392 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10381 "/** 1111 1101 0111 im00 1000rdst div
#%1, %0 */", | 10393 "/** 1111 1101 0111 im00 1000rdst div
#%1, %0 */", |
| 10382 op[0], op[1], op[2]); | 10394 op[0], op[1], op[2]); |
| 10383 printf (" im = 0x%x,", im); | 10395 printf (" im = 0x%x,", im); |
| 10384 printf (" rdst = 0x%x\n", rdst); | 10396 printf (" rdst = 0x%x\n", rdst); |
| 10385 } | 10397 } |
| 10386 SYNTAX("div #%1, %0"); | 10398 SYNTAX("div #%1, %0"); |
| 10387 #line 608 "rx-decode.opc" | 10399 #line 620 "rx-decode.opc" |
| 10388 ID(div); DR(rdst); SC(IMMex(im)); F_O___; | 10400 ID(div); DR(rdst); SC(IMMex(im)); F_O___; |
| 10389 | 10401 |
| 10390 } | 10402 } |
| 10391 break; | 10403 break; |
| 10392 case 0x90: | 10404 case 0x90: |
| 10393 op_semantics_84: | 10405 op_semantics_84: |
| 10394 { | 10406 { |
| 10395 /** 1111 1101 0111 im00 1001rdst divu #%1, %0 */ | 10407 /** 1111 1101 0111 im00 1001rdst divu #%1, %0 */ |
| 10396 #line 620 "rx-decode.opc" | 10408 #line 632 "rx-decode.opc" |
| 10397 int im AU = (op[1] >> 2) & 0x03; | 10409 int im AU = (op[1] >> 2) & 0x03; |
| 10398 #line 620 "rx-decode.opc" | 10410 #line 632 "rx-decode.opc" |
| 10399 int rdst AU = op[2] & 0x0f; | 10411 int rdst AU = op[2] & 0x0f; |
| 10400 if (trace) | 10412 if (trace) |
| 10401 { | 10413 { |
| 10402 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10414 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10403 "/** 1111 1101 0111 im00 1001rdst divu
#%1, %0 */", | 10415 "/** 1111 1101 0111 im00 1001rdst divu
#%1, %0 */", |
| 10404 op[0], op[1], op[2]); | 10416 op[0], op[1], op[2]); |
| 10405 printf (" im = 0x%x,", im); | 10417 printf (" im = 0x%x,", im); |
| 10406 printf (" rdst = 0x%x\n", rdst); | 10418 printf (" rdst = 0x%x\n", rdst); |
| 10407 } | 10419 } |
| 10408 SYNTAX("divu #%1, %0"); | 10420 SYNTAX("divu #%1, %0"); |
| 10409 #line 620 "rx-decode.opc" | 10421 #line 632 "rx-decode.opc" |
| 10410 ID(divu); DR(rdst); SC(IMMex(im)); F_O___; | 10422 ID(divu); DR(rdst); SC(IMMex(im)); F_O___; |
| 10411 | 10423 |
| 10412 } | 10424 } |
| 10413 break; | 10425 break; |
| 10414 case 0xc0: | 10426 case 0xc0: |
| 10415 op_semantics_85: | 10427 op_semantics_85: |
| 10416 { | 10428 { |
| 10417 /** 1111 1101 0111 im00 1100rdst tst #%1, %2 */ | 10429 /** 1111 1101 0111 im00 1100rdst tst #%1, %2 */ |
| 10418 #line 431 "rx-decode.opc" | 10430 #line 443 "rx-decode.opc" |
| 10419 int im AU = (op[1] >> 2) & 0x03; | 10431 int im AU = (op[1] >> 2) & 0x03; |
| 10420 #line 431 "rx-decode.opc" | 10432 #line 443 "rx-decode.opc" |
| 10421 int rdst AU = op[2] & 0x0f; | 10433 int rdst AU = op[2] & 0x0f; |
| 10422 if (trace) | 10434 if (trace) |
| 10423 { | 10435 { |
| 10424 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10436 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10425 "/** 1111 1101 0111 im00 1100rdst tst
#%1, %2 */", | 10437 "/** 1111 1101 0111 im00 1100rdst tst
#%1, %2 */", |
| 10426 op[0], op[1], op[2]); | 10438 op[0], op[1], op[2]); |
| 10427 printf (" im = 0x%x,", im); | 10439 printf (" im = 0x%x,", im); |
| 10428 printf (" rdst = 0x%x\n", rdst); | 10440 printf (" rdst = 0x%x\n", rdst); |
| 10429 } | 10441 } |
| 10430 SYNTAX("tst #%1, %2"); | 10442 SYNTAX("tst #%1, %2"); |
| 10431 #line 431 "rx-decode.opc" | 10443 #line 443 "rx-decode.opc" |
| 10432 ID(and); SC(IMMex(im)); S2R(rdst); F__SZ_; | 10444 ID(and); SC(IMMex(im)); S2R(rdst); F__SZ_; |
| 10433 | 10445 |
| 10434 } | 10446 } |
| 10435 break; | 10447 break; |
| 10436 case 0xd0: | 10448 case 0xd0: |
| 10437 op_semantics_86: | 10449 op_semantics_86: |
| 10438 { | 10450 { |
| 10439 /** 1111 1101 0111 im00 1101rdst xor #%1, %0 */ | 10451 /** 1111 1101 0111 im00 1101rdst xor #%1, %0 */ |
| 10440 #line 410 "rx-decode.opc" | 10452 #line 422 "rx-decode.opc" |
| 10441 int im AU = (op[1] >> 2) & 0x03; | 10453 int im AU = (op[1] >> 2) & 0x03; |
| 10442 #line 410 "rx-decode.opc" | 10454 #line 422 "rx-decode.opc" |
| 10443 int rdst AU = op[2] & 0x0f; | 10455 int rdst AU = op[2] & 0x0f; |
| 10444 if (trace) | 10456 if (trace) |
| 10445 { | 10457 { |
| 10446 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10458 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10447 "/** 1111 1101 0111 im00 1101rdst xor
#%1, %0 */", | 10459 "/** 1111 1101 0111 im00 1101rdst xor
#%1, %0 */", |
| 10448 op[0], op[1], op[2]); | 10460 op[0], op[1], op[2]); |
| 10449 printf (" im = 0x%x,", im); | 10461 printf (" im = 0x%x,", im); |
| 10450 printf (" rdst = 0x%x\n", rdst); | 10462 printf (" rdst = 0x%x\n", rdst); |
| 10451 } | 10463 } |
| 10452 SYNTAX("xor #%1, %0"); | 10464 SYNTAX("xor #%1, %0"); |
| 10453 #line 410 "rx-decode.opc" | 10465 #line 422 "rx-decode.opc" |
| 10454 ID(xor); SC(IMMex(im)); DR(rdst); F__SZ_; | 10466 ID(xor); SC(IMMex(im)); DR(rdst); F__SZ_; |
| 10455 | 10467 |
| 10456 } | 10468 } |
| 10457 break; | 10469 break; |
| 10458 case 0xe0: | 10470 case 0xe0: |
| 10459 op_semantics_87: | 10471 op_semantics_87: |
| 10460 { | 10472 { |
| 10461 /** 1111 1101 0111 im00 1110rdst stz #%1, %0 */ | 10473 /** 1111 1101 0111 im00 1110rdst stz #%1, %0 */ |
| 10462 #line 356 "rx-decode.opc" | 10474 #line 368 "rx-decode.opc" |
| 10463 int im AU = (op[1] >> 2) & 0x03; | 10475 int im AU = (op[1] >> 2) & 0x03; |
| 10464 #line 356 "rx-decode.opc" | 10476 #line 368 "rx-decode.opc" |
| 10465 int rdst AU = op[2] & 0x0f; | 10477 int rdst AU = op[2] & 0x0f; |
| 10466 if (trace) | 10478 if (trace) |
| 10467 { | 10479 { |
| 10468 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10480 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10469 "/** 1111 1101 0111 im00 1110rdst stz
#%1, %0 */", | 10481 "/** 1111 1101 0111 im00 1110rdst stz
#%1, %0 */", |
| 10470 op[0], op[1], op[2]); | 10482 op[0], op[1], op[2]); |
| 10471 printf (" im = 0x%x,", im); | 10483 printf (" im = 0x%x,", im); |
| 10472 printf (" rdst = 0x%x\n", rdst); | 10484 printf (" rdst = 0x%x\n", rdst); |
| 10473 } | 10485 } |
| 10474 SYNTAX("stz #%1, %0"); | 10486 SYNTAX("stz #%1, %0"); |
| 10475 #line 356 "rx-decode.opc" | 10487 #line 368 "rx-decode.opc" |
| 10476 ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_z); | 10488 ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_z); |
| 10477 | 10489 |
| 10478 } | 10490 } |
| 10479 break; | 10491 break; |
| 10480 case 0xf0: | 10492 case 0xf0: |
| 10481 op_semantics_88: | 10493 op_semantics_88: |
| 10482 { | 10494 { |
| 10483 /** 1111 1101 0111 im00 1111rdst stnz #%1, %0 */ | 10495 /** 1111 1101 0111 im00 1111rdst stnz #%1, %0 */ |
| 10484 #line 359 "rx-decode.opc" | 10496 #line 371 "rx-decode.opc" |
| 10485 int im AU = (op[1] >> 2) & 0x03; | 10497 int im AU = (op[1] >> 2) & 0x03; |
| 10486 #line 359 "rx-decode.opc" | 10498 #line 371 "rx-decode.opc" |
| 10487 int rdst AU = op[2] & 0x0f; | 10499 int rdst AU = op[2] & 0x0f; |
| 10488 if (trace) | 10500 if (trace) |
| 10489 { | 10501 { |
| 10490 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10502 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10491 "/** 1111 1101 0111 im00 1111rdst stnz
#%1, %0 */", | 10503 "/** 1111 1101 0111 im00 1111rdst stnz
#%1, %0 */", |
| 10492 op[0], op[1], op[2]); | 10504 op[0], op[1], op[2]); |
| 10493 printf (" im = 0x%x,", im); | 10505 printf (" im = 0x%x,", im); |
| 10494 printf (" rdst = 0x%x\n", rdst); | 10506 printf (" rdst = 0x%x\n", rdst); |
| 10495 } | 10507 } |
| 10496 SYNTAX("stnz #%1, %0"); | 10508 SYNTAX("stnz #%1, %0"); |
| 10497 #line 359 "rx-decode.opc" | 10509 #line 371 "rx-decode.opc" |
| 10498 ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_nz); | 10510 ID(stcc); SC(IMMex(im)); DR(rdst); S2cc(RXC_nz); |
| 10499 | 10511 |
| 10500 /*----------------------------------------------------------
------------*/ | 10512 /*----------------------------------------------------------
------------*/ |
| 10501 /* RTSD
*/ | 10513 /* RTSD
*/ |
| 10502 | 10514 |
| 10503 } | 10515 } |
| 10504 break; | 10516 break; |
| 10505 default: UNSUPPORTED(); break; | 10517 default: UNSUPPORTED(); break; |
| 10506 } | 10518 } |
| 10507 break; | 10519 break; |
| 10508 case 0x72: | 10520 case 0x72: |
| 10509 GETBYTE (); | 10521 GETBYTE (); |
| 10510 switch (op[2] & 0xf0) | 10522 switch (op[2] & 0xf0) |
| 10511 { | 10523 { |
| 10512 case 0x00: | 10524 case 0x00: |
| 10513 { | 10525 { |
| 10514 /** 1111 1101 0111 0010 0000 rdst fsub #%1, %0 */ | 10526 /** 1111 1101 0111 0010 0000 rdst fsub #%1, %0 */ |
| 10515 #line 828 "rx-decode.opc" | 10527 #line 840 "rx-decode.opc" |
| 10516 int rdst AU = op[2] & 0x0f; | 10528 int rdst AU = op[2] & 0x0f; |
| 10517 if (trace) | 10529 if (trace) |
| 10518 { | 10530 { |
| 10519 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10531 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10520 "/** 1111 1101 0111 0010 0000 rdst fsub
#%1, %0 */", | 10532 "/** 1111 1101 0111 0010 0000 rdst fsub
#%1, %0 */", |
| 10521 op[0], op[1], op[2]); | 10533 op[0], op[1], op[2]); |
| 10522 printf (" rdst = 0x%x\n", rdst); | 10534 printf (" rdst = 0x%x\n", rdst); |
| 10523 } | 10535 } |
| 10524 SYNTAX("fsub #%1, %0"); | 10536 SYNTAX("fsub #%1, %0"); |
| 10525 #line 828 "rx-decode.opc" | 10537 #line 840 "rx-decode.opc" |
| 10526 ID(fsub); DR(rdst); SC(IMM(0)); F__SZ_; | 10538 ID(fsub); DR(rdst); SC(IMM(0)); F__SZ_; |
| 10527 | 10539 |
| 10528 } | 10540 } |
| 10529 break; | 10541 break; |
| 10530 case 0x10: | 10542 case 0x10: |
| 10531 { | 10543 { |
| 10532 /** 1111 1101 0111 0010 0001 rdst fcmp #%1, %0 */ | 10544 /** 1111 1101 0111 0010 0001 rdst fcmp #%1, %0 */ |
| 10533 #line 822 "rx-decode.opc" | 10545 #line 834 "rx-decode.opc" |
| 10534 int rdst AU = op[2] & 0x0f; | 10546 int rdst AU = op[2] & 0x0f; |
| 10535 if (trace) | 10547 if (trace) |
| 10536 { | 10548 { |
| 10537 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10549 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10538 "/** 1111 1101 0111 0010 0001 rdst fcmp
#%1, %0 */", | 10550 "/** 1111 1101 0111 0010 0001 rdst fcmp
#%1, %0 */", |
| 10539 op[0], op[1], op[2]); | 10551 op[0], op[1], op[2]); |
| 10540 printf (" rdst = 0x%x\n", rdst); | 10552 printf (" rdst = 0x%x\n", rdst); |
| 10541 } | 10553 } |
| 10542 SYNTAX("fcmp #%1, %0"); | 10554 SYNTAX("fcmp #%1, %0"); |
| 10543 #line 822 "rx-decode.opc" | 10555 #line 834 "rx-decode.opc" |
| 10544 ID(fcmp); DR(rdst); SC(IMM(0)); F_OSZ_; | 10556 ID(fcmp); DR(rdst); SC(IMM(0)); F_OSZ_; |
| 10545 | 10557 |
| 10546 } | 10558 } |
| 10547 break; | 10559 break; |
| 10548 case 0x20: | 10560 case 0x20: |
| 10549 { | 10561 { |
| 10550 /** 1111 1101 0111 0010 0010 rdst fadd #%1, %0 */ | 10562 /** 1111 1101 0111 0010 0010 rdst fadd #%1, %0 */ |
| 10551 #line 816 "rx-decode.opc" | 10563 #line 828 "rx-decode.opc" |
| 10552 int rdst AU = op[2] & 0x0f; | 10564 int rdst AU = op[2] & 0x0f; |
| 10553 if (trace) | 10565 if (trace) |
| 10554 { | 10566 { |
| 10555 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10567 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10556 "/** 1111 1101 0111 0010 0010 rdst fadd
#%1, %0 */", | 10568 "/** 1111 1101 0111 0010 0010 rdst fadd
#%1, %0 */", |
| 10557 op[0], op[1], op[2]); | 10569 op[0], op[1], op[2]); |
| 10558 printf (" rdst = 0x%x\n", rdst); | 10570 printf (" rdst = 0x%x\n", rdst); |
| 10559 } | 10571 } |
| 10560 SYNTAX("fadd #%1, %0"); | 10572 SYNTAX("fadd #%1, %0"); |
| 10561 #line 816 "rx-decode.opc" | 10573 #line 828 "rx-decode.opc" |
| 10562 ID(fadd); DR(rdst); SC(IMM(0)); F__SZ_; | 10574 ID(fadd); DR(rdst); SC(IMM(0)); F__SZ_; |
| 10563 | 10575 |
| 10564 } | 10576 } |
| 10565 break; | 10577 break; |
| 10566 case 0x30: | 10578 case 0x30: |
| 10567 { | 10579 { |
| 10568 /** 1111 1101 0111 0010 0011 rdst fmul #%1, %0 */ | 10580 /** 1111 1101 0111 0010 0011 rdst fmul #%1, %0 */ |
| 10569 #line 837 "rx-decode.opc" | 10581 #line 849 "rx-decode.opc" |
| 10570 int rdst AU = op[2] & 0x0f; | 10582 int rdst AU = op[2] & 0x0f; |
| 10571 if (trace) | 10583 if (trace) |
| 10572 { | 10584 { |
| 10573 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10585 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10574 "/** 1111 1101 0111 0010 0011 rdst fmul
#%1, %0 */", | 10586 "/** 1111 1101 0111 0010 0011 rdst fmul
#%1, %0 */", |
| 10575 op[0], op[1], op[2]); | 10587 op[0], op[1], op[2]); |
| 10576 printf (" rdst = 0x%x\n", rdst); | 10588 printf (" rdst = 0x%x\n", rdst); |
| 10577 } | 10589 } |
| 10578 SYNTAX("fmul #%1, %0"); | 10590 SYNTAX("fmul #%1, %0"); |
| 10579 #line 837 "rx-decode.opc" | 10591 #line 849 "rx-decode.opc" |
| 10580 ID(fmul); DR(rdst); SC(IMM(0)); F__SZ_; | 10592 ID(fmul); DR(rdst); SC(IMM(0)); F__SZ_; |
| 10581 | 10593 |
| 10582 } | 10594 } |
| 10583 break; | 10595 break; |
| 10584 case 0x40: | 10596 case 0x40: |
| 10585 { | 10597 { |
| 10586 /** 1111 1101 0111 0010 0100 rdst fdiv #%1, %0 */ | 10598 /** 1111 1101 0111 0010 0100 rdst fdiv #%1, %0 */ |
| 10587 #line 843 "rx-decode.opc" | 10599 #line 855 "rx-decode.opc" |
| 10588 int rdst AU = op[2] & 0x0f; | 10600 int rdst AU = op[2] & 0x0f; |
| 10589 if (trace) | 10601 if (trace) |
| 10590 { | 10602 { |
| 10591 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10603 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10592 "/** 1111 1101 0111 0010 0100 rdst fdiv
#%1, %0 */", | 10604 "/** 1111 1101 0111 0010 0100 rdst fdiv
#%1, %0 */", |
| 10593 op[0], op[1], op[2]); | 10605 op[0], op[1], op[2]); |
| 10594 printf (" rdst = 0x%x\n", rdst); | 10606 printf (" rdst = 0x%x\n", rdst); |
| 10595 } | 10607 } |
| 10596 SYNTAX("fdiv #%1, %0"); | 10608 SYNTAX("fdiv #%1, %0"); |
| 10597 #line 843 "rx-decode.opc" | 10609 #line 855 "rx-decode.opc" |
| 10598 ID(fdiv); DR(rdst); SC(IMM(0)); F__SZ_; | 10610 ID(fdiv); DR(rdst); SC(IMM(0)); F__SZ_; |
| 10599 | 10611 |
| 10600 } | 10612 } |
| 10601 break; | 10613 break; |
| 10602 default: UNSUPPORTED(); break; | 10614 default: UNSUPPORTED(); break; |
| 10603 } | 10615 } |
| 10604 break; | 10616 break; |
| 10605 case 0x73: | 10617 case 0x73: |
| 10606 GETBYTE (); | 10618 GETBYTE (); |
| 10607 switch (op[2] & 0xe0) | 10619 switch (op[2] & 0xe0) |
| 10608 { | 10620 { |
| 10609 case 0x00: | 10621 case 0x00: |
| 10610 op_semantics_89: | 10622 op_semantics_89: |
| 10611 { | 10623 { |
| 10612 /** 1111 1101 0111 im11 000crdst mvtc #%1, %0 */ | 10624 /** 1111 1101 0111 im11 000crdst mvtc #%1, %0 */ |
| 10613 #line 925 "rx-decode.opc" | 10625 #line 937 "rx-decode.opc" |
| 10614 int im AU = (op[1] >> 2) & 0x03; | 10626 int im AU = (op[1] >> 2) & 0x03; |
| 10615 #line 925 "rx-decode.opc" | 10627 #line 937 "rx-decode.opc" |
| 10616 int crdst AU = op[2] & 0x1f; | 10628 int crdst AU = op[2] & 0x1f; |
| 10617 if (trace) | 10629 if (trace) |
| 10618 { | 10630 { |
| 10619 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10631 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10620 "/** 1111 1101 0111 im11 000crdst mvtc
#%1, %0 */", | 10632 "/** 1111 1101 0111 im11 000crdst mvtc
#%1, %0 */", |
| 10621 op[0], op[1], op[2]); | 10633 op[0], op[1], op[2]); |
| 10622 printf (" im = 0x%x,", im); | 10634 printf (" im = 0x%x,", im); |
| 10623 printf (" crdst = 0x%x\n", crdst); | 10635 printf (" crdst = 0x%x\n", crdst); |
| 10624 } | 10636 } |
| 10625 SYNTAX("mvtc #%1, %0"); | 10637 SYNTAX("mvtc #%1, %0"); |
| 10626 #line 925 "rx-decode.opc" | 10638 #line 937 "rx-decode.opc" |
| 10627 ID(mov); SC(IMMex(im)); DR(crdst + 16); | 10639 ID(mov); SC(IMMex(im)); DR(crdst + 16); |
| 10628 | 10640 |
| 10629 } | 10641 } |
| 10630 break; | 10642 break; |
| 10631 default: UNSUPPORTED(); break; | 10643 default: UNSUPPORTED(); break; |
| 10632 } | 10644 } |
| 10633 break; | 10645 break; |
| 10634 case 0x74: | 10646 case 0x74: |
| 10635 GETBYTE (); | 10647 GETBYTE (); |
| 10636 switch (op[2] & 0xf0) | 10648 switch (op[2] & 0xf0) |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10782 } | 10794 } |
| 10783 break; | 10795 break; |
| 10784 case 0x80: | 10796 case 0x80: |
| 10785 GETBYTE (); | 10797 GETBYTE (); |
| 10786 switch (op[2] & 0x00) | 10798 switch (op[2] & 0x00) |
| 10787 { | 10799 { |
| 10788 case 0x00: | 10800 case 0x00: |
| 10789 op_semantics_90: | 10801 op_semantics_90: |
| 10790 { | 10802 { |
| 10791 /** 1111 1101 100immmm rsrc rdst shlr #%2, %1, %0 */ | 10803 /** 1111 1101 100immmm rsrc rdst shlr #%2, %1, %0 */ |
| 10792 #line 658 "rx-decode.opc" | 10804 #line 670 "rx-decode.opc" |
| 10793 int immmm AU = op[1] & 0x1f; | 10805 int immmm AU = op[1] & 0x1f; |
| 10794 #line 658 "rx-decode.opc" | 10806 #line 670 "rx-decode.opc" |
| 10795 int rsrc AU = (op[2] >> 4) & 0x0f; | 10807 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 10796 #line 658 "rx-decode.opc" | 10808 #line 670 "rx-decode.opc" |
| 10797 int rdst AU = op[2] & 0x0f; | 10809 int rdst AU = op[2] & 0x0f; |
| 10798 if (trace) | 10810 if (trace) |
| 10799 { | 10811 { |
| 10800 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 10812 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 10801 "/** 1111 1101 100immmm rsrc rdst shlr
#%2, %1, %0 */", | 10813 "/** 1111 1101 100immmm rsrc rdst shlr
#%2, %1, %0 */", |
| 10802 op[0], op[1], op[2]); | 10814 op[0], op[1], op[2]); |
| 10803 printf (" immmm = 0x%x,", immmm); | 10815 printf (" immmm = 0x%x,", immmm); |
| 10804 printf (" rsrc = 0x%x,", rsrc); | 10816 printf (" rsrc = 0x%x,", rsrc); |
| 10805 printf (" rdst = 0x%x\n", rdst); | 10817 printf (" rdst = 0x%x\n", rdst); |
| 10806 } | 10818 } |
| 10807 SYNTAX("shlr #%2, %1, %0"); | 10819 SYNTAX("shlr #%2, %1, %0"); |
| 10808 #line 658 "rx-decode.opc" | 10820 #line 670 "rx-decode.opc" |
| 10809 ID(shlr); S2C(immmm); SR(rsrc); DR(rdst); F__SZC; | 10821 ID(shlr); S2C(immmm); SR(rsrc); DR(rdst); F__SZC; |
| 10810 | 10822 |
| 10811 /*----------------------------------------------------------
------------*/ | 10823 /*----------------------------------------------------------
------------*/ |
| 10812 /* ROTATE
*/ | 10824 /* ROTATE
*/ |
| 10813 | 10825 |
| 10814 } | 10826 } |
| 10815 break; | 10827 break; |
| 10816 } | 10828 } |
| 10817 break; | 10829 break; |
| 10818 case 0x81: | 10830 case 0x81: |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11095 } | 11107 } |
| 11096 break; | 11108 break; |
| 11097 case 0xa0: | 11109 case 0xa0: |
| 11098 GETBYTE (); | 11110 GETBYTE (); |
| 11099 switch (op[2] & 0x00) | 11111 switch (op[2] & 0x00) |
| 11100 { | 11112 { |
| 11101 case 0x00: | 11113 case 0x00: |
| 11102 op_semantics_91: | 11114 op_semantics_91: |
| 11103 { | 11115 { |
| 11104 /** 1111 1101 101immmm rsrc rdst shar #%2, %1, %0 */ | 11116 /** 1111 1101 101immmm rsrc rdst shar #%2, %1, %0 */ |
| 11105 #line 648 "rx-decode.opc" | 11117 #line 660 "rx-decode.opc" |
| 11106 int immmm AU = op[1] & 0x1f; | 11118 int immmm AU = op[1] & 0x1f; |
| 11107 #line 648 "rx-decode.opc" | 11119 #line 660 "rx-decode.opc" |
| 11108 int rsrc AU = (op[2] >> 4) & 0x0f; | 11120 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 11109 #line 648 "rx-decode.opc" | 11121 #line 660 "rx-decode.opc" |
| 11110 int rdst AU = op[2] & 0x0f; | 11122 int rdst AU = op[2] & 0x0f; |
| 11111 if (trace) | 11123 if (trace) |
| 11112 { | 11124 { |
| 11113 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 11125 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 11114 "/** 1111 1101 101immmm rsrc rdst shar
#%2, %1, %0 */", | 11126 "/** 1111 1101 101immmm rsrc rdst shar
#%2, %1, %0 */", |
| 11115 op[0], op[1], op[2]); | 11127 op[0], op[1], op[2]); |
| 11116 printf (" immmm = 0x%x,", immmm); | 11128 printf (" immmm = 0x%x,", immmm); |
| 11117 printf (" rsrc = 0x%x,", rsrc); | 11129 printf (" rsrc = 0x%x,", rsrc); |
| 11118 printf (" rdst = 0x%x\n", rdst); | 11130 printf (" rdst = 0x%x\n", rdst); |
| 11119 } | 11131 } |
| 11120 SYNTAX("shar #%2, %1, %0"); | 11132 SYNTAX("shar #%2, %1, %0"); |
| 11121 #line 648 "rx-decode.opc" | 11133 #line 660 "rx-decode.opc" |
| 11122 ID(shar); S2C(immmm); SR(rsrc); DR(rdst); F_0SZC; | 11134 ID(shar); S2C(immmm); SR(rsrc); DR(rdst); F_0SZC; |
| 11123 | 11135 |
| 11124 | 11136 |
| 11125 } | 11137 } |
| 11126 break; | 11138 break; |
| 11127 } | 11139 } |
| 11128 break; | 11140 break; |
| 11129 case 0xa1: | 11141 case 0xa1: |
| 11130 GETBYTE (); | 11142 GETBYTE (); |
| 11131 switch (op[2] & 0x00) | 11143 switch (op[2] & 0x00) |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11406 } | 11418 } |
| 11407 break; | 11419 break; |
| 11408 case 0xc0: | 11420 case 0xc0: |
| 11409 GETBYTE (); | 11421 GETBYTE (); |
| 11410 switch (op[2] & 0x00) | 11422 switch (op[2] & 0x00) |
| 11411 { | 11423 { |
| 11412 case 0x00: | 11424 case 0x00: |
| 11413 op_semantics_92: | 11425 op_semantics_92: |
| 11414 { | 11426 { |
| 11415 /** 1111 1101 110immmm rsrc rdst shll #%2, %1, %0 */ | 11427 /** 1111 1101 110immmm rsrc rdst shll #%2, %1, %0 */ |
| 11416 #line 638 "rx-decode.opc" | 11428 #line 650 "rx-decode.opc" |
| 11417 int immmm AU = op[1] & 0x1f; | 11429 int immmm AU = op[1] & 0x1f; |
| 11418 #line 638 "rx-decode.opc" | 11430 #line 650 "rx-decode.opc" |
| 11419 int rsrc AU = (op[2] >> 4) & 0x0f; | 11431 int rsrc AU = (op[2] >> 4) & 0x0f; |
| 11420 #line 638 "rx-decode.opc" | 11432 #line 650 "rx-decode.opc" |
| 11421 int rdst AU = op[2] & 0x0f; | 11433 int rdst AU = op[2] & 0x0f; |
| 11422 if (trace) | 11434 if (trace) |
| 11423 { | 11435 { |
| 11424 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 11436 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 11425 "/** 1111 1101 110immmm rsrc rdst shll
#%2, %1, %0 */", | 11437 "/** 1111 1101 110immmm rsrc rdst shll
#%2, %1, %0 */", |
| 11426 op[0], op[1], op[2]); | 11438 op[0], op[1], op[2]); |
| 11427 printf (" immmm = 0x%x,", immmm); | 11439 printf (" immmm = 0x%x,", immmm); |
| 11428 printf (" rsrc = 0x%x,", rsrc); | 11440 printf (" rsrc = 0x%x,", rsrc); |
| 11429 printf (" rdst = 0x%x\n", rdst); | 11441 printf (" rdst = 0x%x\n", rdst); |
| 11430 } | 11442 } |
| 11431 SYNTAX("shll #%2, %1, %0"); | 11443 SYNTAX("shll #%2, %1, %0"); |
| 11432 #line 638 "rx-decode.opc" | 11444 #line 650 "rx-decode.opc" |
| 11433 ID(shll); S2C(immmm); SR(rsrc); DR(rdst); F_OSZC; | 11445 ID(shll); S2C(immmm); SR(rsrc); DR(rdst); F_OSZC; |
| 11434 | 11446 |
| 11435 | 11447 |
| 11436 } | 11448 } |
| 11437 break; | 11449 break; |
| 11438 } | 11450 } |
| 11439 break; | 11451 break; |
| 11440 case 0xc1: | 11452 case 0xc1: |
| 11441 GETBYTE (); | 11453 GETBYTE (); |
| 11442 switch (op[2] & 0x00) | 11454 switch (op[2] & 0x00) |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11731 case 0x80: | 11743 case 0x80: |
| 11732 case 0x90: | 11744 case 0x90: |
| 11733 case 0xa0: | 11745 case 0xa0: |
| 11734 case 0xb0: | 11746 case 0xb0: |
| 11735 case 0xc0: | 11747 case 0xc0: |
| 11736 case 0xd0: | 11748 case 0xd0: |
| 11737 case 0xe0: | 11749 case 0xe0: |
| 11738 op_semantics_93: | 11750 op_semantics_93: |
| 11739 { | 11751 { |
| 11740 /** 1111 1101 111 bittt cond rdst bm%2 #%1, %0%S0 */ | 11752 /** 1111 1101 111 bittt cond rdst bm%2 #%1, %0%S0 */ |
| 11741 #line 904 "rx-decode.opc" | 11753 #line 916 "rx-decode.opc" |
| 11742 int bittt AU = op[1] & 0x1f; | 11754 int bittt AU = op[1] & 0x1f; |
| 11743 #line 904 "rx-decode.opc" | 11755 #line 916 "rx-decode.opc" |
| 11744 int cond AU = (op[2] >> 4) & 0x0f; | 11756 int cond AU = (op[2] >> 4) & 0x0f; |
| 11745 #line 904 "rx-decode.opc" | 11757 #line 916 "rx-decode.opc" |
| 11746 int rdst AU = op[2] & 0x0f; | 11758 int rdst AU = op[2] & 0x0f; |
| 11747 if (trace) | 11759 if (trace) |
| 11748 { | 11760 { |
| 11749 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 11761 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 11750 "/** 1111 1101 111 bittt cond rdst bm%2
#%1, %0%S0 */", | 11762 "/** 1111 1101 111 bittt cond rdst bm%2
#%1, %0%S0 */", |
| 11751 op[0], op[1], op[2]); | 11763 op[0], op[1], op[2]); |
| 11752 printf (" bittt = 0x%x,", bittt); | 11764 printf (" bittt = 0x%x,", bittt); |
| 11753 printf (" cond = 0x%x,", cond); | 11765 printf (" cond = 0x%x,", cond); |
| 11754 printf (" rdst = 0x%x\n", rdst); | 11766 printf (" rdst = 0x%x\n", rdst); |
| 11755 } | 11767 } |
| 11756 SYNTAX("bm%2 #%1, %0%S0"); | 11768 SYNTAX("bm%2 #%1, %0%S0"); |
| 11757 #line 904 "rx-decode.opc" | 11769 #line 916 "rx-decode.opc" |
| 11758 ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst); | 11770 ID(bmcc); BWL(LSIZE); S2cc(cond); SC(bittt); DR(rdst); |
| 11759 | 11771 |
| 11760 /*----------------------------------------------------------
------------*/ | 11772 /*----------------------------------------------------------
------------*/ |
| 11761 /* CONTROL REGISTERS
*/ | 11773 /* CONTROL REGISTERS
*/ |
| 11762 | 11774 |
| 11763 } | 11775 } |
| 11764 break; | 11776 break; |
| 11765 case 0xf0: | 11777 case 0xf0: |
| 11766 op_semantics_94: | 11778 op_semantics_94: |
| 11767 { | 11779 { |
| 11768 /** 1111 1101 111bittt 1111 rdst bnot #%1, %0 */ | 11780 /** 1111 1101 111bittt 1111 rdst bnot #%1, %0 */ |
| 11769 #line 897 "rx-decode.opc" | 11781 #line 909 "rx-decode.opc" |
| 11770 int bittt AU = op[1] & 0x1f; | 11782 int bittt AU = op[1] & 0x1f; |
| 11771 #line 897 "rx-decode.opc" | 11783 #line 909 "rx-decode.opc" |
| 11772 int rdst AU = op[2] & 0x0f; | 11784 int rdst AU = op[2] & 0x0f; |
| 11773 if (trace) | 11785 if (trace) |
| 11774 { | 11786 { |
| 11775 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 11787 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 11776 "/** 1111 1101 111bittt 1111 rdst bnot
#%1, %0 */", | 11788 "/** 1111 1101 111bittt 1111 rdst bnot
#%1, %0 */", |
| 11777 op[0], op[1], op[2]); | 11789 op[0], op[1], op[2]); |
| 11778 printf (" bittt = 0x%x,", bittt); | 11790 printf (" bittt = 0x%x,", bittt); |
| 11779 printf (" rdst = 0x%x\n", rdst); | 11791 printf (" rdst = 0x%x\n", rdst); |
| 11780 } | 11792 } |
| 11781 SYNTAX("bnot #%1, %0"); | 11793 SYNTAX("bnot #%1, %0"); |
| 11782 #line 897 "rx-decode.opc" | 11794 #line 909 "rx-decode.opc" |
| 11783 ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst); | 11795 ID(bnot); BWL(LSIZE); SC(bittt); DR(rdst); |
| 11784 | 11796 |
| 11785 | 11797 |
| 11786 } | 11798 } |
| 11787 break; | 11799 break; |
| 11788 } | 11800 } |
| 11789 break; | 11801 break; |
| 11790 case 0xe1: | 11802 case 0xe1: |
| 11791 GETBYTE (); | 11803 GETBYTE (); |
| 11792 switch (op[2] & 0xf0) | 11804 switch (op[2] & 0xf0) |
| (...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12601 switch (op[1] & 0xff) | 12613 switch (op[1] & 0xff) |
| 12602 { | 12614 { |
| 12603 case 0x00: | 12615 case 0x00: |
| 12604 GETBYTE (); | 12616 GETBYTE (); |
| 12605 switch (op[2] & 0x00) | 12617 switch (op[2] & 0x00) |
| 12606 { | 12618 { |
| 12607 case 0x00: | 12619 case 0x00: |
| 12608 op_semantics_95: | 12620 op_semantics_95: |
| 12609 { | 12621 { |
| 12610 /** 1111 1110 00sz isrc bsrc rdst mov%s %0, [%1, %2] */ | 12622 /** 1111 1110 00sz isrc bsrc rdst mov%s %0, [%1, %2] */ |
| 12611 #line 302 "rx-decode.opc" | 12623 #line 314 "rx-decode.opc" |
| 12612 int sz AU = (op[1] >> 4) & 0x03; | 12624 int sz AU = (op[1] >> 4) & 0x03; |
| 12613 #line 302 "rx-decode.opc" | 12625 #line 314 "rx-decode.opc" |
| 12614 int isrc AU = op[1] & 0x0f; | 12626 int isrc AU = op[1] & 0x0f; |
| 12615 #line 302 "rx-decode.opc" | 12627 #line 314 "rx-decode.opc" |
| 12616 int bsrc AU = (op[2] >> 4) & 0x0f; | 12628 int bsrc AU = (op[2] >> 4) & 0x0f; |
| 12617 #line 302 "rx-decode.opc" | 12629 #line 314 "rx-decode.opc" |
| 12618 int rdst AU = op[2] & 0x0f; | 12630 int rdst AU = op[2] & 0x0f; |
| 12619 if (trace) | 12631 if (trace) |
| 12620 { | 12632 { |
| 12621 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 12633 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 12622 "/** 1111 1110 00sz isrc bsrc rdst mov%s
%0, [%1, %2] */", | 12634 "/** 1111 1110 00sz isrc bsrc rdst mov%s
%0, [%1, %2] */", |
| 12623 op[0], op[1], op[2]); | 12635 op[0], op[1], op[2]); |
| 12624 printf (" sz = 0x%x,", sz); | 12636 printf (" sz = 0x%x,", sz); |
| 12625 printf (" isrc = 0x%x,", isrc); | 12637 printf (" isrc = 0x%x,", isrc); |
| 12626 printf (" bsrc = 0x%x,", bsrc); | 12638 printf (" bsrc = 0x%x,", bsrc); |
| 12627 printf (" rdst = 0x%x\n", rdst); | 12639 printf (" rdst = 0x%x\n", rdst); |
| 12628 } | 12640 } |
| 12629 SYNTAX("mov%s %0, [%1, %2]"); | 12641 SYNTAX("mov%s %0, [%1, %2]"); |
| 12630 #line 302 "rx-decode.opc" | 12642 #line 314 "rx-decode.opc" |
| 12631 ID(movbir); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F___
__; | 12643 ID(movbir); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F___
__; |
| 12632 | 12644 |
| 12633 } | 12645 } |
| 12634 break; | 12646 break; |
| 12635 } | 12647 } |
| 12636 break; | 12648 break; |
| 12637 case 0x01: | 12649 case 0x01: |
| 12638 GETBYTE (); | 12650 GETBYTE (); |
| 12639 switch (op[2] & 0x00) | 12651 switch (op[2] & 0x00) |
| 12640 { | 12652 { |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13058 } | 13070 } |
| 13059 break; | 13071 break; |
| 13060 case 0x40: | 13072 case 0x40: |
| 13061 GETBYTE (); | 13073 GETBYTE (); |
| 13062 switch (op[2] & 0x00) | 13074 switch (op[2] & 0x00) |
| 13063 { | 13075 { |
| 13064 case 0x00: | 13076 case 0x00: |
| 13065 op_semantics_96: | 13077 op_semantics_96: |
| 13066 { | 13078 { |
| 13067 /** 1111 1110 01sz isrc bsrc rdst mov%s [%1, %2], %0 */ | 13079 /** 1111 1110 01sz isrc bsrc rdst mov%s [%1, %2], %0 */ |
| 13068 #line 299 "rx-decode.opc" | 13080 #line 311 "rx-decode.opc" |
| 13069 int sz AU = (op[1] >> 4) & 0x03; | 13081 int sz AU = (op[1] >> 4) & 0x03; |
| 13070 #line 299 "rx-decode.opc" | 13082 #line 311 "rx-decode.opc" |
| 13071 int isrc AU = op[1] & 0x0f; | 13083 int isrc AU = op[1] & 0x0f; |
| 13072 #line 299 "rx-decode.opc" | 13084 #line 311 "rx-decode.opc" |
| 13073 int bsrc AU = (op[2] >> 4) & 0x0f; | 13085 int bsrc AU = (op[2] >> 4) & 0x0f; |
| 13074 #line 299 "rx-decode.opc" | 13086 #line 311 "rx-decode.opc" |
| 13075 int rdst AU = op[2] & 0x0f; | 13087 int rdst AU = op[2] & 0x0f; |
| 13076 if (trace) | 13088 if (trace) |
| 13077 { | 13089 { |
| 13078 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 13090 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 13079 "/** 1111 1110 01sz isrc bsrc rdst mov%s
[%1, %2], %0 */", | 13091 "/** 1111 1110 01sz isrc bsrc rdst mov%s
[%1, %2], %0 */", |
| 13080 op[0], op[1], op[2]); | 13092 op[0], op[1], op[2]); |
| 13081 printf (" sz = 0x%x,", sz); | 13093 printf (" sz = 0x%x,", sz); |
| 13082 printf (" isrc = 0x%x,", isrc); | 13094 printf (" isrc = 0x%x,", isrc); |
| 13083 printf (" bsrc = 0x%x,", bsrc); | 13095 printf (" bsrc = 0x%x,", bsrc); |
| 13084 printf (" rdst = 0x%x\n", rdst); | 13096 printf (" rdst = 0x%x\n", rdst); |
| 13085 } | 13097 } |
| 13086 SYNTAX("mov%s [%1, %2], %0"); | 13098 SYNTAX("mov%s [%1, %2], %0"); |
| 13087 #line 299 "rx-decode.opc" | 13099 #line 311 "rx-decode.opc" |
| 13088 ID(movbi); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F____
_; | 13100 ID(movbi); sBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F____
_; |
| 13089 | 13101 |
| 13090 } | 13102 } |
| 13091 break; | 13103 break; |
| 13092 } | 13104 } |
| 13093 break; | 13105 break; |
| 13094 case 0x41: | 13106 case 0x41: |
| 13095 GETBYTE (); | 13107 GETBYTE (); |
| 13096 switch (op[2] & 0x00) | 13108 switch (op[2] & 0x00) |
| 13097 { | 13109 { |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13515 } | 13527 } |
| 13516 break; | 13528 break; |
| 13517 case 0xc0: | 13529 case 0xc0: |
| 13518 GETBYTE (); | 13530 GETBYTE (); |
| 13519 switch (op[2] & 0x00) | 13531 switch (op[2] & 0x00) |
| 13520 { | 13532 { |
| 13521 case 0x00: | 13533 case 0x00: |
| 13522 op_semantics_97: | 13534 op_semantics_97: |
| 13523 { | 13535 { |
| 13524 /** 1111 1110 11sz isrc bsrc rdst movu%s [%1, %2], %0 */ | 13536 /** 1111 1110 11sz isrc bsrc rdst movu%s [%1, %2], %0 */ |
| 13525 #line 305 "rx-decode.opc" | 13537 #line 317 "rx-decode.opc" |
| 13526 int sz AU = (op[1] >> 4) & 0x03; | 13538 int sz AU = (op[1] >> 4) & 0x03; |
| 13527 #line 305 "rx-decode.opc" | 13539 #line 317 "rx-decode.opc" |
| 13528 int isrc AU = op[1] & 0x0f; | 13540 int isrc AU = op[1] & 0x0f; |
| 13529 #line 305 "rx-decode.opc" | 13541 #line 317 "rx-decode.opc" |
| 13530 int bsrc AU = (op[2] >> 4) & 0x0f; | 13542 int bsrc AU = (op[2] >> 4) & 0x0f; |
| 13531 #line 305 "rx-decode.opc" | 13543 #line 317 "rx-decode.opc" |
| 13532 int rdst AU = op[2] & 0x0f; | 13544 int rdst AU = op[2] & 0x0f; |
| 13533 if (trace) | 13545 if (trace) |
| 13534 { | 13546 { |
| 13535 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 13547 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 13536 "/** 1111 1110 11sz isrc bsrc rdst movu%s
[%1, %2], %0 */", | 13548 "/** 1111 1110 11sz isrc bsrc rdst movu%s
[%1, %2], %0 */", |
| 13537 op[0], op[1], op[2]); | 13549 op[0], op[1], op[2]); |
| 13538 printf (" sz = 0x%x,", sz); | 13550 printf (" sz = 0x%x,", sz); |
| 13539 printf (" isrc = 0x%x,", isrc); | 13551 printf (" isrc = 0x%x,", isrc); |
| 13540 printf (" bsrc = 0x%x,", bsrc); | 13552 printf (" bsrc = 0x%x,", bsrc); |
| 13541 printf (" rdst = 0x%x\n", rdst); | 13553 printf (" rdst = 0x%x\n", rdst); |
| 13542 } | 13554 } |
| 13543 SYNTAX("movu%s [%1, %2], %0"); | 13555 SYNTAX("movu%s [%1, %2], %0"); |
| 13544 #line 305 "rx-decode.opc" | 13556 #line 317 "rx-decode.opc" |
| 13545 ID(movbi); uBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F____
_; | 13557 ID(movbi); uBWL(sz); DR(rdst); SRR(isrc); S2R(bsrc); F____
_; |
| 13546 | 13558 |
| 13547 } | 13559 } |
| 13548 break; | 13560 break; |
| 13549 } | 13561 } |
| 13550 break; | 13562 break; |
| 13551 case 0xc1: | 13563 case 0xc1: |
| 13552 GETBYTE (); | 13564 GETBYTE (); |
| 13553 switch (op[2] & 0x00) | 13565 switch (op[2] & 0x00) |
| 13554 { | 13566 { |
| (...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13979 switch (op[1] & 0xff) | 13991 switch (op[1] & 0xff) |
| 13980 { | 13992 { |
| 13981 case 0x00: | 13993 case 0x00: |
| 13982 GETBYTE (); | 13994 GETBYTE (); |
| 13983 switch (op[2] & 0x00) | 13995 switch (op[2] & 0x00) |
| 13984 { | 13996 { |
| 13985 case 0x00: | 13997 case 0x00: |
| 13986 op_semantics_98: | 13998 op_semantics_98: |
| 13987 { | 13999 { |
| 13988 /** 1111 1111 0000 rdst srca srcb sub %2, %1, %0 */ | 14000 /** 1111 1111 0000 rdst srca srcb sub %2, %1, %0 */ |
| 13989 #line 509 "rx-decode.opc" | 14001 #line 521 "rx-decode.opc" |
| 13990 int rdst AU = op[1] & 0x0f; | 14002 int rdst AU = op[1] & 0x0f; |
| 13991 #line 509 "rx-decode.opc" | 14003 #line 521 "rx-decode.opc" |
| 13992 int srca AU = (op[2] >> 4) & 0x0f; | 14004 int srca AU = (op[2] >> 4) & 0x0f; |
| 13993 #line 509 "rx-decode.opc" | 14005 #line 521 "rx-decode.opc" |
| 13994 int srcb AU = op[2] & 0x0f; | 14006 int srcb AU = op[2] & 0x0f; |
| 13995 if (trace) | 14007 if (trace) |
| 13996 { | 14008 { |
| 13997 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 14009 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 13998 "/** 1111 1111 0000 rdst srca srcb sub
%2, %1, %0 */", | 14010 "/** 1111 1111 0000 rdst srca srcb sub
%2, %1, %0 */", |
| 13999 op[0], op[1], op[2]); | 14011 op[0], op[1], op[2]); |
| 14000 printf (" rdst = 0x%x,", rdst); | 14012 printf (" rdst = 0x%x,", rdst); |
| 14001 printf (" srca = 0x%x,", srca); | 14013 printf (" srca = 0x%x,", srca); |
| 14002 printf (" srcb = 0x%x\n", srcb); | 14014 printf (" srcb = 0x%x\n", srcb); |
| 14003 } | 14015 } |
| 14004 SYNTAX("sub %2, %1, %0"); | 14016 SYNTAX("sub %2, %1, %0"); |
| 14005 #line 509 "rx-decode.opc" | 14017 #line 521 "rx-decode.opc" |
| 14006 ID(sub); DR(rdst); SR(srcb); S2R(srca); F_OSZC; | 14018 ID(sub); DR(rdst); SR(srcb); S2R(srca); F_OSZC; |
| 14007 | 14019 |
| 14008 /*----------------------------------------------------------
------------*/ | 14020 /*----------------------------------------------------------
------------*/ |
| 14009 /* SBB
*/ | 14021 /* SBB
*/ |
| 14010 | 14022 |
| 14011 } | 14023 } |
| 14012 break; | 14024 break; |
| 14013 } | 14025 } |
| 14014 break; | 14026 break; |
| 14015 case 0x01: | 14027 case 0x01: |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14148 } | 14160 } |
| 14149 break; | 14161 break; |
| 14150 case 0x20: | 14162 case 0x20: |
| 14151 GETBYTE (); | 14163 GETBYTE (); |
| 14152 switch (op[2] & 0x00) | 14164 switch (op[2] & 0x00) |
| 14153 { | 14165 { |
| 14154 case 0x00: | 14166 case 0x00: |
| 14155 op_semantics_99: | 14167 op_semantics_99: |
| 14156 { | 14168 { |
| 14157 /** 1111 1111 0010 rdst srca srcb add %2, %1, %0 */ | 14169 /** 1111 1111 0010 rdst srca srcb add %2, %1, %0 */ |
| 14158 #line 476 "rx-decode.opc" | 14170 #line 488 "rx-decode.opc" |
| 14159 int rdst AU = op[1] & 0x0f; | 14171 int rdst AU = op[1] & 0x0f; |
| 14160 #line 476 "rx-decode.opc" | 14172 #line 488 "rx-decode.opc" |
| 14161 int srca AU = (op[2] >> 4) & 0x0f; | 14173 int srca AU = (op[2] >> 4) & 0x0f; |
| 14162 #line 476 "rx-decode.opc" | 14174 #line 488 "rx-decode.opc" |
| 14163 int srcb AU = op[2] & 0x0f; | 14175 int srcb AU = op[2] & 0x0f; |
| 14164 if (trace) | 14176 if (trace) |
| 14165 { | 14177 { |
| 14166 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 14178 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 14167 "/** 1111 1111 0010 rdst srca srcb add
%2, %1, %0 */", | 14179 "/** 1111 1111 0010 rdst srca srcb add
%2, %1, %0 */", |
| 14168 op[0], op[1], op[2]); | 14180 op[0], op[1], op[2]); |
| 14169 printf (" rdst = 0x%x,", rdst); | 14181 printf (" rdst = 0x%x,", rdst); |
| 14170 printf (" srca = 0x%x,", srca); | 14182 printf (" srca = 0x%x,", srca); |
| 14171 printf (" srcb = 0x%x\n", srcb); | 14183 printf (" srcb = 0x%x\n", srcb); |
| 14172 } | 14184 } |
| 14173 SYNTAX("add %2, %1, %0"); | 14185 SYNTAX("add %2, %1, %0"); |
| 14174 #line 476 "rx-decode.opc" | 14186 #line 488 "rx-decode.opc" |
| 14175 ID(add); DR(rdst); SR(srcb); S2R(srca); F_OSZC; | 14187 ID(add); DR(rdst); SR(srcb); S2R(srca); F_OSZC; |
| 14176 | 14188 |
| 14177 /*----------------------------------------------------------
------------*/ | 14189 /*----------------------------------------------------------
------------*/ |
| 14178 /* CMP
*/ | 14190 /* CMP
*/ |
| 14179 | 14191 |
| 14180 } | 14192 } |
| 14181 break; | 14193 break; |
| 14182 } | 14194 } |
| 14183 break; | 14195 break; |
| 14184 case 0x21: | 14196 case 0x21: |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14317 } | 14329 } |
| 14318 break; | 14330 break; |
| 14319 case 0x30: | 14331 case 0x30: |
| 14320 GETBYTE (); | 14332 GETBYTE (); |
| 14321 switch (op[2] & 0x00) | 14333 switch (op[2] & 0x00) |
| 14322 { | 14334 { |
| 14323 case 0x00: | 14335 case 0x00: |
| 14324 op_semantics_100: | 14336 op_semantics_100: |
| 14325 { | 14337 { |
| 14326 /** 1111 1111 0011 rdst srca srcb mul %2, %1, %0 */ | 14338 /** 1111 1111 0011 rdst srca srcb mul %2, %1, %0 */ |
| 14327 #line 578 "rx-decode.opc" | 14339 #line 590 "rx-decode.opc" |
| 14328 int rdst AU = op[1] & 0x0f; | 14340 int rdst AU = op[1] & 0x0f; |
| 14329 #line 578 "rx-decode.opc" | 14341 #line 590 "rx-decode.opc" |
| 14330 int srca AU = (op[2] >> 4) & 0x0f; | 14342 int srca AU = (op[2] >> 4) & 0x0f; |
| 14331 #line 578 "rx-decode.opc" | 14343 #line 590 "rx-decode.opc" |
| 14332 int srcb AU = op[2] & 0x0f; | 14344 int srcb AU = op[2] & 0x0f; |
| 14333 if (trace) | 14345 if (trace) |
| 14334 { | 14346 { |
| 14335 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 14347 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 14336 "/** 1111 1111 0011 rdst srca srcb mul
%2, %1, %0 */", | 14348 "/** 1111 1111 0011 rdst srca srcb mul
%2, %1, %0 */", |
| 14337 op[0], op[1], op[2]); | 14349 op[0], op[1], op[2]); |
| 14338 printf (" rdst = 0x%x,", rdst); | 14350 printf (" rdst = 0x%x,", rdst); |
| 14339 printf (" srca = 0x%x,", srca); | 14351 printf (" srca = 0x%x,", srca); |
| 14340 printf (" srcb = 0x%x\n", srcb); | 14352 printf (" srcb = 0x%x\n", srcb); |
| 14341 } | 14353 } |
| 14342 SYNTAX("mul %2, %1, %0"); | 14354 SYNTAX("mul %2, %1, %0"); |
| 14343 #line 578 "rx-decode.opc" | 14355 #line 590 "rx-decode.opc" |
| 14344 ID(mul); DR(rdst); SR(srcb); S2R(srca); F_____; | 14356 ID(mul); DR(rdst); SR(srcb); S2R(srca); F_____; |
| 14345 | 14357 |
| 14346 /*----------------------------------------------------------
------------*/ | 14358 /*----------------------------------------------------------
------------*/ |
| 14347 /* EMUL
*/ | 14359 /* EMUL
*/ |
| 14348 | 14360 |
| 14349 } | 14361 } |
| 14350 break; | 14362 break; |
| 14351 } | 14363 } |
| 14352 break; | 14364 break; |
| 14353 case 0x31: | 14365 case 0x31: |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14486 } | 14498 } |
| 14487 break; | 14499 break; |
| 14488 case 0x40: | 14500 case 0x40: |
| 14489 GETBYTE (); | 14501 GETBYTE (); |
| 14490 switch (op[2] & 0x00) | 14502 switch (op[2] & 0x00) |
| 14491 { | 14503 { |
| 14492 case 0x00: | 14504 case 0x00: |
| 14493 op_semantics_101: | 14505 op_semantics_101: |
| 14494 { | 14506 { |
| 14495 /** 1111 1111 0100 rdst srca srcb and %2, %1, %0 */ | 14507 /** 1111 1111 0100 rdst srca srcb and %2, %1, %0 */ |
| 14496 #line 386 "rx-decode.opc" | 14508 #line 398 "rx-decode.opc" |
| 14497 int rdst AU = op[1] & 0x0f; | 14509 int rdst AU = op[1] & 0x0f; |
| 14498 #line 386 "rx-decode.opc" | 14510 #line 398 "rx-decode.opc" |
| 14499 int srca AU = (op[2] >> 4) & 0x0f; | 14511 int srca AU = (op[2] >> 4) & 0x0f; |
| 14500 #line 386 "rx-decode.opc" | 14512 #line 398 "rx-decode.opc" |
| 14501 int srcb AU = op[2] & 0x0f; | 14513 int srcb AU = op[2] & 0x0f; |
| 14502 if (trace) | 14514 if (trace) |
| 14503 { | 14515 { |
| 14504 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 14516 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 14505 "/** 1111 1111 0100 rdst srca srcb and
%2, %1, %0 */", | 14517 "/** 1111 1111 0100 rdst srca srcb and
%2, %1, %0 */", |
| 14506 op[0], op[1], op[2]); | 14518 op[0], op[1], op[2]); |
| 14507 printf (" rdst = 0x%x,", rdst); | 14519 printf (" rdst = 0x%x,", rdst); |
| 14508 printf (" srca = 0x%x,", srca); | 14520 printf (" srca = 0x%x,", srca); |
| 14509 printf (" srcb = 0x%x\n", srcb); | 14521 printf (" srcb = 0x%x\n", srcb); |
| 14510 } | 14522 } |
| 14511 SYNTAX("and %2, %1, %0"); | 14523 SYNTAX("and %2, %1, %0"); |
| 14512 #line 386 "rx-decode.opc" | 14524 #line 398 "rx-decode.opc" |
| 14513 ID(and); DR(rdst); SR(srcb); S2R(srca); F__SZ_; | 14525 ID(and); DR(rdst); SR(srcb); S2R(srca); F__SZ_; |
| 14514 | 14526 |
| 14515 /*----------------------------------------------------------
------------*/ | 14527 /*----------------------------------------------------------
------------*/ |
| 14516 /* OR
*/ | 14528 /* OR
*/ |
| 14517 | 14529 |
| 14518 } | 14530 } |
| 14519 break; | 14531 break; |
| 14520 } | 14532 } |
| 14521 break; | 14533 break; |
| 14522 case 0x41: | 14534 case 0x41: |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14655 } | 14667 } |
| 14656 break; | 14668 break; |
| 14657 case 0x50: | 14669 case 0x50: |
| 14658 GETBYTE (); | 14670 GETBYTE (); |
| 14659 switch (op[2] & 0x00) | 14671 switch (op[2] & 0x00) |
| 14660 { | 14672 { |
| 14661 case 0x00: | 14673 case 0x00: |
| 14662 op_semantics_102: | 14674 op_semantics_102: |
| 14663 { | 14675 { |
| 14664 /** 1111 1111 0101 rdst srca srcb or %2, %1, %0 */ | 14676 /** 1111 1111 0101 rdst srca srcb or %2, %1, %0 */ |
| 14665 #line 404 "rx-decode.opc" | 14677 #line 416 "rx-decode.opc" |
| 14666 int rdst AU = op[1] & 0x0f; | 14678 int rdst AU = op[1] & 0x0f; |
| 14667 #line 404 "rx-decode.opc" | 14679 #line 416 "rx-decode.opc" |
| 14668 int srca AU = (op[2] >> 4) & 0x0f; | 14680 int srca AU = (op[2] >> 4) & 0x0f; |
| 14669 #line 404 "rx-decode.opc" | 14681 #line 416 "rx-decode.opc" |
| 14670 int srcb AU = op[2] & 0x0f; | 14682 int srcb AU = op[2] & 0x0f; |
| 14671 if (trace) | 14683 if (trace) |
| 14672 { | 14684 { |
| 14673 printf ("\033[33m%s\033[0m %02x %02x %02x\n", | 14685 printf ("\033[33m%s\033[0m %02x %02x %02x\n", |
| 14674 "/** 1111 1111 0101 rdst srca srcb or
%2, %1, %0 */", | 14686 "/** 1111 1111 0101 rdst srca srcb or
%2, %1, %0 */", |
| 14675 op[0], op[1], op[2]); | 14687 op[0], op[1], op[2]); |
| 14676 printf (" rdst = 0x%x,", rdst); | 14688 printf (" rdst = 0x%x,", rdst); |
| 14677 printf (" srca = 0x%x,", srca); | 14689 printf (" srca = 0x%x,", srca); |
| 14678 printf (" srcb = 0x%x\n", srcb); | 14690 printf (" srcb = 0x%x\n", srcb); |
| 14679 } | 14691 } |
| 14680 SYNTAX("or %2, %1, %0"); | 14692 SYNTAX("or %2, %1, %0"); |
| 14681 #line 404 "rx-decode.opc" | 14693 #line 416 "rx-decode.opc" |
| 14682 ID(or); DR(rdst); SR(srcb); S2R(srca); F__SZ_; | 14694 ID(or); DR(rdst); SR(srcb); S2R(srca); F__SZ_; |
| 14683 | 14695 |
| 14684 /*----------------------------------------------------------
------------*/ | 14696 /*----------------------------------------------------------
------------*/ |
| 14685 /* XOR
*/ | 14697 /* XOR
*/ |
| 14686 | 14698 |
| 14687 } | 14699 } |
| 14688 break; | 14700 break; |
| 14689 } | 14701 } |
| 14690 break; | 14702 break; |
| 14691 case 0x51: | 14703 case 0x51: |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14821 case 0x00: | 14833 case 0x00: |
| 14822 goto op_semantics_102; | 14834 goto op_semantics_102; |
| 14823 break; | 14835 break; |
| 14824 } | 14836 } |
| 14825 break; | 14837 break; |
| 14826 default: UNSUPPORTED(); break; | 14838 default: UNSUPPORTED(); break; |
| 14827 } | 14839 } |
| 14828 break; | 14840 break; |
| 14829 default: UNSUPPORTED(); break; | 14841 default: UNSUPPORTED(); break; |
| 14830 } | 14842 } |
| 14831 #line 961 "rx-decode.opc" | 14843 #line 973 "rx-decode.opc" |
| 14832 | 14844 |
| 14833 return rx->n_bytes; | 14845 return rx->n_bytes; |
| 14834 } | 14846 } |
| OLD | NEW |