diff options
author | Stan Cox <scox@redhat.com> | 2009-03-24 14:06:36 -0400 |
---|---|---|
committer | Stan Cox <scox@redhat.com> | 2009-03-24 14:06:36 -0400 |
commit | 8f7c6d4680717700fe8beb8cc6d59c241e6677ed (patch) | |
tree | f53a8f0ed39be1e3e2527b5f1f9af07d8cde100d /includes/sys | |
parent | 8e9d6257b102f40567b387fe45ab3d1474022f53 (diff) | |
download | systemtap-steved-8f7c6d4680717700fe8beb8cc6d59c241e6677ed.tar.gz systemtap-steved-8f7c6d4680717700fe8beb8cc6d59c241e6677ed.tar.xz systemtap-steved-8f7c6d4680717700fe8beb8cc6d59c241e6677ed.zip |
Use read operand "g" constraints.
* includes/sdt.h (STAP_PROBEN): Use R "g" instead of RW "+rm" which
can result in "read-only variable arg1 used as asm output"
Diffstat (limited to 'includes/sys')
-rw-r--r-- | includes/sys/sdt.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h index ac24b6fb..ba75076b 100644 --- a/includes/sys/sdt.h +++ b/includes/sys/sdt.h @@ -56,7 +56,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 */" : "+rm"(arg1)); \ + "\tnop /* %0 */" :: "g"(arg1)); \ } while (0) #define STAP_PROBE2_(probe,label,parm1,parm2) \ @@ -67,7 +67,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 */" : "+rm"(arg1), "+rm"(arg2)); \ + "\tnop /* %0 %1 */" :: "g"(arg1), "g"(arg2)); \ } while (0) #define STAP_PROBE3_(probe,label,parm1,parm2,parm3) \ @@ -79,7 +79,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3)); \ + "\tnop /* %0 %1 %2 */" :: "g"(arg1), "g"(arg2), "g"(arg3)); \ } while (0) #define STAP_PROBE4_(probe,label,parm1,parm2,parm3,parm4) \ @@ -92,7 +92,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4)); \ + "\tnop /* %0 %1 %2 %3 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4)); \ } while (0) #define STAP_PROBE5_(probe,label,parm1,parm2,parm3,parm4,parm5) \ @@ -106,7 +106,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5)); \ + "\tnop /* %0 %1 %2 %3 %4 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5)); \ } while (0) #define STAP_PROBE6_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6) \ @@ -121,7 +121,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 %5 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6)); \ + "\tnop /* %0 %1 %2 %3 %4 %5 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5), "g"(arg6)); \ } while (0) #define STAP_PROBE7_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \ @@ -137,7 +137,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 %5 %6 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7)); \ + "\tnop /* %0 %1 %2 %3 %4 %5 %6 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5), "g"(arg6), "g"(arg7)); \ } while (0) #define STAP_PROBE8_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \ @@ -154,7 +154,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8)); \ + "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5), "g"(arg6), "g"(arg7), "g"(arg8)); \ } while (0) #define STAP_PROBE9_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \ @@ -172,7 +172,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8), "+rm"(arg9)); \ + "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5), "g"(arg6), "g"(arg7), "g"(arg8), "g"(arg9)); \ } while (0) #define STAP_PROBE10_(probe,label,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \ @@ -191,7 +191,7 @@ do { \ STAP_PROBE_DATA(probe); \ label: \ __asm__ volatile ("2:\n" \ - "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 */" : "+rm"(arg1), "+rm"(arg2), "+rm"(arg3), "+rm"(arg4), "+rm"(arg5), "+rm"(arg6), "+rm"(arg7), "+rm"(arg8), "+rm"(arg9), "+rm"(arg10)); \ + "\tnop /* %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 */" :: "g"(arg1), "g"(arg2), "g"(arg3), "g"(arg4), "g"(arg5), "g"(arg6), "g"(arg7), "g"(arg8), "g"(arg9), "g"(arg10)); \ } while (0) #define STAP_PROBE(provider,probe) \ |