Re: [pcre-dev] [PATCH] JIT support with Intel compiler, old…

Top Page
Delete this message
Author: Daniel Richard G
Date:  
To: Zoltán Herczeg
CC: pcre-dev
Subject: Re: [pcre-dev] [PATCH] JIT support with Intel compiler, older Solaris
On Sat, 17 Nov 2012, Zoltán Herczeg wrote:

>> It would be easy enough to test---just disable the cpp case that uses
>> __cpuid().
>
> I cannot. GCC supports AT&T sytax only. Visual C does not support any
> inline assembly in 64 bit mode:
> http://msdn.microsoft.com/en-us/library/wbk4z78b.aspx (And I can confirm
> that is true). However, we might be able to test it with your ICC
> compiler, since it works on Win64 and supports inline assembly.


Hmm, that's a curious limitation for MSVC. But I'll be happy to test
things out with icl on 64-bit Windows.

>> Attached is the C source file I used, and an assembly file generated by
>> "icc -g -no-gcc -S".
>
> This is clearly cdecl. I also compiled it with GCC on linux, and it
> generates 3 different types of assembly code depending on the calling
> convention. I will send it privately to you.


So you said in that message that SLJIT does not support cdecl, because
this requires cleanup after the call, and that doesn't play well with
exception handling and such. So ICC needs to be coerced into generating
something different.

I don't know if this will be possible, but I'll investigate. (I'd be
surprised if ICC really doesn't support other calling conventions on
Linux/MacOSX, but I've yet to see any indication otherwise...)

> (Perhaps this whole chat could be private, I am not sure many people are
> interested. If someone wants to join this discussion about low level
> stuff, just send me an email)


Well, our audience here isn't just people following the list today, but
also people Googling for this information years from now. Hello readers in
2017! :-)

> Intel really says that cdecl and stdcall only affects Windows. But this
> is not true.
> http://software.intel.com/sites/products/documentation/hpc/composerxe/en-us/2011Update/fortran/win/lref_for/source_files/rfattcst.htm


It tells you how bad Intel's documentation on this is when you have to
cite their Fortran compiler reference....


--Daniel


--
Daniel Richard G. || danielg@??? || Software Developer
Teragram Linguistic Technologies (a division of SAS)
http://www.teragram.com/