https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104805
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- rbp is hard frame pointer, so depending on whether the function needs a frame pointer (at -O0 I think all functions do), the register isn't available for use (and therefore for clobbering) in inline asm. Only in functions where it isn't needed, it is not fixed then and can be used for other purposes.