디버그 모드일때그냥 순서대로 그대로 계산하긴하는데 뒤쪽에 64/3같은 경우에는 이미 계산이 되서 add만 해줌릴리즈 모드일때무슨 원리로 저런 계산식이 나오는지는 모르겠는데 저런식으로 알아서 바꿈신기하당
인스트럭션단위 최적화는 기계가 닝겐을 뛰어넘은지 꽤 오래됐죠
되서->돼서 (되어 = 돼임) [리듬 맞춤법 봇♬]
간단하잖아. a = ( a * 7 ) + 64 / 3 ->
a = ( a * 7 ) + 21 ->
a = ( a + 3 ) * 7 ->
a = ( a + 3 ) * 8 - ( a + 3 )
a +3 을 A 라고 표기해 보면, a = A * 8 - A
lea 를 통해 유효 주소를 가져오는 연산이 과거에는 정수 곱셈 보다 빨랐기 때문에 사용되는 트릭인데, 최신 CPU 와 컴파일러에선 저런짓 안할것 같음.
크 성님 머가리 씹오지는 부분 ㅇㅈ 근데 내 씨퓨 브로드웰에 VS2015인데 저렇게 나옴
노트북이라서 그럴수도 있는건가?
멀랑 타겟이 486인지. 컴파일러 제작자가 쳐 돌았는지.
노트북이라고 그렇게 되는 경우는 없어.