diff options
author | Mike Frysinger <vapier@gentoo.org> | 2022-12-22 23:52:24 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2022-12-23 08:32:58 -0500 |
commit | 2a91447ab87a8dc8432ef37d4647c8ac9935a03d (patch) | |
tree | a447378fcb8bcffa5e9be34f3c87486adc3f9b7e /sim/pru/sim-main.h | |
parent | 627bdb63949c1766d03ae16536bf9ea15e252c11 (diff) | |
download | fsf-binutils-gdb-2a91447ab87a8dc8432ef37d4647c8ac9935a03d.zip fsf-binutils-gdb-2a91447ab87a8dc8432ef37d4647c8ac9935a03d.tar.gz fsf-binutils-gdb-2a91447ab87a8dc8432ef37d4647c8ac9935a03d.tar.bz2 |
sim: pru: move arch-specific settings to internal header
There's no need for these settings to be in sim-main.h which is shared
with common/ sim code, so drop the pru.h include and move the remaining
pru-specific settings into it.
Diffstat (limited to 'sim/pru/sim-main.h')
-rw-r--r-- | sim/pru/sim-main.h | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/sim/pru/sim-main.h b/sim/pru/sim-main.h index ada1e38..0925c3a 100644 --- a/sim/pru/sim-main.h +++ b/sim/pru/sim-main.h @@ -19,65 +19,7 @@ #ifndef PRU_SIM_MAIN #define PRU_SIM_MAIN -#include <stdint.h> -#include <stddef.h> -#include "pru.h" #include "sim-basics.h" - #include "sim-base.h" -/* The machine state. - This state is maintained in host byte order. The - fetch/store register functions must translate between host - byte order and the target processor byte order. - Keeping this data in target byte order simplifies the register - read/write functions. Keeping this data in host order improves - the performance of the simulator. Simulation speed is deemed more - important. */ - -/* For clarity, please keep the same relative order in this enum as in the - corresponding group of GP registers. - - In PRU ISA, Multiplier-Accumulator-Unit's registers are like "shadows" of - the GP registers. MAC registers are implicitly addressed when executing - the XIN/XOUT instructions to access them. Transfer to/from a MAC register - can happen only from/to its corresponding GP peer register. */ - -enum pru_macreg_id { - /* MAC register CPU GP register Description. */ - PRU_MACREG_MODE, /* r25 */ /* Mode (MUL/MAC). */ - PRU_MACREG_PROD_L, /* r26 */ /* Lower 32 bits of product. */ - PRU_MACREG_PROD_H, /* r27 */ /* Higher 32 bits of product. */ - PRU_MACREG_OP_0, /* r28 */ /* First operand. */ - PRU_MACREG_OP_1, /* r29 */ /* Second operand. */ - PRU_MACREG_ACC_L, /* N/A */ /* Accumulator (not exposed) */ - PRU_MACREG_ACC_H, /* N/A */ /* Higher 32 bits of MAC - accumulator. */ - PRU_MAC_NREGS -}; - -struct pru_regset -{ - uint32_t regs[32]; /* Primary registers. */ - uint16_t pc; /* IMEM _word_ address. */ - uint32_t pc_addr_space_marker; /* IMEM virtual linker offset. This - is the artificial offset that - we invent in order to "separate" - the DMEM and IMEM memory spaces. */ - unsigned int carry : 1; - uint32_t ctable[32]; /* Constant offsets table for xBCO. */ - uint32_t macregs[PRU_MAC_NREGS]; - uint32_t scratchpads[XFRID_MAX + 1][32]; - struct { - uint16_t looptop; /* LOOP top (PC of loop instr). */ - uint16_t loopend; /* LOOP end (PC of loop end label). */ - int loop_in_progress; /* Whether to check for PC==loopend. */ - uint32_t loop_counter; /* LOOP counter. */ - } loop; - int cycles; - int insts; -}; - -#define PRU_SIM_CPU(cpu) ((struct pru_regset *) CPU_ARCH_DATA (cpu)) - #endif /* PRU_SIM_MAIN */ |