跟着师兄在做Lapack库的优化,有几个函数实在搞不定,师兄说要通过把部分数值计算改成汇编码来实现性能提升。。。
求指导,怎样像C那样在Fortran代码里直接插汇编码?
------解决方案--------------------------------------------------------
一般不用这样的直接嵌入汇编的方式,你可以用dll的方式优化。
------解决方案--------------------------------------------------------
你用的是gcc中的Fortran,要使用AT&T语法的嵌入汇编才行啊。
__asm__("movl $5,-4(%ebp)\n\t");
你如果实在不习惯AT&T语法,只能使用nasm写外部汇编再连接进去了,nasm使用intel语法也能生成gcc使用的.o。
------解决方案--------------------------------------------------------
抱歉,我测试了一下,GFortran是不支持asm关键字的,intel Fortran也不支持,看来是我想当然了,以为CC、G++支持,Fortran也能支持。
这样的话,只能:1. 连接外部汇编代码;2. 连接外部C代码,在C代码中使用inline assembly。