이거 gcc에서 기본 최적화 옵션에서


인스트럭션 하나 줄였음. ㅇㅇㅇㅇ


사실 뭐 진짜 뭔 인스트럭션 죄다 줄여버리자고 이거 하고있는건 아니고,



1. 인라인 어셈블리를

2. 제대로

3. 사용하고 싶음



그게 끝임 ㅇㅇㅇㅇㅇ.


저 플래그 설정 하나하나 이해 제대로 못하면 병신짓을 존나 많이함.



오늘 알게된 사실 하나 알려줄게.


그니까 오늘 고작 성과가 이거 하나뿐인건데 (뭐 전반적인 이해는 둘째치고)


내가 맨 첨에 b 쪽에서

"+r" (b) 를 했었어


왜냐? 뭐 읽기랑 쓰기랑 같이 진행되면 +하라매? 하면서 + 걍 박고봤었다고


근데 이새끼가 뭔 병신짓을 하는거야?? 쓸데없는 정보를(초기화 이전) 구태여 할당받은 레지스터에다가 집어넣어서 보존하고 있더라고.



여기서 깨달음이 왔지 ㅇㅇㅇㅇ.



아 싸발


이거 걍


asm 블록 안에서, asm 블록 진입 이전시점의 값을 버릴거면 = 쓰는거구나???


operand 들중에서 read 하는 경우가 있으면 +인게 아니라 걍, 이전값을 보존해서 읽을 경우에 +를 쓰는거였음.



이상.



오늘은 이게 전부인거같다. ㅇㅇㅇ