diff --git a/include/osv/trace.hh b/include/osv/trace.hh
index 97bfccbad0345b519a6775d4169c65d2c63e3871..d4861e100bdb138f8bf4597d9e492525d1d87e22 100644
--- a/include/osv/trace.hh
+++ b/include/osv/trace.hh
@@ -299,6 +299,7 @@ public:
         sig = signature();
     }
     void operator()(r_args... as) {
+#ifdef __x86_64__
         asm goto("1: .byte 0x0f, 0x1f, 0x44, 0x00, 0x00 \n\t"  // 5-byte nop
                  ".pushsection .tracepoint_patch_sites, \"a\", @progbits \n\t"
                  ".quad %c[id] \n\t"
@@ -309,6 +310,7 @@ public:
                  : : [type]"i"(&typeid(*this)), [id]"i"(_id) : : slow_path);
         return;
         slow_path:
+#endif /* __x86_64__ */
         trace_slow_path(assign(as...));
     }
     void trace_slow_path(std::tuple<s_args...> as) __attribute__((cold)) {