Commit Graph

59107 Commits

Author SHA1 Message Date
Anton Korobeynikov ed65671768 Reverse order of memory arguments
llvm-svn: 70734
2009-05-03 13:09:40 +00:00
Anton Korobeynikov 04888305f6 Remove bogus pattern
llvm-svn: 70733
2009-05-03 13:09:24 +00:00
Anton Korobeynikov 6399a3d628 Correct asmprinting of memory operands
llvm-svn: 70732
2009-05-03 13:09:10 +00:00
Anton Korobeynikov a3bce28ae0 Match wrapper node for address
llvm-svn: 70731
2009-05-03 13:08:51 +00:00
Anton Korobeynikov cfc97056e7 Add lowering for global address nodes. Not pretty efficient though.
llvm-svn: 70730
2009-05-03 13:08:33 +00:00
Anton Korobeynikov b5613928f5 Some early full call lowering draft for direct calls
llvm-svn: 70729
2009-05-03 13:08:13 +00:00
Anton Korobeynikov ec3f0b3f9d Add call frame setup instruction elimination and lowerid for bunch of call-related stuff.
llvm-svn: 70728
2009-05-03 13:07:54 +00:00
Anton Korobeynikov 5613510c81 Add CALL lowering.
llvm-svn: 70727
2009-05-03 13:07:31 +00:00
Anton Korobeynikov c995ddd017 Add bunch of mem-whatever patterns
llvm-svn: 70726
2009-05-03 13:07:10 +00:00
Anton Korobeynikov f702a0085c Add bunch of reg-mem inst patterns
llvm-svn: 70725
2009-05-03 13:06:46 +00:00
Anton Korobeynikov ed1c3dfa0f Add normal and trunc stores
llvm-svn: 70724
2009-05-03 13:06:26 +00:00
Anton Korobeynikov 31ecd23a9e Basic support for mem=>reg moves
llvm-svn: 70723
2009-05-03 13:06:03 +00:00
Anton Korobeynikov 80a73e7d8b Add 8-bit insts. zext behaviour is not modelled yet
llvm-svn: 70722
2009-05-03 13:05:42 +00:00
Anton Korobeynikov b900245e13 Add 8-bit regclass and pattern for sext_inreg
llvm-svn: 70721
2009-05-03 13:05:22 +00:00
Anton Korobeynikov b638fb10f5 Add pattern for OR
llvm-svn: 70720
2009-05-03 13:05:00 +00:00
Anton Korobeynikov 654cb0a761 Add reg-imm variants
llvm-svn: 70719
2009-05-03 13:04:41 +00:00
Anton Korobeynikov 37709c3584 Add hint to nop
llvm-svn: 70718
2009-05-03 13:04:23 +00:00
Anton Korobeynikov 6339db830e Add more instructions
llvm-svn: 70717
2009-05-03 13:04:06 +00:00
Anton Korobeynikov e32c817d2c Cleanup
llvm-svn: 70716
2009-05-03 13:03:50 +00:00
Anton Korobeynikov 15a515b1af Add dummy lowering for shifts
llvm-svn: 70715
2009-05-03 13:03:33 +00:00
Anton Korobeynikov 55a085b539 We don't have any div at all - thus mark it as expensive
llvm-svn: 70714
2009-05-03 13:03:14 +00:00
Anton Korobeynikov abb51755c8 We're not going to spend 100% of time in interrupts, do we? :)
llvm-svn: 70713
2009-05-03 13:02:57 +00:00
Anton Korobeynikov 8a17dff7d0 Add simple reg-reg add.
llvm-svn: 70712
2009-05-03 13:02:39 +00:00
Anton Korobeynikov 6ff6fc95a0 gas uses lower letter for register names
llvm-svn: 70711
2009-05-03 13:02:22 +00:00
Anton Korobeynikov d7afd69e3b Add code enough for emission of reg-reg and reg-imm moves. This allows us to compile "ret i16 0" properly!
llvm-svn: 70710
2009-05-03 13:02:04 +00:00
Anton Korobeynikov c942782b3b Add function body printing routine
llvm-svn: 70709
2009-05-03 13:01:41 +00:00
Anton Korobeynikov ef811d8e05 Add 'msp430' target triple recognizer
llvm-svn: 70708
2009-05-03 13:01:23 +00:00
Anton Korobeynikov a9b7df98e6 Make emit{Prologue,Epilogue}() noop for now
llvm-svn: 70707
2009-05-03 13:01:04 +00:00
Anton Korobeynikov 69f51f0b41 Add callee-saved regs & reg classes getter hooks
llvm-svn: 70706
2009-05-03 13:00:46 +00:00
Anton Korobeynikov efcd5aa381 Add simple FP indicator for given function hook
llvm-svn: 70705
2009-05-03 13:00:28 +00:00
Anton Korobeynikov c10f98ace3 Provide set of reserved registers
llvm-svn: 70704
2009-05-03 13:00:11 +00:00
Anton Korobeynikov 7bfc3ea2ee Add proper ISD::RET lowering
llvm-svn: 70703
2009-05-03 12:59:50 +00:00
Anton Korobeynikov 3849be6ca1 Add first draft of MSP430 calling convention stuff and draft of ISD::FORMAL_ARGUMENTS node lowering.
llvm-svn: 70702
2009-05-03 12:59:33 +00:00
Anton Korobeynikov 77e5a11ec2 Fix register names, fix register allocation order, handle frame pointer.
llvm-svn: 70701
2009-05-03 12:59:16 +00:00
Anton Korobeynikov 64717bbc14 Clearify the usage and add some debug stuff
llvm-svn: 70700
2009-05-03 12:58:58 +00:00
Anton Korobeynikov e10f69a8a7 Cleanup
llvm-svn: 70699
2009-05-03 12:58:40 +00:00
Anton Korobeynikov 128e8a188f Add cmake script. No idea whether it works or not :)
llvm-svn: 70698
2009-05-03 12:58:22 +00:00
Anton Korobeynikov 4130a7c1e7 Add a note
llvm-svn: 70697
2009-05-03 12:58:05 +00:00
Daniel Dunbar 961202372f Add a ComputeIvarBaseOffset overload taking an implementation
decl. Only this routine will be suitable for computing the offset of a
synthesized ivar.
 - No functionality change.

