OpenCores
URL https://opencores.org/ocsvn/1664/1664/trunk

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_nova.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mrdmkg
#include "cpu_1664.h"
2
 
3
struct cpu_1664 * cpu_1664_nova(nN cuantia)
4
{
5
 struct cpu_1664 *cpu=(struct cpu_1664 *)memoria_nova(sizeof(struct cpu_1664));
6
 cpu->lista_imaje=lista_nova(cuantia);
7
 
8
 nN i;
9
 for(i=0;i<(1<<cpu_1664_bitio_opera);i++)
10
 {
11
  cpu->opera_ajusta_vantaje[i]=i;
12
  cpu->opera_ajusta_usor[i]=i;
13
 }
14
 
15
 //cpu->opera_lista[cpu_1664_opera_ajusta]=cpu_1664_opera__ajusta;
16
 for(i=1; i<(1<<cpu_1664_bitio_ao); i++)
17
 {
18
  cpu->opera_lista[i]=cpu_1664_opera___; //opera nonlegal
19
 }
20
 
21
 cpu->opera_lista[cpu_1664_opera_yli]=cpu_1664_opera__yli;
22
 cpu->opera_lista[cpu_1664_opera_ylr]=cpu_1664_opera__ylr;
23
 cpu->opera_lista[cpu_1664_opera_ldi]=cpu_1664_opera__ldi;
24
 cpu->opera_lista[cpu_1664_opera_ldis]=cpu_1664_opera__ldis;
25
 cpu->opera_lista[cpu_1664_opera_ldm]=cpu_1664_opera__ldm;
26
 cpu->opera_lista[cpu_1664_opera_stm]=cpu_1664_opera__stm;
27
 cpu->opera_lista[cpu_1664_opera_ldr]=cpu_1664_opera__ldr;
28
 cpu->opera_lista[cpu_1664_opera_str]=cpu_1664_opera__str;
29
 cpu->opera_lista[cpu_1664_opera_cam]=cpu_1664_opera__cam;
30
 cpu->opera_lista[cpu_1664_opera_ldb]=cpu_1664_opera__ldb;
31
 cpu->opera_lista[cpu_1664_opera_stb]=cpu_1664_opera__stb;
32
 cpu->opera_lista[cpu_1664_opera_cmp]=cpu_1664_opera__cmp;
33
 cpu->opera_lista[cpu_1664_opera_dep]=cpu_1664_opera__dep;
34
 cpu->opera_lista[cpu_1664_opera_bit]=cpu_1664_opera__bit;
35
 cpu->opera_lista[cpu_1664_opera_rev]=cpu_1664_opera__rev;
36
 
37
 cpu->opera_lista[cpu_1664_opera_and]=cpu_1664_opera__and;
38
 cpu->opera_lista[cpu_1664_opera_or]=cpu_1664_opera__or;
39
 cpu->opera_lista[cpu_1664_opera_eor]=cpu_1664_opera__eor;
40
 cpu->opera_lista[cpu_1664_opera_mul]=cpu_1664_opera__mul;
41
 cpu->opera_lista[cpu_1664_opera_plu]=cpu_1664_opera__plu;
42
 cpu->opera_lista[cpu_1664_opera_sut]=cpu_1664_opera__sut;
43
 cpu->opera_lista[cpu_1664_opera_sutr]=cpu_1664_opera__sutr;
44
 cpu->opera_lista[cpu_1664_opera_div]=cpu_1664_opera__div;
45
 cpu->opera_lista[cpu_1664_opera_shl]=cpu_1664_opera__shl;
46
 cpu->opera_lista[cpu_1664_opera_shr]=cpu_1664_opera__shr;
47
 cpu->opera_lista[cpu_1664_opera_sar]=cpu_1664_opera__sar;
48
 
49
 cpu_1664_vantaje(cpu,1);
50
 
51
 for(i=0;i<1<<cpu_1664_bitio_r;i++)
52
 {
53
  cpu->sinia_vantaje[i]=0;
54
  cpu->sinia_usor[i]=0;
55
 }
56
 
57
 for(i=0;i<32;i++)
58
 {
59
  cpu->depende[i]=0;
60
 }
61
 
62
 for(i=0;i<32;i++)
63
 {
64
  cpu->opera_ajusta_vantaje[i]=i;
65
  cpu->opera_ajusta_usor[i]=i;
66
  cpu->opera_ajusta_asm[i]=i;
67
 }
68
// cpu->opera_ajusta_protejeda=0;
69
// cpu->depende_opera_influe_vantaje=0;
70
// cpu->depende_opera_influe_usor=0;
71
// cpu->sinia[cpu_1664_sinia_eseta]=0;
72
 
73
 cpu->opera_sicle=0;
74
 cpu->contador_sicle=0;
75
 cpu->contador_sicle_usor=0;
76
 cpu->contador_sicle_usor_limite=0;
77
 
78
 //asm
79
 cpu->asm_eror=0;
80
 cpu->lista_imaje_asm=lista_nova(0);
81
 cpu->lista_defina_sinia=lista_nova(0);
82
 cpu->lista_defina_valua=lista_nova(0);
83
 cpu->lista_opera_sinia=lista_nova(0);
84
// cpu->lista_opera_ajusta=lista_nova(0);
85
 cpu->lista_opera_parametre_sinia=lista_nova(0);
86
 cpu->lista_asm_opera_parametre_referi=lista_nova(0);
87
 cpu->lista_asm_opera_parametre_funsiona=lista_nova(0);
88
 cpu->lista_asm_comanda_sinia=lista_nova(0);
89
 cpu->lista_asm_comanda_funsiona=lista_nova(0);
90
 cpu->lista_taxe=lista_nova(0);
91
 cpu->lista_taxe_d=lista_nova(0);
92
 
93
 cpu->lista_eticeta_cadena=lista_nova(0);
94
 
95
  //inclui
96
  cpu->lista_inclui_curso=lista_nova(0);
97
  lista_ajunta__P(cpu->lista_inclui_curso, lista_nova__ccadena("/"));
98
 
99
 
100
 //model
101
 cpu->lista_model=lista_nova(0);
102
 cpu->lista_model_sinia=lista_nova(0);
103
 
104
 cpu->avisa__no_definida=0;
105
 
106
 //dev
107
 cpu->lista_dev_asm_desloca=lista_nova(0);
108
 cpu->lista_dev_asm_cadena=lista_nova(0);
109
 cpu->lista_dev_opera_cadena=lista_nova(0);
110
 cpu->lista_dev_opera_parametre_referi=lista_nova(0);
111
 cpu->lista_dev_opera_parametre_funsiona=lista_nova(0);
112
 
113
//a ordina frecuentia
114
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "2r6r", cpu_1664_asm_opera_parametre_funsiona__2r6r, cpu_1664_dev_opera_parametre_funsiona__2r6r);
115
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8e", cpu_1664_asm_opera_parametre_funsiona__8e, cpu_1664_dev_opera_parametre_funsiona__8e);
116
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8y", cpu_1664_asm_opera_parametre_funsiona__8y, cpu_1664_dev_opera_parametre_funsiona__8y);
117
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8ylr", cpu_1664_asm_opera_parametre_funsiona__8ylr, cpu_1664_dev_opera_parametre_funsiona__8ylr);
118
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "m", cpu_1664_asm_opera_parametre_funsiona__m, cpu_1664_dev_opera_parametre_funsiona__m);
119
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "6r2r", cpu_1664_asm_opera_parametre_funsiona__6r2r, cpu_1664_dev_opera_parametre_funsiona__6r2r);
120
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "3e3e2e", cpu_1664_asm_opera_parametre_funsiona__3e3e2e, cpu_1664_dev_opera_parametre_funsiona__3e3e2e);
121
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "ajusta_vacua", 0, 0);
122
 
