Khi sử dụng Microsoft Visual C++ (không phải CLI, chỉ là bản địa chuẩn C++) có làm tối ưu hóa nội tuyến lắp đặt để vô hiệu hóa cho hàm không?Khối nội tuyến (__asm) có thể ngăn chặn tối ưu hóa chức năng không?
Khi tôi kiểm tra bằng IDA, một số mã chức năng bên ngoài khối dường như thay đổi, nhưng tôi không chắc nguyên nhân là gì. Hàm này là (tương đối) đơn giản, có thao tác bit và một số phép toán, nhưng không có các cuộc gọi bên ngoài.
Các nguyên nhân khác có thể tôi có thể nghĩ đến là:
- tắm trích lập để cho phép gỡ lỗi trong lắp ráp nội tuyến.
- Thay đổi để xử lý ngoại lệ (thực sự không giống như thế này)
- Một phần nội tuyến của một thứ khác do một số logic trình biên dịch không xác định.
Bất kỳ ý tưởng nào?
Ah, vì vậy nó vô hiệu hóa * một số * nhưng không * tất cả * tối ưu hóa. Điều đó trả lời câu hỏi của tôi một cách hoàn hảo. Cảm ơn. – Polynomial