diff options
| author | 2015-01-30 12:43:58 -0500 | |
|---|---|---|
| committer | 2015-01-30 12:43:58 -0500 | |
| commit | 3dfef1701c528bea52c4c5ae4bf5e2efb9d6598f (patch) | |
| tree | 47476be511679300e9c2a130760fed592b0933f7 /src | |
| parent | Merge pull request #503 from yuriks/kernel-lifetime4 (diff) | |
| download | yuzu-3dfef1701c528bea52c4c5ae4bf5e2efb9d6598f.tar.gz yuzu-3dfef1701c528bea52c4c5ae4bf5e2efb9d6598f.tar.xz yuzu-3dfef1701c528bea52c4c5ae4bf5e2efb9d6598f.zip | |
armdefs: Move some defines over to enums
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/skyeye_common/armdefs.h | 243 |
1 files changed, 112 insertions, 131 deletions
diff --git a/src/core/arm/skyeye_common/armdefs.h b/src/core/arm/skyeye_common/armdefs.h index 560b51a9f..d5939313b 100644 --- a/src/core/arm/skyeye_common/armdefs.h +++ b/src/core/arm/skyeye_common/armdefs.h | |||
| @@ -395,53 +395,41 @@ So, if lateabtSig=1, then it means Late Abort Model(Base Updated Abort Model) | |||
| 395 | #define DIFF_WRITE 0 | 395 | #define DIFF_WRITE 0 |
| 396 | 396 | ||
| 397 | typedef ARMul_State arm_core_t; | 397 | typedef ARMul_State arm_core_t; |
| 398 | #define ResetPin NresetSig | ||
| 399 | #define FIQPin NfiqSig | ||
| 400 | #define IRQPin NirqSig | ||
| 401 | #define AbortPin abortSig | ||
| 402 | #define TransPin NtransSig | ||
| 403 | #define BigEndPin bigendSig | ||
| 404 | #define Prog32Pin prog32Sig | ||
| 405 | #define Data32Pin data32Sig | ||
| 406 | #define LateAbortPin lateabtSig | ||
| 407 | 398 | ||
| 408 | /***************************************************************************\ | 399 | /***************************************************************************\ |
| 409 | * Types of ARM we know about * | 400 | * Types of ARM we know about * |
| 410 | \***************************************************************************/ | 401 | \***************************************************************************/ |
| 411 | 402 | ||
| 412 | /* The bitflags */ | 403 | enum { |
| 413 | #define ARM_Fix26_Prop 0x01 | 404 | ARM_Fix26_Prop = 0x01, |
| 414 | #define ARM_Nexec_Prop 0x02 | 405 | ARM_Nexec_Prop = 0x02, |
| 415 | #define ARM_Debug_Prop 0x10 | 406 | ARM_Debug_Prop = 0x10, |
| 416 | #define ARM_Isync_Prop ARM_Debug_Prop | 407 | ARM_Isync_Prop = ARM_Debug_Prop, |
| 417 | #define ARM_Lock_Prop 0x20 | 408 | ARM_Lock_Prop = 0x20, |
| 418 | #define ARM_v4_Prop 0x40 | 409 | ARM_v4_Prop = 0x40, |
| 419 | #define ARM_v5_Prop 0x80 | 410 | ARM_v5_Prop = 0x80, |
| 420 | #define ARM_v6_Prop 0xc0 | 411 | ARM_v6_Prop = 0xc0, |
| 421 | 412 | ||
| 422 | #define ARM_v5e_Prop 0x100 | 413 | ARM_v5e_Prop = 0x100, |
| 423 | #define ARM_XScale_Prop 0x200 | 414 | ARM_XScale_Prop = 0x200, |
| 424 | #define ARM_ep9312_Prop 0x400 | 415 | ARM_ep9312_Prop = 0x400, |
| 425 | #define ARM_iWMMXt_Prop 0x800 | 416 | ARM_iWMMXt_Prop = 0x800, |
| 426 | #define ARM_PXA27X_Prop 0x1000 | 417 | ARM_PXA27X_Prop = 0x1000, |
| 427 | #define ARM_v7_Prop 0x2000 | 418 | ARM_v7_Prop = 0x2000, |
| 428 | 419 | ||
| 429 | /* ARM2 family */ | 420 | // ARM2 family |
| 430 | #define ARM2 (ARM_Fix26_Prop) | 421 | ARM2 = ARM_Fix26_Prop, |
| 431 | #define ARM2as ARM2 | 422 | ARM2as = ARM2, |
| 432 | #define ARM61 ARM2 | 423 | ARM61 = ARM2, |
| 433 | #define ARM3 ARM2 | 424 | ARM3 = ARM2, |
| 434 | 425 | ||
| 435 | #ifdef ARM60 /* previous definition in armopts.h */ | 426 | // ARM6 family |
| 436 | #undef ARM60 | 427 | ARM6 = ARM_Lock_Prop, |
| 437 | #endif | 428 | ARM60 = ARM6, |
| 438 | 429 | ARM600 = ARM6, | |
| 439 | /* ARM6 family */ | 430 | ARM610 = ARM6, |
| 440 | #define ARM6 (ARM_Lock_Prop) | 431 | ARM620 = ARM6 |
| 441 | #define ARM60 ARM6 | 432 | }; |
| 442 | #define ARM600 ARM6 | ||
| 443 | #define ARM610 ARM6 | ||
| 444 | #define ARM620 ARM6 | ||
| 445 | 433 | ||
| 446 | 434 | ||
| 447 | /***************************************************************************\ | 435 | /***************************************************************************\ |
| @@ -456,41 +444,44 @@ typedef ARMul_State arm_core_t; | |||
| 456 | * The hardware vector addresses * | 444 | * The hardware vector addresses * |
| 457 | \***************************************************************************/ | 445 | \***************************************************************************/ |
| 458 | 446 | ||
| 459 | #define ARMResetV 0L | 447 | enum { |
| 460 | #define ARMUndefinedInstrV 4L | 448 | ARMResetV = 0, |
| 461 | #define ARMSWIV 8L | 449 | ARMUndefinedInstrV = 4, |
| 462 | #define ARMPrefetchAbortV 12L | 450 | ARMSWIV = 8, |
| 463 | #define ARMDataAbortV 16L | 451 | ARMPrefetchAbortV = 12, |
| 464 | #define ARMAddrExceptnV 20L | 452 | ARMDataAbortV = 16, |
| 465 | #define ARMIRQV 24L | 453 | ARMAddrExceptnV = 20, |
| 466 | #define ARMFIQV 28L | 454 | ARMIRQV = 24, |
| 467 | #define ARMErrorV 32L /* This is an offset, not an address ! */ | 455 | ARMFIQV = 28, |
| 468 | 456 | ARMErrorV = 32, // This is an offset, not an address! | |
| 469 | #define ARMul_ResetV ARMResetV | 457 | |
| 470 | #define ARMul_UndefinedInstrV ARMUndefinedInstrV | 458 | ARMul_ResetV = ARMResetV, |
| 471 | #define ARMul_SWIV ARMSWIV | 459 | ARMul_UndefinedInstrV = ARMUndefinedInstrV, |
| 472 | #define ARMul_PrefetchAbortV ARMPrefetchAbortV | 460 | ARMul_SWIV = ARMSWIV, |
| 473 | #define ARMul_DataAbortV ARMDataAbortV | 461 | ARMul_PrefetchAbortV = ARMPrefetchAbortV, |
| 474 | #define ARMul_AddrExceptnV ARMAddrExceptnV | 462 | ARMul_DataAbortV = ARMDataAbortV, |
| 475 | #define ARMul_IRQV ARMIRQV | 463 | ARMul_AddrExceptnV = ARMAddrExceptnV, |
| 476 | #define ARMul_FIQV ARMFIQV | 464 | ARMul_IRQV = ARMIRQV, |
| 465 | ARMul_FIQV = ARMFIQV | ||
| 466 | }; | ||
| 477 | 467 | ||
| 478 | /***************************************************************************\ | 468 | /***************************************************************************\ |
| 479 | * Mode and Bank Constants * | 469 | * Mode and Bank Constants * |
| 480 | \***************************************************************************/ | 470 | \***************************************************************************/ |
| 481 | 471 | ||
| 482 | #define USER26MODE 0L | 472 | enum { |
| 483 | #define FIQ26MODE 1L | 473 | USER26MODE = 0, |
| 484 | #define IRQ26MODE 2L | 474 | FIQ26MODE = 1, |
| 485 | #define SVC26MODE 3L | 475 | IRQ26MODE = 2, |
| 486 | #define USER32MODE 16L | 476 | SVC26MODE = 3, |
| 487 | #define FIQ32MODE 17L | 477 | USER32MODE = 16, |
| 488 | #define IRQ32MODE 18L | 478 | FIQ32MODE = 17, |
| 489 | #define SVC32MODE 19L | 479 | IRQ32MODE = 18, |
| 490 | #define ABORT32MODE 23L | 480 | SVC32MODE = 19, |
| 491 | #define UNDEF32MODE 27L | 481 | ABORT32MODE = 23, |
| 492 | //chy 2006-02-15 add system32 mode | 482 | UNDEF32MODE = 27, |
| 493 | #define SYSTEM32MODE 31L | 483 | SYSTEM32MODE = 31 |
| 484 | }; | ||
| 494 | 485 | ||
| 495 | #define ARM32BITMODE (state->Mode > 3) | 486 | #define ARM32BITMODE (state->Mode > 3) |
| 496 | #define ARM26BITMODE (state->Mode <= 3) | 487 | #define ARM26BITMODE (state->Mode <= 3) |
| @@ -499,14 +490,17 @@ typedef ARMul_State arm_core_t; | |||
| 499 | #define ARMul_MODE32BIT ARM32BITMODE | 490 | #define ARMul_MODE32BIT ARM32BITMODE |
| 500 | #define ARMul_MODE26BIT ARM26BITMODE | 491 | #define ARMul_MODE26BIT ARM26BITMODE |
| 501 | 492 | ||
| 502 | #define USERBANK 0 | 493 | enum { |
| 503 | #define FIQBANK 1 | 494 | USERBANK = 0, |
| 504 | #define IRQBANK 2 | 495 | FIQBANK = 1, |
| 505 | #define SVCBANK 3 | 496 | IRQBANK = 2, |
| 506 | #define ABORTBANK 4 | 497 | SVCBANK = 3, |
| 507 | #define UNDEFBANK 5 | 498 | ABORTBANK = 4, |
| 508 | #define DUMMYBANK 6 | 499 | UNDEFBANK = 5, |
| 509 | #define SYSTEMBANK USERBANK | 500 | DUMMYBANK = 6, |
| 501 | SYSTEMBANK = USERBANK | ||
| 502 | }; | ||
| 503 | |||
| 510 | #define BANK_CAN_ACCESS_SPSR(bank) \ | 504 | #define BANK_CAN_ACCESS_SPSR(bank) \ |
| 511 | ((bank) != USERBANK && (bank) != SYSTEMBANK && (bank) != DUMMYBANK) | 505 | ((bank) != USERBANK && (bank) != SYSTEMBANK && (bank) != DUMMYBANK) |
| 512 | 506 | ||
| @@ -613,40 +607,44 @@ extern ARMword ARMul_MemAccess(ARMul_State* state, ARMword, ARMword, | |||
| 613 | * Definitons of things in the co-processor interface * | 607 | * Definitons of things in the co-processor interface * |
| 614 | \***************************************************************************/ | 608 | \***************************************************************************/ |
| 615 | 609 | ||
| 616 | #define ARMul_FIRST 0 | 610 | enum { |
| 617 | #define ARMul_TRANSFER 1 | 611 | ARMul_FIRST = 0, |
| 618 | #define ARMul_BUSY 2 | 612 | ARMul_TRANSFER = 1, |
| 619 | #define ARMul_DATA 3 | 613 | ARMul_BUSY = 2, |
| 620 | #define ARMul_INTERRUPT 4 | 614 | ARMul_DATA = 3, |
| 621 | #define ARMul_DONE 0 | 615 | ARMul_INTERRUPT = 4, |
| 622 | #define ARMul_CANT 1 | 616 | ARMul_DONE = 0, |
| 623 | #define ARMul_INC 3 | 617 | ARMul_CANT = 1, |
| 624 | 618 | ARMul_INC = 3 | |
| 625 | #define ARMul_CP13_R0_FIQ 0x1 | 619 | }; |
| 626 | #define ARMul_CP13_R0_IRQ 0x2 | 620 | |
| 627 | #define ARMul_CP13_R8_PMUS 0x1 | 621 | enum { |
| 628 | 622 | ARMul_CP13_R0_FIQ = 0x1, | |
| 629 | #define ARMul_CP14_R0_ENABLE 0x0001 | 623 | ARMul_CP13_R0_IRQ = 0x2, |
| 630 | #define ARMul_CP14_R0_CLKRST 0x0004 | 624 | ARMul_CP13_R8_PMUS = 0x1, |
| 631 | #define ARMul_CP14_R0_CCD 0x0008 | 625 | |
| 632 | #define ARMul_CP14_R0_INTEN0 0x0010 | 626 | ARMul_CP14_R0_ENABLE = 0x0001, |
| 633 | #define ARMul_CP14_R0_INTEN1 0x0020 | 627 | ARMul_CP14_R0_CLKRST = 0x0004, |
| 634 | #define ARMul_CP14_R0_INTEN2 0x0040 | 628 | ARMul_CP14_R0_CCD = 0x0008, |
| 635 | #define ARMul_CP14_R0_FLAG0 0x0100 | 629 | ARMul_CP14_R0_INTEN0 = 0x0010, |
| 636 | #define ARMul_CP14_R0_FLAG1 0x0200 | 630 | ARMul_CP14_R0_INTEN1 = 0x0020, |
| 637 | #define ARMul_CP14_R0_FLAG2 0x0400 | 631 | ARMul_CP14_R0_INTEN2 = 0x0040, |
| 638 | #define ARMul_CP14_R10_MOE_IB 0x0004 | 632 | ARMul_CP14_R0_FLAG0 = 0x0100, |
| 639 | #define ARMul_CP14_R10_MOE_DB 0x0008 | 633 | ARMul_CP14_R0_FLAG1 = 0x0200, |
| 640 | #define ARMul_CP14_R10_MOE_BT 0x000c | 634 | ARMul_CP14_R0_FLAG2 = 0x0400, |
| 641 | #define ARMul_CP15_R1_ENDIAN 0x0080 | 635 | ARMul_CP14_R10_MOE_IB = 0x0004, |
| 642 | #define ARMul_CP15_R1_ALIGN 0x0002 | 636 | ARMul_CP14_R10_MOE_DB = 0x0008, |
| 643 | #define ARMul_CP15_R5_X 0x0400 | 637 | ARMul_CP14_R10_MOE_BT = 0x000c, |
| 644 | #define ARMul_CP15_R5_ST_ALIGN 0x0001 | 638 | ARMul_CP15_R1_ENDIAN = 0x0080, |
| 645 | #define ARMul_CP15_R5_IMPRE 0x0406 | 639 | ARMul_CP15_R1_ALIGN = 0x0002, |
| 646 | #define ARMul_CP15_R5_MMU_EXCPT 0x0400 | 640 | ARMul_CP15_R5_X = 0x0400, |
| 647 | #define ARMul_CP15_DBCON_M 0x0100 | 641 | ARMul_CP15_R5_ST_ALIGN = 0x0001, |
| 648 | #define ARMul_CP15_DBCON_E1 0x000c | 642 | ARMul_CP15_R5_IMPRE = 0x0406, |
| 649 | #define ARMul_CP15_DBCON_E0 0x0003 | 643 | ARMul_CP15_R5_MMU_EXCPT = 0x0400, |
| 644 | ARMul_CP15_DBCON_M = 0x0100, | ||
| 645 | ARMul_CP15_DBCON_E1 = 0x000c, | ||
| 646 | ARMul_CP15_DBCON_E0 = 0x0003 | ||
| 647 | }; | ||
| 650 | 648 | ||
| 651 | extern unsigned ARMul_CoProInit(ARMul_State* state); | 649 | extern unsigned ARMul_CoProInit(ARMul_State* state); |
| 652 | extern void ARMul_CoProExit(ARMul_State* state); | 650 | extern void ARMul_CoProExit(ARMul_State* state); |
| @@ -675,12 +673,9 @@ extern unsigned ARMul_OSHandleSWI(ARMul_State* state, ARMword number); | |||
| 675 | } | 673 | } |
| 676 | #endif | 674 | #endif |
| 677 | 675 | ||
| 678 | |||
| 679 | extern ARMword ARMul_OSLastErrorP(ARMul_State* state); | 676 | extern ARMword ARMul_OSLastErrorP(ARMul_State* state); |
| 680 | |||
| 681 | extern ARMword ARMul_Debug(ARMul_State* state, ARMword pc, ARMword instr); | 677 | extern ARMword ARMul_Debug(ARMul_State* state, ARMword pc, ARMword instr); |
| 682 | extern unsigned ARMul_OSException(ARMul_State* state, ARMword vector, ARMword pc); | 678 | extern unsigned ARMul_OSException(ARMul_State* state, ARMword vector, ARMword pc); |
| 683 | extern int rdi_log; | ||
| 684 | 679 | ||
| 685 | enum ConditionCode { | 680 | enum ConditionCode { |
| 686 | EQ = 0, | 681 | EQ = 0, |
| @@ -729,12 +724,6 @@ enum ConditionCode { | |||
| 729 | #define IFFLAGS state->IFFlags | 724 | #define IFFLAGS state->IFFlags |
| 730 | #endif //VFLAG | 725 | #endif //VFLAG |
| 731 | 726 | ||
| 732 | #define FLAG_MASK 0xf0000000 | ||
| 733 | #define NBIT_SHIFT 31 | ||
| 734 | #define ZBIT_SHIFT 30 | ||
| 735 | #define CBIT_SHIFT 29 | ||
| 736 | #define VBIT_SHIFT 28 | ||
| 737 | |||
| 738 | #define SKYEYE_OUTREGS(fd) { fprintf ((fd), "R %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,C %x,S %x,%x,%x,%x,%x,%x,%x,M %x,B %x,E %x,I %x,P %x,T %x,L %x,D %x,",\ | 727 | #define SKYEYE_OUTREGS(fd) { fprintf ((fd), "R %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,C %x,S %x,%x,%x,%x,%x,%x,%x,M %x,B %x,E %x,I %x,P %x,T %x,L %x,D %x,",\ |
| 739 | state->Reg[0],state->Reg[1],state->Reg[2],state->Reg[3], \ | 728 | state->Reg[0],state->Reg[1],state->Reg[2],state->Reg[3], \ |
| 740 | state->Reg[4],state->Reg[5],state->Reg[6],state->Reg[7], \ | 729 | state->Reg[4],state->Reg[5],state->Reg[6],state->Reg[7], \ |
| @@ -778,14 +767,6 @@ RUn %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x\n",\ | |||
| 778 | state->RegBank[5][12],state->RegBank[5][13],state->RegBank[5][14],state->RegBank[5][15] \ | 767 | state->RegBank[5][12],state->RegBank[5][13],state->RegBank[5][14],state->RegBank[5][15] \ |
| 779 | );} | 768 | );} |
| 780 | 769 | ||
| 781 | |||
| 782 | #define SA1110 0x6901b110 | ||
| 783 | #define SA1100 0x4401a100 | ||
| 784 | #define PXA250 0x69052100 | ||
| 785 | #define PXA270 0x69054110 | ||
| 786 | //#define PXA250 0x69052903 | ||
| 787 | // 0x69052903; //PXA250 B1 from intel 278522-001.pdf | ||
| 788 | |||
| 789 | extern bool AddOverflow(ARMword, ARMword, ARMword); | 770 | extern bool AddOverflow(ARMword, ARMword, ARMword); |
| 790 | extern bool SubOverflow(ARMword, ARMword, ARMword); | 771 | extern bool SubOverflow(ARMword, ARMword, ARMword); |
| 791 | 772 | ||