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

Subversion Repositories 1664

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

Compare with Previous | Blame | View Log

#include "cpu_1664.h"
 
void cpu_1664_opera__ylr(struct cpu_1664 *cpu, n1 bait)
{
 cpu_1664_sinia_t desloca=0;
 nN eleje=bait>>6;
 nN sinia=bait&((1<<6)-1);
 
 switch(eleje)
 {
  case 0:
   desloca=cpu->sinia[sinia];
   cpu->opera_sicle=cpu_1664_sicle_opera_yli;
   break;
 
  case 2:
   desloca=cpu->sinia[cpu_1664_sinia_IP]+cpu->sinia[sinia];
   cpu->opera_sicle=cpu_1664_sicle_opera_yli;
   break;
 
  case 1:
   desloca=cpu_1664_umm(cpu, cpu->sinia[sinia], (1<<cpu_1664_umm_usor_mapa_permete_leje), sizeof(cpu_1664_sinia_t), 0);
 
   if(sinia==cpu_1664_sinia_IP)
   {
    desloca+=cpu->sinia[cpu_1664_sinia_IP];
    cpu->sinia[cpu_1664_sinia_IP]+=sizeof(cpu_1664_sinia_t);
   }
   cpu->opera_sicle=cpu_1664_sicle_opera_yli+cpu_1664_sicle_opera_ldm;
   break;
 
  case 3:
   desloca=cpu->sinia[cpu_1664_sinia_IP]+cpu_1664_umm(cpu, cpu->sinia[cpu_1664_sinia_IP]+cpu->sinia[sinia], (1<<cpu_1664_umm_usor_mapa_permete_leje), sizeof(cpu_1664_sinia_t), 0);
   cpu->opera_sicle=cpu_1664_sicle_opera_yli+cpu_1664_sicle_opera_ldm;
   break;
 }
 
 cpu->sinia[cpu_1664_sinia_reveni]=cpu->sinia[cpu_1664_sinia_IP];
 cpu->sinia[cpu_1664_sinia_IP]=desloca;
}

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.