microblaze: Do not use r0_ram space for syscall debugging
authorMichal Simek <monstr@monstr.eu>
Mon, 31 Jan 2011 14:04:43 +0000 (15:04 +0100)
committerMichal Simek <monstr@monstr.eu>
Wed, 9 Mar 2011 07:09:54 +0000 (08:09 +0100)
Remove syscall counting space from r0_ram. Use special
syscall_debug_table pool for syscall statistic.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/kernel/entry.S

index 41c30cd..5010f0b 100644 (file)
 /* The offset of the struct pt_regs in a `state save frame' on the stack. */
 #define PTO    STATE_SAVE_ARG_SPACE /* 24 the space for args */
 
+#ifdef DEBUG
+/* Create space for syscalls counting. */
+.section .data
+.global syscall_debug_table
+.align 4
+syscall_debug_table:
+       .space  (__NR_syscalls * 4)
+#endif /* DEBUG */
+
 #define C_ENTRY(name)  .globl name; .align 4; name
 
 /*
@@ -371,10 +380,14 @@ C_ENTRY(_user_exception):
        add     r12, r12, r12;
 
 #ifdef DEBUG
-       /* Trac syscalls and stored them to r0_ram */
-       lwi     r3, r12, 0x400 + r0_ram
+       /* Trac syscalls and stored them to syscall_debug_table */
+       /* The first syscall location stores total syscall number */
+       lwi     r3, r0, syscall_debug_table
+       addi    r3, r3, 1
+       swi     r3, r0, syscall_debug_table
+       lwi     r3, r12, syscall_debug_table
        addi    r3, r3, 1
-       swi     r3, r12, 0x400 + r0_ram
+       swi     r3, r12, syscall_debug_table
 #endif
 
        # Find and jump into the syscall handler.