title: What does the endbr64 instruction actually do?
body: <p>I've been trying to understand assembly language code generated by GCC and frequently encounter this instruction at the start of many functions including <code>_start()</code>, but couldn't find any guide explaining its purpose:</p>
  <pre><code>31-0000000000001040 &lt;_start&gt;:
  32:    1040:    f3 0f 1e fa             endbr64 
  33-    1044:    31 ed                   xor    ebp,ebp
  </code></pre>