123
//a ordina frecuentia
124
 cpu_1664_asm_asm_comanda_ajunta(cpu, "m", cpu_1664_asm_asm_comanda__m);
125
 cpu_1664_asm_asm_comanda_ajunta(cpu, "defina", cpu_1664_asm_asm_comanda__defina);
126
 cpu_1664_asm_asm_comanda_ajunta(cpu, "ajusta", cpu_1664_asm_asm_comanda__ajusta);
127
 cpu_1664_asm_asm_comanda_ajunta(cpu, "implicada", cpu_1664_asm_asm_comanda__implicada);
128
 cpu_1664_asm_asm_comanda_ajunta(cpu, "ds", cpu_1664_asm_asm_comanda__ds);
129
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d1", cpu_1664_asm_asm_comanda__d1);
130
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d4", cpu_1664_asm_asm_comanda__d4);
131
 cpu_1664_asm_asm_comanda_ajunta(cpu, "do", cpu_1664_asm_asm_comanda__do);
132
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d2", cpu_1664_asm_asm_comanda__d2);
133
 cpu_1664_asm_asm_comanda_ajunta(cpu, "model", cpu_1664_asm_asm_comanda__model);
134
 cpu_1664_asm_asm_comanda_ajunta(cpu, "inclui", cpu_1664_asm_asm_comanda__inclui);
135
 cpu_1664_asm_asm_comanda_ajunta(cpu, "opera", cpu_1664_asm_asm_comanda__opera);
136
 
137
 cpu_1664_asm_ajunta__ccadena(cpu, ".opera ajusta ajusta_vacua"); //opera 'falsa' - pseudo op
138
 
139
 return cpu;
140
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.