|
|
1.1 root 1: /*
2: * QEMU Alpha CPU
3: *
4: * Copyright (c) 2007 Jocelyn Mayer
5: * Copyright (c) 2012 SUSE LINUX Products GmbH
6: *
7: * This library is free software; you can redistribute it and/or
8: * modify it under the terms of the GNU Lesser General Public
9: * License as published by the Free Software Foundation; either
10: * version 2.1 of the License, or (at your option) any later version.
11: *
12: * This library is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15: * Lesser General Public License for more details.
16: *
17: * You should have received a copy of the GNU Lesser General Public
18: * License along with this library; if not, see
19: * <http://www.gnu.org/licenses/lgpl-2.1.html>
20: */
21:
22: #include "cpu-qom.h"
23: #include "qemu-common.h"
24:
25:
26: static void alpha_cpu_initfn(Object *obj)
27: {
28: AlphaCPU *cpu = ALPHA_CPU(obj);
29: CPUAlphaState *env = &cpu->env;
30:
31: cpu_exec_init(env);
32: tlb_flush(env, 1);
33:
34: #if defined(CONFIG_USER_ONLY)
35: env->ps = PS_USER_MODE;
36: cpu_alpha_store_fpcr(env, (FPCR_INVD | FPCR_DZED | FPCR_OVFD
37: | FPCR_UNFD | FPCR_INED | FPCR_DNOD
38: | FPCR_DYN_NORMAL));
39: #endif
40: env->lock_addr = -1;
41: env->fen = 1;
42: }
43:
44: static const TypeInfo alpha_cpu_type_info = {
45: .name = TYPE_ALPHA_CPU,
46: .parent = TYPE_CPU,
47: .instance_size = sizeof(AlphaCPU),
48: .instance_init = alpha_cpu_initfn,
49: .abstract = false,
50: .class_size = sizeof(AlphaCPUClass),
51: };
52:
53: static void alpha_cpu_register_types(void)
54: {
55: type_register_static(&alpha_cpu_type_info);
56: }
57:
58: type_init(alpha_cpu_register_types)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.