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

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_opera__ylr.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
void cpu_1664_opera__ylr(struct cpu_1664 *cpu, n1 bait)
4
{
5
 cpu_1664_sinia_t desloca=0;
6
 nN eleje=bait>>6;
7
 nN sinia=bait&((1<<6)-1);
8
 
9
 switch(eleje)
10
 {
11
  case 0:
12
   desloca=cpu->sinia[sinia];
13
   cpu->opera_sicle=cpu_1664_sicle_opera_yli;
14
   break;
15
 
16
  case 2:
17
   desloca=cpu->sinia[cpu_1664_sinia_IP]+cpu->sinia[sinia];
18
   cpu->opera_sicle=cpu_1664_sicle_opera_yli;
19
   break;
20
 
21
  case 1:
22
   desloca=cpu_1664_umm(cpu, cpu->sinia[sinia], (1<<cpu_1664_umm_usor_mapa_permete_leje), sizeof(cpu_1664_sinia_t), 0);
23
 
24
   if(sinia==cpu_1664_sinia_IP)
25
   {
26
    desloca+=cpu->sinia[cpu_1664_sinia_IP];
27
    cpu->sinia[cpu_1664_sinia_IP]+=sizeof(cpu_1664_sinia_t);
28
   }
29
   cpu->opera_sicle=cpu_1664_sicle_opera_yli+cpu_1664_sicle_opera_ldm;
30
   break;
31
 
32
  case 3:
33
   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);
34
   cpu->opera_sicle=cpu_1664_sicle_opera_yli+cpu_1664_sicle_opera_ldm;
35
   break;
36
 }
37
 
38
 cpu->sinia[cpu_1664_sinia_reveni]=cpu->sinia[cpu_1664_sinia_IP];
39
 cpu->sinia[cpu_1664_sinia_IP]=desloca;
40
}

powered by: WebSVN 2.1.0

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