llvm-svn: 70696
2009-05-03 12:57:56 +00:00
Anton Korobeynikov 7c4db99df3 Typo
llvm-svn: 70695
2009-05-03 12:57:47 +00:00
Anton Korobeynikov 101380015c Dummy MSP430 backend
llvm-svn: 70694
2009-05-03 12:57:15 +00:00
Daniel Dunbar 7bee415836 Fix a possible memory error, the record layout entry could be
invalidated by layout out the super class, we cannot cache the map
entry.

llvm-svn: 70693
2009-05-03 11:41:43 +00:00
Daniel Dunbar 2b65fe3a32 Implement the interface/implementation layout distinction.
- These routines should now be independent of the Sema state.

 - This is nearly zero functionality change, the distinction only
   matters in the non-fragile ABI, and the consumers that care about
   this distinction should be using getASTObjCImplementationLayout.

llvm-svn: 70692
2009-05-03 11:16:44 +00:00
Daniel Dunbar 12119b959b Compute Objective-C metadata size information from the record layout,
not the shadow structure.

llvm-svn: 70691
2009-05-03 10:46:44 +00:00
Daniel Dunbar 02f7f5f6d6 Split out getASTObjCImplementationLayout
- The difference from getASTObjCInterfaceLayout is that the computes
   the layout including synthesized ivars.

 - No functionality change, they currently both compute the same thing
   -- whether that includes synthesized ivars or not depends on when
   they get called!!!

llvm-svn: 70690
2009-05-03 10:38:35 +00:00
Daniel Dunbar bc5a7a8894 Remove an unneeded special case.
llvm-svn: 70689
2009-05-03 10:35:52 +00:00
Daniel Dunbar d58929be46 PR4063, with feeling: Chain PP callbacks by default.
- This is somewhat cleaner and also fixes PR4063 for real, I had the
   order wrong so we were just creating an empty dependency file.

llvm-svn: 70687
2009-05-03 10:04:17 +00:00
Daniel Dunbar f6d272f241 PR4063: Fix dependency generation with -E.
llvm-svn: 70686
2009-05-03 09:35:25 +00:00
Chris Lattner 61af27860d look at the right operand when increasing the size of an asm output,
this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20

llvm-svn: 70685
2009-05-03 09:05:53 +00:00
Daniel Dunbar ccf6183687 Remove unused argument.
llvm-svn: 70684
2009-05-03 08:56:52 +00:00