|
Message
From: =?unknown-8bit?Q?Gy=F6rgy?= 'nog' Jeney<nog@s...>
Date: Mon Mar 28 10:15:33 CEST 2005
Subject: [openrisc] or1ksim patches #34-#67
> I'm also experiencing some differences in behaviour beetwen current cvs > tree (which also doesn't compile) and the stable branch. i'll investigate > as soon as these patches are commited to cvs.
What's the problem? (It works for me here).
> #34 missing.
Sent.
> #35 accepted. > #36 accepted, argee on comment about not needing floats. > #37 resend patch. (there is incorrect patch applied to email #37)
Resent.
> #38 accepted. > #39 accepted. > #40 accepted. > #41 accepted. > #42 accepted. > #43 missing.
Sent.
> #44 accepted. > #45 accepted, please make a comment somewhere appropriate that one shouldn't > assume except_handle returns. i might have additional comments later on.
Is the attached patch ok? Or were you thinking about something else?
> #46 accepted. > #47 accepted, with the same comment as #45 > #48 accepted. > #49 accepted. > #50 accepted. (why is "enabled = 1" line removed. how can one easily disable > some device ?)
Don't have the section in the config file. If this is a wanted behaviour then I could readd it...
> #51 missing. > #52 missing.
Sent.
> #53 accepted. why not print the whole SPR_SR then ?
1) I didn't need it. 2) It clutters the output. but the real reason: 3) Because of 1 I didn't think of it!
Would the attached patch53-2 be better?
> #54 accepted. > #55 accepted. > #56 accepted. > #57 accepted. > #58 accepted. > #59 accepted. We probably need a separation to the 'architectural access > (the one that real hw would do)' and the 'simulator internal accesses'. but > let it be like this for now. I agree with "I would go asfar as to argue that > mfspr() and mtspr() should only be called from > the l.mfspr and l.mtspr instructions."
What is not "architectural access (the one that real hw would do)" for the mtspr() function? I think all the calls to it in except_handle, etc. the real hw does aswell.
> #60 accepted. > #61 accepted. > #62 accepted. > #63 accepted. > #64 missing.
It's the recompiler. Even with a `bzip2 -9' it's 50kb. It's sitting in Jernej's moderation queue.
> #65 accepted. > #66 accepted. > #67 accepted.
nog. -------------- next part -------------- diff -urp --unidirectional-new-file /home/nog/or1ksim-split/cpu/or32/execute.c ./cpu/or32/execute.c --- /home/nog/or1ksim-split/cpu/or32/execute.c 2005-03-23 16:50:21.000000000 +0100 +++ ./cpu/or32/execute.c 2005-03-22 20:19:16.000000000 +0100 @@ -519,6 +519,11 @@ void dump_exe_log () break; opd++; } + if(or32_opcodes[iqueue[0].insn_index].flags & OR32_R_FLAG) { + fprintf (runtime.sim.fexe_log, "SR =%08x ", + cpu_state.sprs[SPR_SR]); + j++; + } while(j < 3) { fprintf (runtime.sim.fexe_log, " "); j++; -------------- next part --------------
--- cpu/or1k/except.c 2005-03-24 18:53:42.000000000 +0100
+++ /home/nog/or1ksim-ac/cpu/or1k/except.c 2005-03-28 10:10:26.000000000 +0200
@@ -79,6 +79,8 @@
#endif
/* Asserts OR1K exception. */
+/* WARNING: Don't excpect except_handle to return. Sometimes it _may_ return at
+ * other times it may not. */
void except_handle(oraddr_t except, oraddr_t ea)
{
oraddr_t except_vector;
--- pic/pic.c 2005-03-24 18:08:57.000000000 +0100
+++ /home/nog/or1ksim-ac/pic/pic.c 2005-03-28 10:07:46.000000000 +0200
@@ -67,6 +67,8 @@
/* WARNING: Don't eaven try and call this function *during* a simulated
* instruction!! (as in during a read_mem or write_mem callback). except_handle
* assumes that this is the case, it breaks otherwise. */
+/* WARNING2: Don't except report_interrupt to return! However, it also _may_
+ * return. Make sure you handle this case aswell. */
/* Asserts interrupt to the PIC. */
void report_interrupt(int line)
{
|
 |