Commit Graph

24 Commits

Author SHA1 Message Date
Craig Topper e55c556a24 Convert assert(0) to llvm_unreachable
llvm-svn: 149961
2012-02-07 02:50:20 +00:00
Jakob Stoklund Olesen f1fb1d2375 Ignore register mask operands when lowering instructions to MC.
This is similar to implicit register operands.  MC doesn't understand
register liveness and call clobbers.

llvm-svn: 148437
2012-01-18 23:52:19 +00:00
Evan Cheng a20cde31e7 Sink ARMMCExpr and ARMAddressingModes into MC layer. First step to separate ARM MC code from target.
llvm-svn: 135636
2011-07-20 23:34:39 +00:00
Jim Grosbach 95dee40343 Use TableGen'erated pseudo lowering for ARM.
Hook up the TableGen lowering for simple pseudo instructions for ARM and
use it for a subset of the many pseudos the backend has as proof of concept.

More conversions to come.

llvm-svn: 134705
2011-07-08 17:40:42 +00:00
Bill Wendling d13d13496f Add needed braces.
llvm-svn: 124273
2011-01-26 02:06:22 +00:00
Evan Cheng 965b3c7323 Model :upper16: and :lower16: as ARM specific MCTargetExpr. This is a step
in the right direction. It eliminated some hacks and will unblock codegen
work. But it's far from being done. It doesn't reject illegal expressions,
e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all.

llvm-svn: 123369
2011-01-13 07:58:56 +00:00
Jim Grosbach d0d1329fc8 Move the ARMAsmPrinter class defintiion into a header file.
llvm-svn: 120551
2010-12-01 03:45:07 +00:00
Jim Grosbach 38d90de7c3 Trailing whitespace.
llvm-svn: 120497
2010-11-30 23:29:24 +00:00
Chris Lattner 2aa8becf33 trim #includes.
llvm-svn: 119075
2010-11-14 21:16:04 +00:00
Chris Lattner de16ca8ecc rename LowerToMCInst -> LowerARMMachineInstrToMCInst.
llvm-svn: 119071
2010-11-14 21:00:02 +00:00
Chris Lattner c5afd12557 even more simplifications. ARM MCInstLowering is now just
a single function instead of a class.  It doesn't need the
complexity that X86 does.

llvm-svn: 119070
2010-11-14 20:58:38 +00:00
Chris Lattner 18442f5543 more shrinkification
llvm-svn: 119068
2010-11-14 20:41:53 +00:00
Chris Lattner 3040e8c69b more simplifications.
llvm-svn: 119067
2010-11-14 20:40:08 +00:00
Chris Lattner b28e691657 simplify and tidy up
llvm-svn: 119066
2010-11-14 20:31:06 +00:00
Jim Grosbach 85dcd3d0f4 Add support for ELF PLT references for ARM MC asm printing. Adding a
new VariantKind to the MCSymbolExpr seems like overkill, but I'm not sure
there's a more straightforward way to get the printing difference captured.
(i.e., x86 uses @PLT, ARM uses (PLT)).

llvm-svn: 114613
2010-09-22 23:27:36 +00:00
Jim Grosbach a9424d4f2f Enable a few additional asserts in MC instruction lowering.
llvm-svn: 114601
2010-09-22 23:01:28 +00:00
Jim Grosbach 003fd5b65e Remove a few commented out bits
llvm-svn: 114576
2010-09-22 20:32:34 +00:00
Jim Grosbach 0d35df1cfe handle the upper16/lower16 target operand flags on symbol references for MC
instruction lowering.

llvm-svn: 114191
2010-09-17 18:25:25 +00:00
Jim Grosbach ee1934a2da Make sure to promote single precision floats to double before extracting them
from the APFloat.

llvm-svn: 114096
2010-09-16 17:37:30 +00:00
Jim Grosbach 298d0fd1c8 store MC FP immediates as a double instead of as an APFloat, thus avoiding an
unnecessary dtor for MCOperand.

llvm-svn: 114064
2010-09-16 03:45:21 +00:00
Jim Grosbach 7bbf3fd0d6 Add support for floating point immediates to MC instruction printing. ARM
VFP instructions use it for loading some constants, so implement that
handling.

Not thrilled with adding a member to MCOperand, but not sure there's much of
a better option that's not pretty fragile (like putting a double in the
union instead and just assuming that's good enough). Suggestions welcome...

llvm-svn: 113996
2010-09-15 18:47:08 +00:00
Jim Grosbach cf98cbaef1 Don't ignore the CPSR implicit def when lowering a MachineInstruction to an MCInst.
llvm-svn: 113847
2010-09-14 20:41:27 +00:00
Jim Grosbach 7aeff13cae trailing whitespace
llvm-svn: 113768
2010-09-13 18:25:42 +00:00
Chris Lattner b792b463af sink the arm implementations of ASmPrinter and MCInstLower
out of the AsmPrinter directory into libarm.  Now the
ARM InstPrinters depend jsut on the MC stuff, not on vmcore
or codegen.

llvm-svn: 108783
2010-07-19 23:44:46 +00:00