HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ARM-software
speculation-barrier
Objective-C2018–2018
ARM-software / speculation-barrier · Archived

speculation-barrier

This project provides a header file which contains wrapper macros for the __builtin_load_no_speculate builtin function defined at https://www.arm.com/security-update This builtin function defines a speculation barrier, which can be used to limit the conditions under which a value which has been loaded can be used under speculative execution.

2Distinct people
2Mentions
0Explicit recommenders
46GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

This project provides a header file which contains wrapper macros for the __builtin_load_no_speculate builtin function defined at https://www.arm.com/security-update This builtin function defines a speculation barrier, which can be used to limit the conditions under which a value which has been loaded can be used under speculative execution.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by day2 dated mentions

Observed mentions: 2018-01-04 06:03:17 UTC to 2018-01-24 07:30:40 UTC.

012018-01-04 00:00:00 UTC to 2018-01-05 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 42018-01-05 00:00:00 UTC to 2018-01-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-06 00:00:00 UTC to 2018-01-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-07 00:00:00 UTC to 2018-01-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-08 00:00:00 UTC to 2018-01-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-09 00:00:00 UTC to 2018-01-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-10 00:00:00 UTC to 2018-01-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-11 00:00:00 UTC to 2018-01-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-12 00:00:00 UTC to 2018-01-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-13 00:00:00 UTC to 2018-01-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-14 00:00:00 UTC to 2018-01-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJan 142018-01-15 00:00:00 UTC to 2018-01-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-16 00:00:00 UTC to 2018-01-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-17 00:00:00 UTC to 2018-01-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-18 00:00:00 UTC to 2018-01-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-19 00:00:00 UTC to 2018-01-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-20 00:00:00 UTC to 2018-01-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-21 00:00:00 UTC to 2018-01-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-22 00:00:00 UTC to 2018-01-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-23 00:00:00 UTC to 2018-01-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-24 00:00:00 UTC to 2018-01-25 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsJan 24

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jan 42018-01-04 00:00:00 UTC2018-01-05 00:00:00 UTC101
Jan 52018-01-05 00:00:00 UTC2018-01-06 00:00:00 UTC000
Jan 62018-01-06 00:00:00 UTC2018-01-07 00:00:00 UTC000
Jan 72018-01-07 00:00:00 UTC2018-01-08 00:00:00 UTC000
Jan 82018-01-08 00:00:00 UTC2018-01-09 00:00:00 UTC000
Jan 92018-01-09 00:00:00 UTC2018-01-10 00:00:00 UTC000
Jan 102018-01-10 00:00:00 UTC2018-01-11 00:00:00 UTC000
Jan 112018-01-11 00:00:00 UTC2018-01-12 00:00:00 UTC000
Jan 122018-01-12 00:00:00 UTC2018-01-13 00:00:00 UTC000
Jan 132018-01-13 00:00:00 UTC2018-01-14 00:00:00 UTC000
Jan 142018-01-14 00:00:00 UTC2018-01-15 00:00:00 UTC000
Jan 152018-01-15 00:00:00 UTC2018-01-16 00:00:00 UTC000
Jan 162018-01-16 00:00:00 UTC2018-01-17 00:00:00 UTC000
Jan 172018-01-17 00:00:00 UTC2018-01-18 00:00:00 UTC000
Jan 182018-01-18 00:00:00 UTC2018-01-19 00:00:00 UTC000
Jan 192018-01-19 00:00:00 UTC2018-01-20 00:00:00 UTC000
Jan 202018-01-20 00:00:00 UTC2018-01-21 00:00:00 UTC000
Jan 212018-01-21 00:00:00 UTC2018-01-22 00:00:00 UTC000
Jan 222018-01-22 00:00:00 UTC2018-01-23 00:00:00 UTC000
Jan 232018-01-23 00:00:00 UTC2018-01-24 00:00:00 UTC000
Jan 242018-01-24 00:00:00 UTC2018-01-25 00:00:00 UTC101

What Hacker News says

2 sources
On ARM (A64, A32, T32) we get CSDB barrier, but it's a hint instruction instead of going via MSR registers. From whitepaper CSDB is 1101_0101_0000_0011_0010_0010_100_11111 Here some snippets from ARM manuals: HINT instruction: 1101 0101 0000 0011 0010 0010 100 11111 CRm = 0010 op2 = 100 Some encodings described here are not allocated in this revision of the architecture, and behave as NOPs. (This is important) Hints 18 to 23 variant Applies when CRm == 0010 && op2 != 00x. HINT #<imm> Hint is encoded in CRm:op2 pair, existing similar: 0010:000 ESB // Error Synchronization Barrier 0010:001 PSB CSYNC // Profiling Synchronization Barrier Thus in assembler this is written: hint #0x14 Which is a NOP if SOC does not understand this hint. It's being used here: http://lkml.iu.edu/hypermail/linux/kernel/1801.0/04191.html and also here: https://gith
Read the rest
ub.com/ARM-software/speculation-barrier/blob/mas... (which is being upstreamed to compilers in cross-platform generic form IIRC) ARM whitepaper states that conditional selection/conditional move is enough on most ARM implementations. If it's not the case then the new CSDB solves the problem. On older CPUs it's still a NOP. X-Gene disables branch prediction: http://lkml.iu.edu/hypermail/linux/kernel/1801.2/06482.html ThunderX2 branch prediction hardening: https://patchwork.kernel.org/patch/10151975/
In The new microcode from Intel and AMD adds three new features
Maybe it's just because this is a more technical update, but the responses from Intel[1] and AMD really seem like night and day to me. This page is for the most part clearly written and only has a minimal amount of BS before getting to the point about: • identifying the problems (without casting aspersions on other vendors or being FUD-y about issues that don't exist) • specifying what _specific_ hardware is vulnerable • info for developers (here's the patches you need if you're building your own kernel, here's a new compiler intrinsic that will be available soon for your applications, here [2] is code to implement the intrinsic yourself if you're not able to update your compiler) • slightly less useful info for end users (update your stuff, which isn't necessarily actionable advice for some of us on Android) • lets us know that future ha
Read the rest
rdware may still require the KPTI patches, but it sounds like the speculative execution issues that aren't fixed by the patches ("variant 1") will be fixed in hardware Things that still aren't great: • no mention of performance impact of their various mitigation strategies that surely someone would have benchmarked in the 6 months they've been working on this. However I'm sure before too much longer someone will grab that code from their github and compare it to regular memory accesses • this FAQ purporting to be in layman's terms definitely isn't [3]. Imagine telling your elderly relative that saw an article about scary computer bugs in the New York Times that the problem is just a "novel use of an existing side-channel technique" to "access data from privileged memory (DRAM or CPU cache)." [1] https://newsroom.intel.com/news/intel-responds-to-security-r... [2] https://github.com/ARM-software/speculation-barrier/blob/mas... [3] https://developer.arm.com/support/security-update/frequently...
In Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.