2012-02-10 4 views

답변

6

인텔 최적화 참조 설명서에서 분기 예측 장치에는 ret 명령어 (섹션 2.2.2.1)를보다 정확하게 예측하는 리턴 스택 버퍼가 있습니다. 또한 명령 대기열 및 디코드 장치는 스택 포인터의 변경 사항을 추적하여 디코딩 대역폭을 향상시킵니다 (2.2.2.5 절).

자세한 내용은 3.4.1.4 절에서는 대부분 컴파일러 작성자를 대상으로하는 "규칙"에 대해 설명하고 & 반환을 호출합니다. 가장 관련성이 높은 것은 아마도 near/far 호출이 near/far 호출과 near/far return, 스택에 리턴 주소를 넣고 호출 수신자에게 점프하는 것은 권장되지 않습니다. 또한 호출 깊이는 16 개의 중첩 호출 (RSB의 크기)을 초과하지 않는 것이 좋습니다.

이러한 규칙을 따르면 분기 선택 (3.4.1.6 절) 중에 간접 분기와 같이 효과적으로 처리 할 수 ​​있습니다. 병적 인 경우 또는 자체 수정 코드를 제외하고는 거의 ret에 실금이 발생하지 않습니다.

+0

오 와우 나는 이것이 최적화 매뉴얼에 문서화되었다는 것을 깨닫지 못했습니다! 자세한 답변을 주셔서 감사합니다. – Mehrdad

관련 문제