select HAVE_OPROFILE
        select HAVE_GENERIC_DMA_COHERENT
        select HAVE_IOREMAP_PROT if MMU
+       select HAVE_ARCH_TRACEHOOK
        help
          The SuperH is a RISC processor targeted for use in embedded systems
          and consumer electronics; it was also used in the Sega Dreamcast
        def_bool !SUPERH64
        select HAVE_KPROBES
        select HAVE_KRETPROBES
-       select HAVE_ARCH_TRACEHOOK
        select HAVE_FUNCTION_TRACER
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_DYNAMIC_FTRACE
 
 #define KSTK_EIP(tsk)  ((tsk)->thread.pc)
 #define KSTK_ESP(tsk)  ((tsk)->thread.sp)
 
-#define user_stack_pointer(regs)       ((regs)->sp)
+#define user_stack_pointer(regs)       ((regs)->regs[15])
 
 #endif /* __ASSEMBLY__ */
 #endif /* __ASM_SH_PROCESSOR_64_H */
 
                                         unsigned long *args)
 {
        BUG_ON(i + n > 6);
-       memcpy(args, ®s->reg[2 + i], n * sizeof(args[0]));
+       memcpy(args, ®s->regs[2 + i], n * sizeof(args[0]));
 }
 
 static inline void syscall_set_arguments(struct task_struct *task,
                                         const unsigned long *args)
 {
        BUG_ON(i + n > 6);
-       memcpy(®s->reg[2 + i], args, n * sizeof(args[0]));
+       memcpy(®s->regs[2 + i], args, n * sizeof(args[0]));
 }
 
 #endif /* __ASM_SH_SYSCALL_64_H */