Should inline asm work in 6.1?

I downloaded PGI 6.1-4 Win64 because I’d heard it supported inline asm. I can’t get this toy program to work. FWIW, asm(“nop”); does.

PGI$ cat cpuid.c
static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx){
asm(“cpuid”: “=a” (*eax), “=b” (*ebx), “=c” (*ecx), “=d” (*edx)
: “a” (op) : “cc”);
}

PGI$ pgcc -Mkeepasm cpuid.c
[eval copy text elided]

PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-S-0000-Internal compiler error. insert_argrsrv: unexpected arg ili 305 (cpuid.c: 4)
PGC-F-0008-Error limit exceeded (cpuid.c: 4)
PGC/win64/x86-64 win64 6.1-4: compilation aborted

Hi Bheeshmar,

We did recently add extended ASM support to our Linux compilers. Unfortunately, Win64 extended ASM support is still in process. I’ve added a technical problem report (TPR#3797) with this error which hopefully we’ll be able resolve in the 6.2 release.

Thanks,
Mat

Hi Bheeshmar,

FYI, We were able to add Win64 extended ASM support to the 6.1-5 release.

  • Mat