<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Assembly on Nikhil&#39;s blog</title>
    <link>https://master--suspicious-stonebraker-7d2d21.netlify.app/tags/assembly/</link>
    <description>Recent content in Assembly on Nikhil&#39;s blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 25 Dec 2017 11:14:05 -0800</lastBuildDate>
    <atom:link href="https://master--suspicious-stonebraker-7d2d21.netlify.app/tags/assembly/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Why does my stack have an extra 4 bytes? Digging into Clang&#39;s return value implementation</title>
      <link>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2017/why-does-stack-extra-bytes-digging-clangs-return/</link>
      <pubDate>Mon, 25 Dec 2017 11:14:05 -0800</pubDate>
      <guid>https://master--suspicious-stonebraker-7d2d21.netlify.app/post/2017/why-does-stack-extra-bytes-digging-clangs-return/</guid>
      <description>I was futzing around with some C code a few days ago and noticed that executables generated by Clang would sometimes have an extra 4 bytes on the stack. This was just for the main function. We can verify this is Compiler Explorer. Try switching to GCC and this doesn&amp;rsquo;t happen. This was interesting, so I spent a few hours over the holiday digging into why and how this happens. For the remainder of this post we will be using these 3 examples, which you can play with in Compiler Explorer.</description>
    </item>
  </channel>
</rss>
