]> sourceware.org Git - systemtap.git/commitdiff
2006-10-27 Thang Nguyen <thang.p.nguyen@intel.com>
authortpnguyen <tpnguyen>
Fri, 27 Oct 2006 23:55:12 +0000 (23:55 +0000)
committertpnguyen <tpnguyen>
Fri, 27 Oct 2006 23:55:12 +0000 (23:55 +0000)
* runtime/regs.c: patch from Bibo Mao for fixing the return
value on IA64 (bz #3404).

runtime/ChangeLog
runtime/regs.c

index 5872fc443585b1770adfd48f3ef78c8a7e21ba62..079b02ee0dac8e4791f6ef939bbe4b137ddf2b82 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-27  Thang Nguyen <thang.p.nguyen@intel.com>
+
+       * runtime/regs.c: patch from Bibo Mao for fixing the return
+       value on IA64 (bz #3404).
+
 2006-10-24  Li Guanglei <guanglei@cn.ibm.com>
 
        * runtime/lket/b2a/lket_b2a.[ch]: be sync with LKET hookid
index 3684ad3d9db6beb3f1cffe36dfd8b4c04e3ff00a..6a879966c48778c3fb2a7d9ba09c6ebf86dae89d 100644 (file)
@@ -39,7 +39,9 @@ static long ia64_fetch_register(int regno, struct pt_regs *pt_regs)
 {
        struct ia64_stap_get_arbsp_param pa;
 
-       if (regno < 32 || regno > 127)
+       if (regno >= 8 && regno <= 11)
+               return *(unsigned long *)(&pt_regs->r8 + regno - 8);
+       else if (regno < 32 || regno > 127)
                return 0;
 
        pa.ip = pt_regs->cr_iip;
@@ -56,8 +58,14 @@ static void ia64_store_register(int regno,
 {
        struct ia64_stap_get_arbsp_param pa;
        unsigned long rsc_save = 0;
-
-       if (regno < 32 || regno > 127)
+       unsigned long *addr;
+
+       if (regno >= 8 && regno <= 11) {
+               addr =&pt_regs->r8;
+               addr += regno - 8;
+               *(addr) = value;
+       }
+       else if (regno < 32 || regno > 127)
                return;
 
        pa.ip = pt_regs->cr_iip;
This page took 0.031936 seconds and 5 git commands to generate.