Parity flag 반환하는 함수 만드는데
이건 첫번째 인자를 %rdi 에서 바로 구할 수 있나 해서 해본 건데 안 됨.
disassembly 봤더니 ret 이 없어서 밑에다 ret 추가했는데도 안 됨
그래서 그냥 GCC에서 지원하는 extended asm 써서 x를 인자로 넣었는데도 안 됨
이상한 게 어셈블리는 제대로 나옴
https://godbolt.org/z/3bsj5Geve
골 때리는 게 같은 코드 다른 세션에서 컴파일하니 이번엔 ret 이 없음
https://godbolt.org/z/4831WhzbK
울며 겨자 먹기로 따로 선언한 변수에다 저장하고 리턴하니 이건 또 됨
근데 좆같은 건 tmp가 다른 레지스터에 저장돼서 쓸 데 없이 instruction 두 개가 소모됨
https://godbolt.org/z/4rjMnjsf4
이거 원래 이럼?
씹ㅋㅋ clobbers 없애니까 %r8d 쓰는 건 사라졌는데 mov %eax, %eax 이건 도대체 왜 하는 거냐
https://godbolt.org/z/raMGbbWTK
내가 병신임
https://godbolt.org/z/zx3Eaz7TT