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

Subversion Repositories or1k

[/] [or1k/] [tags/] [nog_patch_42/] [or1ksim/] [cpu/] [common/] [abstract.c] - Diff between revs 543 and 546

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 543 Rev 546
Line 527... Line 527...
      cur_area->writefunc(memaddr, value & 0xFFFF);
      cur_area->writefunc(memaddr, value & 0xFFFF);
      mem_cycles += cur_area->delayw;
      mem_cycles += cur_area->delayw;
      break;
      break;
    case 4:
    case 4:
      temp = evalsim_mem32 (memaddr & ~3ul);
      temp = evalsim_mem32 (memaddr & ~3ul);
      temp &= 0xffff << ((memaddr & 2) ? 0 : 16);
      temp &= 0xffff << ((memaddr & 2) ? 16 : 0);
      temp |= (unsigned long)(value & 0xffff) << ((memaddr & 2) ? 16 : 0);
      temp |= (unsigned long)(value & 0xffff) << ((memaddr & 2) ? 0 : 16);
      setsim_mem32 (memaddr & ~3ul, temp);
      setsim_mem32 (memaddr & ~3ul, temp);
      break;
      break;
    }
    }
  } else {
  } else {
    printf("EXCEPTION: write out of memory (16-bit access to %.8lx)\n", memaddr);
    printf("EXCEPTION: write out of memory (16-bit access to %.8lx)\n", memaddr);
Line 570... Line 570...
      cur_area->writefunc(memaddr, value);
      cur_area->writefunc(memaddr, value);
      mem_cycles += cur_area->delayw;
      mem_cycles += cur_area->delayw;
      break;
      break;
    case 2:
    case 2:
      temp = evalsim_mem16 (memaddr & ~1ul);
      temp = evalsim_mem16 (memaddr & ~1ul);
      temp &= 0xff << ((memaddr & 1) ? 0 : 8);
      temp &= 0xff << ((memaddr & 1) ? 8 : 0);
      temp |= (unsigned short)(value & 0xff) << ((memaddr & 1) ? 8 : 0);
      temp |= (unsigned short)(value & 0xff) << ((memaddr & 1) ? 0 : 8);
      setsim_mem16 (memaddr & ~1ul, temp);
      setsim_mem16 (memaddr & ~1ul, temp);
      break;
      break;
    case 4:
    case 4:
      temp = evalsim_mem32 (memaddr & ~3ul);
      temp = evalsim_mem32 (memaddr & ~3ul);
      temp &= ~(0xff << (8 * (3 - (memaddr & 3))));
      temp &= ~(0xff << (8 * (3 - (memaddr & 3))));

powered by: WebSVN 2.1.0

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