Blame SOURCES/bz1431263.3.patch

67cbe3
commit 5a540e9f35dd91d26ea342d5b53a1f2d52109f72
67cbe3
Author: David Smith <dsmith@redhat.com>
67cbe3
Date:   Mon Mar 27 10:32:50 2017 -0500
67cbe3
67cbe3
    BZ1431263: Always use HW_BREAKPOINT_LEN_* macros.
67cbe3
    
67cbe3
    * tapsets.cxx (hwbkpt_derived_probe_group::emit_module_init): Always use
67cbe3
      HW_BREAKPOINT_LEN_* macros, not just on x86_64.
67cbe3
67cbe3
diff --git a/tapsets.cxx b/tapsets.cxx
67cbe3
index 9be2d04..ccd7cbb 100644
67cbe3
--- a/tapsets.cxx
67cbe3
+++ b/tapsets.cxx
67cbe3
@@ -10305,31 +10305,26 @@ hwbkpt_derived_probe_group::emit_module_init (systemtap_session& s)
67cbe3
   s.op->newline(-1) << "}";
67cbe3
   s.op->newline() << "hp->bp_type = skp->atype;";
67cbe3
 
67cbe3
-  // On x86 & x86-64, hp->bp_len is not just a number but a macro/enum (!?!).
67cbe3
-  if (s.architecture == "i386" || s.architecture == "x86_64" )
67cbe3
-    {
67cbe3
-      s.op->newline() << "switch(skp->len) {";
67cbe3
-      s.op->newline() << "case 1:";
67cbe3
-      s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_1;";
67cbe3
-      s.op->newline() << "break;";
67cbe3
-      s.op->newline(-1) << "case 2:";
67cbe3
-      s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_2;";
67cbe3
-      s.op->newline() << "break;";
67cbe3
-      s.op->newline(-1) << "case 3:";
67cbe3
-      s.op->newline() << "case 4:";
67cbe3
-      s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_4;";
67cbe3
-      s.op->newline() << "break;";
67cbe3
-      s.op->newline(-1) << "case 5:";
67cbe3
-      s.op->newline() << "case 6:";
67cbe3
-      s.op->newline() << "case 7:";
67cbe3
-      s.op->newline() << "case 8:";
67cbe3
-      s.op->newline() << "default:"; // XXX: could instead reject
67cbe3
-      s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_8;";
67cbe3
-      s.op->newline() << "break;";
67cbe3
-      s.op->newline(-1) << "}";
67cbe3
-    }
67cbe3
-  else // other architectures presumed straightforward
67cbe3
-    s.op->newline() << "hp->bp_len = skp->len;";
67cbe3
+  // Convert actual len to bp len.
67cbe3
+  s.op->newline() << "switch(skp->len) {";
67cbe3
+  s.op->newline() << "case 1:";
67cbe3
+  s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_1;";
67cbe3
+  s.op->newline() << "break;";
67cbe3
+  s.op->newline(-1) << "case 2:";
67cbe3
+  s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_2;";
67cbe3
+  s.op->newline() << "break;";
67cbe3
+  s.op->newline(-1) << "case 3:";
67cbe3
+  s.op->newline() << "case 4:";
67cbe3
+  s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_4;";
67cbe3
+  s.op->newline() << "break;";
67cbe3
+  s.op->newline(-1) << "case 5:";
67cbe3
+  s.op->newline() << "case 6:";
67cbe3
+  s.op->newline() << "case 7:";
67cbe3
+  s.op->newline() << "case 8:";
67cbe3
+  s.op->newline() << "default:"; // XXX: could instead reject
67cbe3
+  s.op->newline(1) << "hp->bp_len = HW_BREAKPOINT_LEN_8;";
67cbe3
+  s.op->newline() << "break;";
67cbe3
+  s.op->newline(-1) << "}";
67cbe3
 
67cbe3
   s.op->newline() << "probe_point = skp->probe->pp;"; // for error messages
67cbe3
   s.op->newline() << "#ifdef STAPCONF_HW_BREAKPOINT_CONTEXT";