[cfe-dev] Target-Triple changes in assembly; Who is wrong?

via cfe-dev cfe-dev at lists.llvm.org
Wed Feb 14 03:13:47 PST 2018


Which kind of context would help you to judge who is wrong?
Do you want the two assembly files? The C++ source code?



From:   Reid Kleckner <rnk at google.com>
To:     bjoern.gaier at horiba.com
Cc:     cfe-dev <cfe-dev at lists.llvm.org>
Date:   13.02.2018 19:37
Subject:        Re: [cfe-dev] Target-Triple changes in assembly; Who is 
wrong?



Without the context of the code being compiled, it's impossible to say if 
LLVM is right or not. It's worth mentioning though that there is no 
__thiscall convention on x64. That's a 32-bit-only thing.

If I had to guess, I'd say this is some struct return ABI detail that's 
going wrong.

On Mon, Feb 12, 2018 at 10:32 PM, via cfe-dev <cfe-dev at lists.llvm.org> 
wrote:
Hello Clang-People, 

I try to understand the system behind the target triple of clang - but I 
don't get it. I used clang to compile the same code with two different 
targets: 
--target=x86_64-pc-windows-msvc and --target=x86_64-pc-windows-elf. 

I let the dragon compile my code and wished for assembly output. The 
dragon did fine but the output confused me. 

When I looked into the functions I discovered strange difference. For 
example: 
msvc target generated: 
movq        %rdx, %rax 

but in elf the same line is: 
movq        %rcx, %rax 

Why is there (and in other places) such difference? The target is still 
windows, but the elf code is breaking the windows __thiscall calling 
convention. I expected that both output are compatible to windows. 

Is the dragon wrong, or is it me? 

Kind regards 
Björn 

Als GmbH eingetragen im Handelsregister Bad Homburg v.d.H. HRB 9816, 
USt.ID-Nr. DE 114 165 789
Geschäftsführer: Dr. Hiroshi Nakamura, Dr. Robert Plank, Markus Bode, 
Heiko Lampert, Hiroshi Kawamura, Takashi Nagano, Takeshi Fukushima.


_______________________________________________
cfe-dev mailing list
cfe-dev at lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev




Als GmbH eingetragen im Handelsregister Bad Homburg v.d.H. HRB 9816, 
USt.ID-Nr. DE 114 165 789
Geschäftsführer: Dr. Hiroshi Nakamura, Dr. Robert Plank, Markus Bode, 
Heiko Lampert, Hiroshi Kawamura, Takashi Nagano, Takeshi Fukushima.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180214/73a11a1f/attachment.html>


More information about the cfe-dev mailing list