|
Message
From: gurumurt@c...<gurumurt@c...>
Date: Wed Jun 23 21:11:45 CEST 2004
Subject: [openrisc] Architecture simulation of basic.S
I just noticed that the report function is in support.c. But as seen from the traces that I given below, the report function doesnot match with the execution.
Here is the execution trace for the last few instructions in the basic.S I have typed in the corresponding instructions in brackets.
EXECUTED( 565): 040006dc: 0400008a (l.jal _report) GPR 0: 00000000 GPR 1: 00000001 GPR 2: 00000003 GPR 3: deaddead GPR 4: 00000000 GPR 5: 00008001 GPR 6: ffffffff GPR 7: fffffffa GPR 8: 1243f8b2 GPR 9: 040006e4 GPR10: 04000660 GPR11: 000007ff GPR12: 00000fff GPR13: 00001fff GPR14: 00003fff GPR15: 00007fff GPR16: ffff0012 GPR17: ffff0011 GPR18: ffff8010 GPR19: ffffc00f GPR20: ffffe00e GPR21: fffff00d GPR22: fffff80c GPR23: fffffc0b GPR24: fffffe0a GPR25: ffffff09 GPR26: ffffff88 GPR27: ffffffc7 GPR28: ffffffe6 GPR29: fffffff5 GPR30: fffffffc GPR31: 00000040 SR : 00008001 EPCR0: 040006bc EEAR0: 00000000 ESR0 : 00008001
EXECUTED( 566): 040006e0: 15000000 (l.nop 0) GPR 0: 00000000 GPR 1: 00000001 GPR 2: 00000003 GPR 3: deaddead GPR 4: 00000000 GPR 5: 00008001 GPR 6: ffffffff GPR 7: fffffffa GPR 8: 1243f8b2 GPR 9: 040006e4 GPR10: 04000660 GPR11: 000007ff GPR12: 00000fff GPR13: 00001fff GPR14: 00003fff GPR15: 00007fff GPR16: ffff0012 GPR17: ffff0011 GPR18: ffff8010 GPR19: ffffc00f GPR20: ffffe00e GPR21: fffff00d GPR22: fffff80c GPR23: fffffc0b GPR24: fffffe0a GPR25: ffffff09 GPR26: ffffff88 GPR27: ffffffc7 GPR28: ffffffe6 GPR29: fffffff5 GPR30: fffffffc GPR31: 00000040 SR : 00008001 EPCR0: 040006bc EEAR0: 00000000 ESR0 : 00008001
EXECUTED( 567): 04000904: 9c21fffc (l.addi r1,r1,-4) GPR 0: 00000000 GPR 1: fffffffd GPR 2: 00000003 GPR 3: deaddead GPR 4: 00000000 GPR 5: 00008001 GPR 6: ffffffff GPR 7: fffffffa GPR 8: 1243f8b2 GPR 9: 040006e4 GPR10: 04000660 GPR11: 000007ff GPR12: 00000fff GPR13: 00001fff GPR14: 00003fff GPR15: 00007fff GPR16: ffff0012 GPR17: ffff0011 GPR18: ffff8010 GPR19: ffffc00f GPR20: ffffe00e GPR21: fffff00d GPR22: fffff80c GPR23: fffffc0b GPR24: fffffe0a GPR25: ffffff09 GPR26: ffffff88 GPR27: ffffffc7 GPR28: ffffffe6 GPR29: fffffff5 GPR30: fffffffc GPR31: 00000040 SR : 00008001 EPCR0: 040006bc EEAR0: 00000000 ESR0 : 00008001
EXECUTED( 568): 04000908: d4011000 (l.sw 0x0(r1),r2) GPR 0: 00000000 GPR 1: fffffffd GPR 2: 00000003 GPR 3: deaddead GPR 4: 00000000 GPR 5: 00008001 GPR 6: ffffffff GPR 7: fffffffa GPR 8: 1243f8b2 GPR 9: 040006e4 GPR10: 04000660 GPR11: 000007ff GPR12: 00000fff GPR13: 00001fff GPR14: 00003fff GPR15: 00007fff GPR16: ffff0012 GPR17: ffff0011 GPR18: ffff8010 GPR19: ffffc00f GPR20: ffffe00e GPR21: fffff00d GPR22: fffff80c GPR23: fffffc0b GPR24: fffffe0a GPR25: ffffff09 GPR26: ffffff88 GPR27: ffffffc7 GPR28: ffffffe6 GPR29: fffffff5 GPR30: fffffffc GPR31: 00000040 SR : 00008001 EPCR0: 040006bc EEAR0: 00000000 ESR0 : 00008001
EXECUTED( 569): 00000600: 00000000 (l.j 0x0) GPR 0: 00000000 GPR 1: fffffffd GPR 2: 00000003 GPR 3: deaddead GPR 4: 00000000 GPR 5: 00008001 GPR 6: ffffffff GPR 7: fffffffa GPR 8: 1243f8b2 GPR 9: 040006e4 GPR10: 04000660 GPR11: 000007ff GPR12: 00000fff GPR13: 00001fff GPR14: 00003fff GPR15: 00007fff GPR16: ffff0012 GPR17: ffff0011 GPR18: ffff8010 GPR19: ffffc00f GPR20: ffffe00e GPR21: fffff00d GPR22: fffff80c GPR23: fffffc0b GPR24: fffffe0a GPR25: ffffff09 GPR26: ffffff88 GPR27: ffffffc7 GPR28: ffffffe6 GPR29: fffffff5 GPR30: fffffffc GPR31: 00000040 SR : 00008001 EPCR0: 04000908 EEAR0: fffffffd ESR0 : 00008001
There is an execption at 568th instruction, here is the exception message: "Exception 0x600 (Alignment) at 0x4000908, EA: 0xfffffffd, ppc: 0x4000908, npc: 0x400090c, #568"
Why would this exception happen?
One more thing here is the report function from support.c. void report(unsigned long value) { asm("l.addi\tr3,%0,0": :"r" (value)); asm("l.nop %0": :"K" (NOP_REPORT)); }
You would notice that these statements do not seem to correspond to the statements listed above. Am I missing something?
Thanks, Guru ----- Original Message ----- From: Matjaz Breskvar<phoenix@o...> To: Date: Wed Jun 23 15:51:16 CEST 2004 Subject: [openrisc] Architecture simulation of basic.S
> * gurumurt@c... (gurumurt@c...) wrote: > > When I run the basic.or32 thru the or32-uclinux-sim, I get > into the > > following problem. > >
> > One of the last instructions in the file is;
> > l.jal _report
> >
> > I dont find the pointer "_report" anywhere in the
> file. When I simulate it
> > (architecture simulation) it translates the above statement to
> > 1.jal 0x8a
> > And it jumps to that space and somewhere in that space it
> encounters
> > a jump to 0 and goes into an infinite loop of staying at 0th
> location.
> > This causes a problem when I run "run_sw" since it
> keeps on writing on
> > to the log file till it reaches the disk quota.
> > What should I do to avert this problem? Specifically, where
> does it jump
> > when it encounters l.jal _report?
> > Thanks,
> > Guru
> hm, symbol _report has to be somewhere else linker would complain.
> (any library you're linking with ?)
> regards,
> p.
>
>
|
 |