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


이거 원래 이럼?