Our new X account is live! Follow @wizwand_team for updates
WorkDL logo mark

On Abnormal Execution Timing of Conditional Jump Instructions

About

An extensive line of work on modern computing architectures has shown that the execution time of instructions can (i) depend on the operand of the instruction or (ii) be influenced by system optimizations, e.g., branch prediction and speculative execution paradigms. In this paper, we systematically measure and analyze timing variabilities in conditional jump instructions that can be macro-fused with a preceding instruction, depending on their placement within the binary. Our measurements indicate that these timing variations stem from the micro-op cache placement and the jump's offset in the L1 instruction cache of modern processors. We demonstrate that this behavior is consistent across multiple microarchitectures, including Skylake, Coffee Lake, and Kaby Lake, as well as various real-world implementations. We confirm the prevalence of this variability through extensive experiments on a large-scale set of popular binaries, including libraries from Ubuntu 24.04, Windows 10 Pro, and several open-source cryptographic libraries. We also show that one can easily avoid this timing variability by ensuring that macro-fusible instructions are 32-byte aligned - an approach initially suggested in 2019 by Intel in an overlooked short report. We quantify the performance impact of this approach across the cryptographic libraries, showing a speedup of 2.15% on average (and up to 10.54%) when avoiding the timing variability. As a by-product, we show that this variability can be exploited as a covert channel, achieving a maximum throughput of 16.14 Mbps.

Annika Wilde, Samira Briongos, Claudio Soriente, Ghassan Karame• 2026

Related benchmarks

TaskDatasetResultRank
Performance and code size impact evaluationBearSSL
Speedup10.29
3
Performance and code size impact evaluationBoringSSL
Speedup83
3
Performance and code size impact evaluationBotan
Speedup (%)1.74
3
Performance and code size impact evaluationCrypto++
Speedup18
3
Performance and code size impact evaluationGnuTLS
Speedup297
3
Performance and code size impact evaluationlibgcrypt
Speedup10
3
Performance and code size impact evaluationLibreSSL
Speedup (%)2.99
3
Performance and code size impact evaluationlibsecp256k1
Speedup19
3
Performance and code size impact evaluationlibtomcrypt
Speedup3.33
3
Performance and code size impact evaluationmbedTLS
Speedup85
3
Showing 10 of 17 rows

Other info

Follow for update