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

Subversion Repositories or1k_old

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1577 to Rev 1578
    Reverse comparison

Rev 1577 → Rev 1578

/trunk/or1ksim/testbench/support/support.c
33,8 → 33,8
/* return value by making a syscall */
void exit (int i)
{
asm("l.add r3,r0,%0": : "r" (i));
asm("l.nop %0": :"K" (NOP_EXIT));
__asm__ __volatile__ ("l.add r3,r0,%0\n\t"
"l.nop %1": : "r" (i), "K" (NOP_EXIT));
while (1);
}
 
43,16 → 43,18
{
va_list args;
va_start(args, fmt);
__asm__ __volatile__ (" l.addi\tr3,%0,0\n": : "r" (fmt) : "r3", "r4");
__asm__ __volatile__ (" l.addi\tr4,%0,0\n": : "r" (args): "r3", "r4");
__asm__ __volatile__ (" l.nop %0": : "K" (NOP_PRINTF));
__asm__ __volatile__ ("l.addi\tr3,%0,0\n\t"
"l.addi\tr4,%1,0\n\t"
"l.nop %2"
: : "r" (fmt), "r" (args), "K" (NOP_PRINTF)
: "r3", "r4");
}
 
/* print long */
void report(unsigned long value)
{
asm("l.addi\tr3,%0,0": :"r" (value));
asm("l.nop %0": :"K" (NOP_REPORT));
__asm__ __volatile__ ("l.addi\tr3,%0,0\n\t"
"l.nop %1": : "r" (value), "K" (NOP_REPORT));
}
 
/* just to satisfy linker */
80,7 → 82,7
/* For writing into SPR. */
void mtspr(unsigned long spr, unsigned long value)
{
asm("l.mtspr\t\t%0,%1,0": : "r" (spr), "r" (value));
__asm__ __volatile__ ("l.mtspr\t\t%0,%1,0": : "r" (spr), "r" (value));
}
 
/* For reading SPR. */
87,7 → 89,7
unsigned long mfspr(unsigned long spr)
{
unsigned long value;
asm("l.mfspr\t\t%0,%1,0" : "=r" (value) : "r" (spr));
__asm__ __volatile__ ("l.mfspr\t\t%0,%1,0" : "=r" (value) : "r" (spr));
return value;
}
 

powered by: WebSVN 2.1.0

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