http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56997
--- Comment #10 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- incredibly... gcc 4.3.7 was the last version that did only write 5 bytes in foo(). starting with gcc 4.4 all variants read/write 8 bytes in foo(). that applies only to the arm code. the x86 code does not use more than 5 bytes.