cpu_alpha.h File Reference

Back to the index.

Classes | Macros | Functions
cpu_alpha.h File Reference
#include "misc.h"
#include "thirdparty/alpha_cpu.h"

Go to the source code of this file.

Classes

struct  alpha_cpu_type_def
 
struct  alpha_cpu
 

Macros

#define ALPHA_FEATURE_BWX   1
 
#define ALPHA_CPU_TYPE_DEFS
 
#define N_ALPHA_KENTRY   6
 
#define ALPHA_V0   0
 
#define ALPHA_T0   1
 
#define ALPHA_T1   2
 
#define ALPHA_T2   3
 
#define ALPHA_T3   4
 
#define ALPHA_T4   5
 
#define ALPHA_T5   6
 
#define ALPHA_T6   7
 
#define ALPHA_T7   8
 
#define ALPHA_S0   9
 
#define ALPHA_S1   10
 
#define ALPHA_S2   11
 
#define ALPHA_S3   12
 
#define ALPHA_S4   13
 
#define ALPHA_S5   14
 
#define ALPHA_FP   15
 
#define ALPHA_A0   16
 
#define ALPHA_A1   17
 
#define ALPHA_A2   18
 
#define ALPHA_A3   19
 
#define ALPHA_A4   20
 
#define ALPHA_A5   21
 
#define ALPHA_T8   22
 
#define ALPHA_T9   23
 
#define ALPHA_T10   24
 
#define ALPHA_T11   25
 
#define ALPHA_RA   26
 
#define ALPHA_T12   27
 
#define ALPHA_AT   28
 
#define ALPHA_GP   29
 
#define ALPHA_SP   30
 
#define ALPHA_ZERO   31
 
#define N_ALPHA_REGS   32
 
#define ALPHA_REG_NAMES
 
#define ALPHA_N_IC_ARGS   3
 
#define ALPHA_INSTR_ALIGNMENT_SHIFT   2
 
#define ALPHA_IC_ENTRIES_SHIFT   11
 
#define ALPHA_IC_ENTRIES_PER_PAGE   (1 << ALPHA_IC_ENTRIES_SHIFT)
 
#define ALPHA_PC_TO_IC_ENTRY(a)
 
#define ALPHA_ADDR_TO_PAGENR(a)
 
#define ALPHA_MAX_VPH_TLB_ENTRIES   128
 
#define ALPHA_L2N   17
 
#define ALPHA_L3N   17
 
#define ALPHA_PAGESHIFT   13
 

Functions

void alpha_update_translation_table (struct cpu *cpu, uint64_t vaddr_page, unsigned char *host_page, int writeflag, uint64_t paddr_page)
 
void alpha_invalidate_translation_caches (struct cpu *cpu, uint64_t, int)
 
void alpha_invalidate_code_translation (struct cpu *cpu, uint64_t, int)
 
void alpha_init_64bit_dummy_tables (struct cpu *cpu)
 
int alpha_run_instr (struct cpu *cpu)
 
int alpha_memory_rw (struct cpu *cpu, struct memory *mem, uint64_t vaddr, unsigned char *data, size_t len, int writeflag, int cache_flags)
 
int alpha_cpu_family_init (struct cpu_family *)
 
void alpha_palcode_name (uint32_t palcode, char *buf, size_t buflen)
 
void alpha_palcode (struct cpu *cpu, uint32_t palcode)
 
int alpha_translate_v2p (struct cpu *cpu, uint64_t vaddr, uint64_t *return_addr, int flags)
 

Macro Definition Documentation

◆ ALPHA_A0

#define ALPHA_A0   16

Definition at line 93 of file cpu_alpha.h.

Referenced by alpha_palcode(), alpha_prom_call(), and MACHINE_SETUP().

◆ ALPHA_A1

#define ALPHA_A1   17

Definition at line 94 of file cpu_alpha.h.

Referenced by alpha_palcode(), alpha_prom_call(), and MACHINE_SETUP().

◆ ALPHA_A2

#define ALPHA_A2   18

Definition at line 95 of file cpu_alpha.h.

Referenced by alpha_prom_call(), and MACHINE_SETUP().

◆ ALPHA_A3

#define ALPHA_A3   19

Definition at line 96 of file cpu_alpha.h.

Referenced by alpha_prom_call(), and MACHINE_SETUP().

◆ ALPHA_A4

#define ALPHA_A4   20

Definition at line 97 of file cpu_alpha.h.

Referenced by MACHINE_SETUP().

◆ ALPHA_A5

#define ALPHA_A5   21

Definition at line 98 of file cpu_alpha.h.

◆ ALPHA_ADDR_TO_PAGENR

