Closed Bug 627979 Opened 13 years ago Closed 13 years ago

[clang] "cannot compile this __asm__ yet" in xptcinvoke_x86_64_unix

Categories

(Core :: XPCOM, defect)

x86_64
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: Nomis101, Unassigned)

References

Details

After applying the patch from Bug 623129 I still get a lot of errors for xptcinvoke_x86_64_unix.cpp. I get:




/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_darwin.cpp
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:152:21: error: 
      cannot compile this __asm__ yet
    register double d0 asm("xmm0");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:153:21: error: 
      cannot compile this __asm__ yet
    register double d1 asm("xmm1");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:154:21: error: 
      cannot compile this __asm__ yet
    register double d2 asm("xmm2");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:155:21: error: 
      cannot compile this __asm__ yet
    register double d3 asm("xmm3");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:156:21: error: 
      cannot compile this __asm__ yet
    register double d4 asm("xmm4");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:157:21: error: 
      cannot compile this __asm__ yet
    register double d5 asm("xmm5");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:158:21: error: 
      cannot compile this __asm__ yet
    register double d6 asm("xmm6");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:159:21: error: 
      cannot compile this __asm__ yet
    register double d7 asm("xmm7");
                    ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:177:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a0 asm("rdi");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:178:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a1 asm("rsi");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:179:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a2 asm("rdx");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:180:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a3 asm("rcx");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:181:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a4 asm("r8");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:182:23: error: 
      cannot compile this __asm__ yet
    register PRUint64 a5 asm("r9");
                      ^
/Developer/temp/src/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_unix.cpp:202:23: error: 
      cannot compile this __asm__ yet
    register PRUint32 result asm("rax");
                      ^
15 errors generated.
make[9]: *** [xptcinvoke_x86_64_unix.o] Error 1
make[9]: *** Waiting for unfinished jobs....
make[8]: *** [libs] Error 2
make[7]: *** [libs] Error 2
make[6]: *** [libs] Error 2
make[5]: *** [libs] Error 2
make[4]: *** [libs] Error 2
make[3]: *** [libs_tier_platform] Error 2
make[2]: *** [tier_platform] Error 2
make[1]: *** [default] Error 2
make: *** [build] Error 2
What version of clang are you using? I recently (2 weeks I think) added support for this.
Ah, OK. I've build this with "Apple clang version 2.0 (tags/Apple/clang-131) (based on LLVM 2.9svn)".
I proposed we try with trunk first. Is it OK to close this bug? It will be a really hard one to work around if we really have to build with older versions of clang (hopefully the fix will be included in the final xcode 4).
(In reply to comment #3)
> I proposed we try with trunk first. Is it OK to close this bug? It will be a
> really hard one to work around if we really have to build with older versions
> of clang (hopefully the fix will be included in the final xcode 4).

I haven't tested with trunk yet, because I want to build with Xcode 4 clang. But if your fix will be included into final Xcode 4, I'm OK with closing this bug (but I think its unknown yet, isn't it?).
It in unknown if it will be included on xcode4. I will try to write a blog post about what I had to change on clang point some apple guys at it :-)
Oh, that sounds good. :-)
This was fixed by avoiding the inline asm.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.