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

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_nova.c] - Rev 2

Compare with Previous | Blame | View Log

#include "cpu_1664.h"
 
struct cpu_1664 * cpu_1664_nova(nN cuantia)
{
 struct cpu_1664 *cpu=(struct cpu_1664 *)memoria_nova(sizeof(struct cpu_1664));
 cpu->lista_imaje=lista_nova(cuantia);
 
 nN i;
 for(i=0;i<(1<<cpu_1664_bitio_opera);i++)
 {
  cpu->opera_ajusta_vantaje[i]=i;
  cpu->opera_ajusta_usor[i]=i;
 }
 
 //cpu->opera_lista[cpu_1664_opera_ajusta]=cpu_1664_opera__ajusta;
 for(i=1; i<(1<<cpu_1664_bitio_ao); i++)
 {
  cpu->opera_lista[i]=cpu_1664_opera___; //opera nonlegal
 }
 
 cpu->opera_lista[cpu_1664_opera_yli]=cpu_1664_opera__yli;
 cpu->opera_lista[cpu_1664_opera_ylr]=cpu_1664_opera__ylr;
 cpu->opera_lista[cpu_1664_opera_ldi]=cpu_1664_opera__ldi;
 cpu->opera_lista[cpu_1664_opera_ldis]=cpu_1664_opera__ldis;
 cpu->opera_lista[cpu_1664_opera_ldm]=cpu_1664_opera__ldm;
 cpu->opera_lista[cpu_1664_opera_stm]=cpu_1664_opera__stm;
 cpu->opera_lista[cpu_1664_opera_ldr]=cpu_1664_opera__ldr;
 cpu->opera_lista[cpu_1664_opera_str]=cpu_1664_opera__str;
 cpu->opera_lista[cpu_1664_opera_cam]=cpu_1664_opera__cam;
 cpu->opera_lista[cpu_1664_opera_ldb]=cpu_1664_opera__ldb;
 cpu->opera_lista[cpu_1664_opera_stb]=cpu_1664_opera__stb;
 cpu->opera_lista[cpu_1664_opera_cmp]=cpu_1664_opera__cmp;
 cpu->opera_lista[cpu_1664_opera_dep]=cpu_1664_opera__dep;
 cpu->opera_lista[cpu_1664_opera_bit]=cpu_1664_opera__bit;
 cpu->opera_lista[cpu_1664_opera_rev]=cpu_1664_opera__rev;
 
 cpu->opera_lista[cpu_1664_opera_and]=cpu_1664_opera__and;
 cpu->opera_lista[cpu_1664_opera_or]=cpu_1664_opera__or;
 cpu->opera_lista[cpu_1664_opera_eor]=cpu_1664_opera__eor;
 cpu->opera_lista[cpu_1664_opera_mul]=cpu_1664_opera__mul;
 cpu->opera_lista[cpu_1664_opera_plu]=cpu_1664_opera__plu;
 cpu->opera_lista[cpu_1664_opera_sut]=cpu_1664_opera__sut;
 cpu->opera_lista[cpu_1664_opera_sutr]=cpu_1664_opera__sutr;
 cpu->opera_lista[cpu_1664_opera_div]=cpu_1664_opera__div;
 cpu->opera_lista[cpu_1664_opera_shl]=cpu_1664_opera__shl;
 cpu->opera_lista[cpu_1664_opera_shr]=cpu_1664_opera__shr;
 cpu->opera_lista[cpu_1664_opera_sar]=cpu_1664_opera__sar;
 
 cpu_1664_vantaje(cpu,1);
 
 for(i=0;i<1<<cpu_1664_bitio_r;i++)
 {
  cpu->sinia_vantaje[i]=0;
  cpu->sinia_usor[i]=0;
 }
 
 for(i=0;i<32;i++)
 {
  cpu->depende[i]=0;
 }
 
 for(i=0;i<32;i++)
 {
  cpu->opera_ajusta_vantaje[i]=i;
  cpu->opera_ajusta_usor[i]=i;
  cpu->opera_ajusta_asm[i]=i;
 }
// cpu->opera_ajusta_protejeda=0;
// cpu->depende_opera_influe_vantaje=0;
// cpu->depende_opera_influe_usor=0;
// cpu->sinia[cpu_1664_sinia_eseta]=0;
 
