ret
명령어가 간접 호출이기 때문에 x86의 ret
명령어가 파이프 라인을 정지 시키거나 더 직접적인 호출처럼 동작하도록 최적화되어 있습니까?"ret"가 파이프 라인을 정지합니까?
3
A
답변
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
에 실금이 발생하지 않습니다.
관련 문제
- 1. 파이프 라인을 어떻게 선언해야합니까?
- 2. 파이프 라인을 통해 전송
- 3. 파이프 라인을 사용하여베이스 라인을 제안하는 방법
- 4. 자산 파이프 라인을 사용하는 경우
- 5. Netty 파이프 라인을 효율적으로 사용합니다.
- 6. 파이썬 토네이도 redis - 파이프 라인을 수행하는 방법
- 7. 복잡한 파이프 라인을 수행하는 NSTask의 예
- 8. CMD는 파이프 입력에서 특정 라인을 반환합니다.
- 9. gstreamer 대문자가 파이프 라인을 차단하는 이유
- 10. Apache Camel이 Apache commons 파이프 라인을 대체합니까?
- 11. 은 gstreamer에서 두 개의 파이프 라인을 동기화합니다.
- 12. heroku에서 자산 파이프 라인을 비활성화하는 방법은 무엇입니까?
- 13. 기능이있는 파이프 라인을 사용하여 다른 결과 얻기
- 14. 왜 스레드가 waitfor에서 정지합니까?
- 15. 보기를로드하면 CodeIgniter에서 컨트롤러를 효과적으로 정지합니까?
- 16. XNA에서 모델 애니메이션을 어떻게 정지합니까?
- 17. 왜이 서브넷 클래스 어플리케이션이 정지합니까?
- 18. Select-Object는 PowerShell v3에서 파이프 라인을 어떻게 중지합니까? PowerShell을 V2에
- 19. Rails 3.1에서 새 자산 파이프 라인을 사용하려면 어떻게해야합니까?
- 20. Jenkins에서는 어떻게 서로 다른 두 가지 빌드 파이프 라인을 연결합니까?
- 21. 배포 파이프 라인을 제어하기 위해 TFS에서 빌드 품질을 사용하십시오.
- 22. 파이프 라인을 요청하기 위해 asp.net_isapi를 추가하면 성능이 저하됩니까?
- 23. 필터 내에서 PowerShell 파이프 라인을 종료하거나 중지 할 수 있습니까?
- 24. Python Scrapy, 항목에 파이프 라인을 정의하는 방법은 무엇입니까?
- 25. Rails 자산 파이프 라인을 모든 프로젝트에 가져 오시겠습니까?
- 26. 자산 파이프 라인을 통해 자바의 하위 폴더에서 이미지를 제공하는 방법
- 27. HL7을 사용하여 BizTalk 2006 R2에서 송신 파이프 라인을 실행하지 못했습니다.
- 28. 파이썬 stdout을 리눅스의 파이프 라인을 사용하여 C 표준으로 리디렉션하는 방법
- 29. 자산 파이프 라인을 사용하지 않고 Rails에서 공용 자산을 만들려면 어떻게해야합니까?
- 30. 자산 파이프 라인을 사용할 때 JS 파일의 이미지를 어떻게 참조합니까?
오 와우 나는 이것이 최적화 매뉴얼에 문서화되었다는 것을 깨닫지 못했습니다! 자세한 답변을 주셔서 감사합니다. – Mehrdad