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)) {