diff options
author | Matthias Braun <matze@braunis.de> | 2015-06-29 21:35:51 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2015-06-29 21:35:51 +0000 |
commit | abf88a0398d60bbf26d462dd84b9252c9098dc5a (patch) | |
tree | 3f8a04e4195cc2a47ca24172015c6edaaf9b1157 /llvm/lib/Support/LockFileManager.cpp | |
parent | 64c17c7d675e11b238decdec006afd3052ca63e2 (diff) | |
download | llvm-abf88a0398d60bbf26d462dd84b9252c9098dc5a.zip llvm-abf88a0398d60bbf26d462dd84b9252c9098dc5a.tar.gz llvm-abf88a0398d60bbf26d462dd84b9252c9098dc5a.tar.bz2 |
X86: Rework inline asm integer register specification.
This is a new version of http://reviews.llvm.org/D10260.
It turned out that when you specify an integer register in inline asm on
x86 you get the register of the required type size back. That means that
X86TargetLowering::getRegForInlineAsmConstraint() has to accept any of
the integer registers and adapt its size to the given target size which
may be any 8/16/32/64 bit sized type. Surprisingly that means given a
constraint of "{ax}" and a type of MVT::F32 we need to return X86::EAX.
This change makes this face explicit, the previous code seemed like
working by accident because there it never returned an error once a
register was found. On the other hand this rewrite allows to actually
return errors for invalid situations like requesting an integer register
for an i128 type.
Related to rdar://21042280
Differential Revision: http://reviews.llvm.org/D10813
llvm-svn: 241002
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
0 files changed, 0 insertions, 0 deletions