从网上看到说,VC会放弃对含有内联汇编代码的函数,这是错误的。

我试验了一下,VC照样会内联含有汇编代码的函数,只要汇编代码里面不要有跳转到C++代码段的指令就可以了。原因可能是你这样跳转,编译器的智商就不足够处理寄存器的恢复问题了。我不知道ICL会不会有能力处理这样的问题?


所以要内联,就要避免跳转到C++代码段,在汇编代码段内部的跳转是允许的。如果VC没有内联,你可以用__forceinline关键字,这样再长的汇编代码都会被内联,十分恐怖就是了。我原来怀疑是成员函数不能内联,后来发现跟这无关。但是成员函数不能使用naked声明,这是一个限制,只好不用了,但是照样可以把光线追踪的核心求交函数写的很完美,既不破坏OOP的设计,又能保持很高的效率,通过内联获得效率是很合算的,而通过汇编优化又是终极手段。


}

相关文章:

  • 2021-06-11
  • 2021-11-18
  • 2021-05-17
  • 2021-11-12
  • 2021-11-25
  • 2021-08-20
  • 2021-10-04
  • 2021-12-12
猜你喜欢
  • 2021-08-18
  • 2021-08-19
  • 2021-10-25
  • 2021-10-11
  • 2021-12-29
  • 2022-12-23
  • 2021-12-17
相关资源
相似解决方案