summaryrefslogtreecommitdiffstats
path: root/arch/ia64/ia32/ia32_entry.S
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2008-10-06 10:43:06 -0700
committerTony Luck <tony.luck@intel.com>2008-10-06 10:43:06 -0700
commitf14488ccfe0f41207e40520fab60dce356ed9e57 (patch)
treeef538012500f197397fbee674591910a96a50805 /arch/ia64/ia32/ia32_entry.S
parentcfb361f13c8136de78c406745abc4e4456e6d480 (diff)
[IA64] utrace use generic trace hook
Make IA64 use generic trace hook in some paths. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/ia32/ia32_entry.S')
-rw-r--r--arch/ia64/ia32/ia32_entry.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S
index ff88c48c5d1..b905dcb791f 100644
--- a/arch/ia64/ia32/ia32_entry.S
+++ b/arch/ia64/ia32/ia32_entry.S
@@ -108,6 +108,11 @@ GLOBAL_ENTRY(ia32_trace_syscall)
;;
st8 [r2]=r3 // initialize return code to -ENOSYS
br.call.sptk.few rp=syscall_trace_enter // give parent a chance to catch syscall args
+ cmp.lt p6,p0=r8,r0 // check tracehook
+ adds r2=IA64_PT_REGS_R8_OFFSET+16,sp // r2 = &pt_regs.r8
+ ;;
+(p6) st8.spill [r2]=r8 // store return value in slot for r8
+(p6) br.spnt.few .ret4
.ret2: // Need to reload arguments (they may be changed by the tracing process)
adds r2=IA64_PT_REGS_R1_OFFSET+16,sp // r2 = &pt_regs.r1
adds r3=IA64_PT_REGS_R13_OFFSET+16,sp // r3 = &pt_regs.r13