#define ALPHA_ADDR_TO_PAGENR (   a)
Value:
#define ALPHA_INSTR_ALIGNMENT_SHIFT
Definition: cpu_alpha.h:123
#define ALPHA_IC_ENTRIES_SHIFT
Definition: cpu_alpha.h:124

Definition at line 128 of file cpu_alpha.h.

◆ ALPHA_AT

#define ALPHA_AT   28

Definition at line 106 of file cpu_alpha.h.

◆ ALPHA_CPU_TYPE_DEFS

#define ALPHA_CPU_TYPE_DEFS
Value:
{ \
{ "21064", 0x000000002ULL, 0, 0, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21066", 0x200000004ULL, 0, 0, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21164", 0x000000005ULL, 0, 1, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21164A-2", 0x000000007ULL, 0, 1, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21164PC", 0x000000009ULL, 0, 1, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21264", 0x00000000dULL, 0, 2, 16,5,2, 16,5,2, 0,0,0 }, \
{ "21364", 0x000000000ULL, 0, 3, 16,5,2, 16,5,2, 0,0,0 }, \
{ NULL, 0x000000000ULL, 0, 0, 0,0,0, 0,0,0, 0,0,0 } }

Definition at line 59 of file cpu_alpha.h.

Referenced by alpha_cpu_list_available_types(), and alpha_cpu_new().

◆ ALPHA_FEATURE_BWX

#define ALPHA_FEATURE_BWX   1

Definition at line 57 of file cpu_alpha.h.

◆ ALPHA_FP

#define ALPHA_FP   15

Definition at line 91 of file cpu_alpha.h.

◆ ALPHA_GP

#define ALPHA_GP   29

Definition at line 107 of file cpu_alpha.h.

◆ ALPHA_IC_ENTRIES_PER_PAGE

#define ALPHA_IC_ENTRIES_PER_PAGE   (1 << ALPHA_IC_ENTRIES_SHIFT)

Definition at line 125 of file cpu_alpha.h.

Referenced by X().

◆ ALPHA_IC_ENTRIES_SHIFT

#define ALPHA_IC_ENTRIES_SHIFT   11

Definition at line 124 of file cpu_alpha.h.

◆ ALPHA_INSTR_ALIGNMENT_SHIFT

#define ALPHA_INSTR_ALIGNMENT_SHIFT   2

Definition at line 123 of file cpu_alpha.h.

Referenced by X().

◆ ALPHA_L2N

#define ALPHA_L2N   17

Definition at line 133 of file cpu_alpha.h.

◆ ALPHA_L3N

#define ALPHA_L3N   17

Definition at line 134 of file cpu_alpha.h.

◆ ALPHA_MAX_VPH_TLB_ENTRIES

#define ALPHA_MAX_VPH_TLB_ENTRIES   128

Definition at line 131 of file cpu_alpha.h.

◆ ALPHA_N_IC_ARGS

#define ALPHA_N_IC_ARGS   3

Definition at line 122 of file cpu_alpha.h.

◆ ALPHA_PAGESHIFT

#define ALPHA_PAGESHIFT   13

Definition at line 140 of file cpu_alpha.h.

Referenced by alpha_translate_v2p().

◆ ALPHA_PC_TO_IC_ENTRY

#define ALPHA_PC_TO_IC_ENTRY (   a)
Value:
#define ALPHA_INSTR_ALIGNMENT_SHIFT
Definition: cpu_alpha.h:123
#define ALPHA_IC_ENTRIES_PER_PAGE
Definition: cpu_alpha.h:125

Definition at line 126 of file cpu_alpha.h.

◆ ALPHA_RA

#define ALPHA_RA   26

Definition at line 104 of file cpu_alpha.h.

Referenced by alpha_palcode(), alpha_prom_call(), and X().

◆ ALPHA_REG_NAMES

#define ALPHA_REG_NAMES
Value:
{ \
"v0", "t0", "t1", "t2", "t3", "t4", "t5", "t6", \
"t7", "s0", "s1", "s2", "s3", "s4", "s5", "fp", \
"a0", "a1", "a2", "a3", "a4", "a5", "t8", "t9", \
"t10", "t11", "ra", "t12", "at", "gp", "sp", "zero" }

Definition at line 113 of file cpu_alpha.h.

◆ ALPHA_S0

#define ALPHA_S0   9

Definition at line 85 of file cpu_alpha.h.

◆ ALPHA_S1

#define ALPHA_S1   10

Definition at line 86 of file cpu_alpha.h.

◆ ALPHA_S2

#define ALPHA_S2   11

Definition at line 87 of file cpu_alpha.h.

◆ ALPHA_S3

#define ALPHA_S3   12

Definition at line 88 of file cpu_alpha.h.

◆ ALPHA_S4

#define ALPHA_S4   13

Definition at line 89 of file cpu_alpha.h.

◆ ALPHA_S5

#define ALPHA_S5   14

Definition at line 90 of file cpu_alpha.h.

◆ ALPHA_SP

#define ALPHA_SP   30

Definition at line 108 of file cpu_alpha.h.

Referenced by alpha_cpu_new().

◆ ALPHA_T0

#define ALPHA_T0   1

Definition at line 76 of file cpu_alpha.h.

◆ ALPHA_T1

#define ALPHA_T1   2

Definition at line 77 of file cpu_alpha.h.

◆ ALPHA_T10

#define ALPHA_T10   24

Definition at line 102 of file cpu_alpha.h.

◆ ALPHA_T11

#define ALPHA_T11   25

Definition at line 103 of file cpu_alpha.h.

◆ ALPHA_T12

#define ALPHA_T12   27

Definition at line 105 of file cpu_alpha.h.

Referenced by emul_machine_setup().

◆ ALPHA_T2

#define ALPHA_T2   3

Definition at line 78 of file cpu_alpha.h.

◆ ALPHA_T3

#define ALPHA_T3   4

Definition at line 79 of file cpu_alpha.h.

◆ ALPHA_T4

#define ALPHA_T4   5

Definition at line 80 of file cpu_alpha.h.

◆ ALPHA_T5

#define ALPHA_T5   6

Definition at line 81 of file cpu_alpha.h.

◆ ALPHA_T6

#define ALPHA_T6   7

Definition at line 82 of file cpu_alpha.h.

◆ ALPHA_T7

#define ALPHA_T7   8

Definition at line 84 of file cpu_alpha.h.

◆ ALPHA_T8

#define ALPHA_T8   22

Definition at line 99 of file cpu_alpha.h.

◆ ALPHA_T9

#define ALPHA_T9   23

Definition at line 100 of file cpu_alpha.h.

◆ ALPHA_V0

#define ALPHA_V0   0

Definition at line 75 of file cpu_alpha.h.

Referenced by alpha_palcode(), and alpha_prom_call().

◆ ALPHA_ZERO

#define ALPHA_ZERO   31

Definition at line 109 of file cpu_alpha.h.

Referenced by alpha_cpu_register_dump(), and X().

◆ N_ALPHA_KENTRY

#define N_ALPHA_KENTRY   6

Definition at line 73 of file cpu_alpha.h.

Referenced by alpha_cpu_new(), and alpha_palcode().

◆ N_ALPHA_REGS

#define N_ALPHA_REGS   32

Definition at line 111 of file cpu_alpha.h.

Referenced by alpha_cpu_new(), and alpha_cpu_register_dump().

Function Documentation

◆ alpha_cpu_family_init()

int alpha_cpu_family_init ( struct cpu_family )

◆ alpha_init_64bit_dummy_tables()

void alpha_init_64bit_dummy_tables ( struct cpu cpu)

◆ alpha_invalidate_code_translation()

void alpha_invalidate_code_translation ( struct cpu cpu,
uint64_t  ,
int   
)

Referenced by alpha_cpu_new().

◆ alpha_invalidate_translation_caches()

void alpha_invalidate_translation_caches ( struct cpu cpu,
uint64_t  ,
int   
)

Referenced by alpha_cpu_new().

◆ alpha_memory_rw()

int alpha_memory_rw ( struct cpu cpu,
struct memory mem,
uint64_t  vaddr,
unsigned char *  data,
size_t  len,
int  writeflag,
int  cache_flags 
)

Referenced by alpha_cpu_new().

◆ alpha_palcode()

void alpha_palcode ( struct cpu cpu,
uint32_t  palcode 
)

◆ alpha_palcode_name()

void alpha_palcode_name ( uint32_t  palcode,
char *  buf,
size_t  buflen 
)

Definition at line 55 of file cpu_alpha_palcode.cc.

Referenced by alpha_cpu_disassemble_instr().

◆ alpha_run_instr()

int alpha_run_instr ( struct cpu cpu)

Referenced by alpha_cpu_new().

◆ alpha_translate_v2p()

int alpha_translate_v2p ( struct cpu cpu,
uint64_t  vaddr,
uint64_t *  return_addr,
int  flags 
)

◆ alpha_update_translation_table()

void alpha_update_translation_table ( struct cpu cpu,
uint64_t  vaddr_page,
unsigned char *  host_page,
int  writeflag,
uint64_t  paddr_page 
)

Referenced by alpha_cpu_new().


Generated on Fri Dec 7 2018 19:52:23 for GXemul by doxygen 1.8.13