 cpu->opera_sicle=0;
 cpu->contador_sicle=0;
 cpu->contador_sicle_usor=0;
 cpu->contador_sicle_usor_limite=0;
 
 //asm
 cpu->asm_eror=0;
 cpu->lista_imaje_asm=lista_nova(0);
 cpu->lista_defina_sinia=lista_nova(0);
 cpu->lista_defina_valua=lista_nova(0);
 cpu->lista_opera_sinia=lista_nova(0);
// cpu->lista_opera_ajusta=lista_nova(0);
 cpu->lista_opera_parametre_sinia=lista_nova(0);
 cpu->lista_asm_opera_parametre_referi=lista_nova(0);
 cpu->lista_asm_opera_parametre_funsiona=lista_nova(0);
 cpu->lista_asm_comanda_sinia=lista_nova(0);
 cpu->lista_asm_comanda_funsiona=lista_nova(0);
 cpu->lista_taxe=lista_nova(0);
 cpu->lista_taxe_d=lista_nova(0);
 
 cpu->lista_eticeta_cadena=lista_nova(0);
 
  //inclui
  cpu->lista_inclui_curso=lista_nova(0);
  lista_ajunta__P(cpu->lista_inclui_curso, lista_nova__ccadena("/"));
 
 
 //model
 cpu->lista_model=lista_nova(0);
 cpu->lista_model_sinia=lista_nova(0);
 
 cpu->avisa__no_definida=0;
 
 //dev
 cpu->lista_dev_asm_desloca=lista_nova(0);
 cpu->lista_dev_asm_cadena=lista_nova(0);
 cpu->lista_dev_opera_cadena=lista_nova(0);
 cpu->lista_dev_opera_parametre_referi=lista_nova(0);
 cpu->lista_dev_opera_parametre_funsiona=lista_nova(0);
 
//a ordina frecuentia
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "2r6r", cpu_1664_asm_opera_parametre_funsiona__2r6r, cpu_1664_dev_opera_parametre_funsiona__2r6r);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8e", cpu_1664_asm_opera_parametre_funsiona__8e, cpu_1664_dev_opera_parametre_funsiona__8e);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8y", cpu_1664_asm_opera_parametre_funsiona__8y, cpu_1664_dev_opera_parametre_funsiona__8y);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "8ylr", cpu_1664_asm_opera_parametre_funsiona__8ylr, cpu_1664_dev_opera_parametre_funsiona__8ylr);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "m", cpu_1664_asm_opera_parametre_funsiona__m, cpu_1664_dev_opera_parametre_funsiona__m);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "6r2r", cpu_1664_asm_opera_parametre_funsiona__6r2r, cpu_1664_dev_opera_parametre_funsiona__6r2r);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "3e3e2e", cpu_1664_asm_opera_parametre_funsiona__3e3e2e, cpu_1664_dev_opera_parametre_funsiona__3e3e2e);
 cpu_1664_asm_opera_parametre_funsiona_ajunta(cpu, "ajusta_vacua", 0, 0);
 
//a ordina frecuentia
 cpu_1664_asm_asm_comanda_ajunta(cpu, "m", cpu_1664_asm_asm_comanda__m);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "defina", cpu_1664_asm_asm_comanda__defina);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "ajusta", cpu_1664_asm_asm_comanda__ajusta);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "implicada", cpu_1664_asm_asm_comanda__implicada);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "ds", cpu_1664_asm_asm_comanda__ds);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d1", cpu_1664_asm_asm_comanda__d1);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d4", cpu_1664_asm_asm_comanda__d4);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "do", cpu_1664_asm_asm_comanda__do);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "d2", cpu_1664_asm_asm_comanda__d2);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "model", cpu_1664_asm_asm_comanda__model);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "inclui", cpu_1664_asm_asm_comanda__inclui);
 cpu_1664_asm_asm_comanda_ajunta(cpu, "opera", cpu_1664_asm_asm_comanda__opera);
 
 cpu_1664_asm_ajunta__ccadena(cpu, ".opera ajusta ajusta_vacua"); //opera 'falsa' - pseudo op
 
 return cpu;
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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