25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: cpu_ia64.c,v 1.11 2006/06/16 18:31:25 debug Exp $ |
* $Id: cpu_ia64.c,v 1.14 2006/09/19 10:50:08 debug Exp $ |
29 |
* |
* |
30 |
* IA64 CPU emulation. |
* IA64 CPU emulation. |
31 |
* |
* |
41 |
#include "machine.h" |
#include "machine.h" |
42 |
#include "memory.h" |
#include "memory.h" |
43 |
#include "misc.h" |
#include "misc.h" |
44 |
|
#include "settings.h" |
45 |
#include "symbol.h" |
#include "symbol.h" |
46 |
|
|
47 |
#include "tmp_ia64_head.c" |
#include "tmp_ia64_head.c" |
59 |
if (strcasecmp(cpu_type_name, "IA64") != 0) |
if (strcasecmp(cpu_type_name, "IA64") != 0) |
60 |
return 0; |
return 0; |
61 |
|
|
62 |
|
cpu->run_instr = ia64_run_instr; |
63 |
cpu->memory_rw = ia64_memory_rw; |
cpu->memory_rw = ia64_memory_rw; |
64 |
cpu->update_translation_table = ia64_update_translation_table; |
cpu->update_translation_table = ia64_update_translation_table; |
65 |
cpu->invalidate_translation_caches = |
cpu->invalidate_translation_caches = |
72 |
debug("%s", cpu->name); |
debug("%s", cpu->name); |
73 |
} |
} |
74 |
|
|
75 |
ia64_init_64bit_dummy_tables(cpu); |
/* Add all register names to the settings: */ |
76 |
|
CPU_SETTINGS_ADD_REGISTER64("pc", cpu->pc); |
77 |
|
|
78 |
return 1; |
return 1; |
79 |
} |
} |
102 |
} |
} |
103 |
|
|
104 |
|
|
|
/* |
|
|
* ia64_cpu_register_match(): |
|
|
*/ |
|
|
void ia64_cpu_register_match(struct machine *m, char *name, |
|
|
int writeflag, uint64_t *valuep, int *match_register) |
|
|
{ |
|
|
int cpunr = 0; |
|
|
|
|
|
/* CPU number: */ |
|
|
|
|
|
/* TODO */ |
|
|
|
|
|
if (strcasecmp(name, "pc") == 0) { |
|
|
if (writeflag) { |
|
|
m->cpus[cpunr]->pc = *valuep; |
|
|
} else |
|
|
*valuep = m->cpus[cpunr]->pc; |
|
|
*match_register = 1; |
|
|
} |
|
|
|
|
|
/* TODO */ |
|
|
} |
|
|
|
|
|
|
|
105 |
/* |
/* |
106 |
* ia64_cpu_register_dump(): |
* ia64_cpu_register_dump(): |
107 |
* |
* |