eabd647cd5 
								
							 
						 
						
							
							
								
								Change target-specific classes to use more precise static types.  
							
							... 
							
							
							
							This eliminates the need for several awkward casts, including
the last dynamic_cast under lib/Target.
llvm-svn: 51091 
							
						 
						
							2008-05-14 01:58:56 +00:00  
				
					
						
							
							
								 
						
							
								00bd8d904a 
								
							 
						 
						
							
							
								
								- Fix atomic operation JIT encoding.  
							
							... 
							
							
							
							- Remove unused instructions.
llvm-svn: 49921 
							
						 
						
							2008-04-18 20:55:36 +00:00  
				
					
						
							
							
								 
						
							
								ae84bbdbed 
								
							 
						 
						
							
							
								
								Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented  
							
							... 
							
							
							
							llvm-svn: 49809 
							
						 
						
							2008-04-16 20:10:13 +00:00  
				
					
						
							
							
								 
						
							
								6db4b4cc65 
								
							 
						 
						
							
							
								
								Fix x86-64 encoding bug. REX prefix must always follow 0x0F prefix. For example, extractps in 64bit mode: 66 REX 0F 3A 17, not 66 0F 3A REX 17.  
							
							... 
							
							
							
							llvm-svn: 49157 
							
						 
						
							2008-04-03 08:53:17 +00:00  
				
					
						
							
							
								 
						
							
								24bc123e80 
								
							 
						 
						
							
							
								
								Unbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF.  
							
							... 
							
							
							
							llvm-svn: 48447 
							
						 
						
							2008-03-17 06:56:52 +00:00  
				
					
						
							
							
								 
						
							
								0e7b00d79f 
								
							 
						 
						
							
							
								
								Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF.  
							
							... 
							
							
							
							llvm-svn: 48380 
							
						 
						
							2008-03-15 00:03:38 +00:00  
				
					
						
							
							
								 
						
							
								77c8da7f00 
								
							 
						 
						
							
							
								
								Add debugging stuff.  
							
							... 
							
							
							
							llvm-svn: 48359 
							
						 
						
							2008-03-14 07:13:42 +00:00  
				
					
						
							
							
								 
						
							
								3bd59641ac 
								
							 
						 
						
							
							
								
								Ignore debugging related instructions if they get this far.  
							
							... 
							
							
							
							llvm-svn: 47934 
							
						 
						
							2008-03-05 02:34:36 +00:00  
				
					
						
							
							
								 
						
							
								801bfb2cf7 
								
							 
						 
						
							
							
								
								Rather than asserting. Dump out the MI that we are not able to encode and abort.  
							
							... 
							
							
							
							llvm-svn: 47933 
							
						 
						
							2008-03-05 02:08:03 +00:00  
				
					
						
							
							
								 
						
							
								0070dd1de3 
								
							 
						 
						
							
							
								
								Add lock prefix support to x86.  Also add the instructions necessary for the atomic ops.  They are still marked pseudo, since I cannot figure out what format to use, but they are the correct opcode.  
							
							... 
							
							
							
							llvm-svn: 47795 
							
						 
						
							2008-03-01 13:37:02 +00:00  
				
					
						
							
							
								 
						
							
								80d6b87934 
								
							 
						 
						
							
							
								
								De-tabify  
							
							... 
							
							
							
							llvm-svn: 47600 
							
						 
						
							2008-02-26 10:57:23 +00:00  
				
					
						
							
							
								 
						
							
								21ad494f67 
								
							 
						 
						
							
							
								
								Enable exception handling int JIT  
							
							... 
							
							
							
							llvm-svn: 47079 
							
						 
						
							2008-02-13 18:39:37 +00:00  
				
					
						
							
							
								 
						
							
								7a55a94ba1 
								
							 
						 
						
							
							
								
								Avoid needlessly casting away const qualifiers.  
							
							... 
							
							
							
							llvm-svn: 46877 
							
						 
						
							2008-02-08 03:29:40 +00:00  
				
					
						
							
							
								 
						
							
								8e60f2c996 
								
							 
						 
						
							
							
								
								IMPLICIT_USE and IMPLICIT_DEF are dead, remove them.  
							
							... 
							
							
							
							llvm-svn: 45838 
							
						 
						
							2008-01-10 19:27:54 +00:00  
				
					
						
							
							
								 
						
							
								03ad885039 
								
							 
						 
						
							
							
								
								rename TargetInstrDescriptor -> TargetInstrDesc.  
							
							... 
							
							
							
							Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695 
							
						 
						
							2008-01-07 07:27:27 +00:00  
				
					
						
							
							
								 
						
							
								f376c99ea0 
								
							 
						 
						
							
							
								
								rename hasVariableOperands() -> isVariadic().  Add some comments.  
							
							... 
							
							
							
							Evan, please review the comments I added to getNumDefs to make sure
that they are accurate, thx.
llvm-svn: 45687 
							
						 
						
							2008-01-07 05:19:29 +00:00  
				
					
						
							
							
								 
						
							
								b0d06b4381 
								
							 
						 
						
							
							
								
								Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor  
							
							... 
							
							
							
							llvm-svn: 45680 
							
						 
						
							2008-01-07 03:13:06 +00:00  
				
					
						
							
							
								 
						
							
								a98c679de0 
								
							 
						 
						
							
							
								
								Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects  
							
							... 
							
							
							
							that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into 
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around.  Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674 
							
						 
						
							2008-01-07 01:56:04 +00:00  
				
					
						
							
							
								 
						
							
								880b080887 
								
							 
						 
						
							
							
								
								X86 JIT PIC jumptable support.  
							
							... 
							
							
							
							llvm-svn: 45616 
							
						 
						
							2008-01-05 02:26:58 +00:00  
				
					
						
							
							
								 
						
							
								f55b7381af 
								
							 
						 
						
							
							
								
								Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be moved if needed.  
							
							... 
							
							
							
							llvm-svn: 45605 
							
						 
						
							2008-01-05 00:41:47 +00:00  
				
					
						
							
							
								 
						
							
								c1d1e54fc4 
								
							 
						 
						
							
							
								
								Unbreak tailcall opt in JIT.  
							
							... 
							
							
							
							llvm-svn: 45576 
							
						 
						
							2008-01-04 10:50:28 +00:00  
				
					
						
							
							
								 
						
							
								49ff8ecd03 
								
							 
						 
						
							
							
								
								X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.  
							
							... 
							
							
							
							llvm-svn: 45575 
							
						 
						
							2008-01-04 10:46:51 +00:00  
				
					
						
							
							
								 
						
							
								563fcc3428 
								
							 
						 
						
							
							
								
								Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be used  
							
							... 
							
							
							
							for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode).
llvm-svn: 45527 
							
						 
						
							2008-01-03 02:56:28 +00:00  
				
					
						
							
							
								 
						
							
								96334b4e3b 
								
							 
						 
						
							
							
								
								X86 PIC JIT bug fix: relocations for constantpool and jumptable.  
							
							... 
							
							
							
							llvm-svn: 45515 
							
						 
						
							2008-01-02 23:38:59 +00:00  
				
					
						
							
							
								 
						
							
								a5bb370aa4 
								
							 
						 
						
							
							
								
								Add new shorter predicates for testing machine operands for various types:  
							
							... 
							
							
							
							e.g. MO.isMBB() instead of MO.isMachineBasicBlock().  I don't plan on 
switching everything over, so new clients should just start using the 
shorter names.
Remove old long accessors, switching everything over to use the short
accessor: getMachineBasicBlock() -> getMBB(), 
getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
llvm-svn: 45464 
							
						 
						
							2007-12-30 23:10:15 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								345a00ba05 
								
							 
						 
						
							
							
								
								Preliminary PIC JIT support for X86 (32-bit) / Darwin.  
							
							... 
							
							
							
							llvm-svn: 45313 
							
						 
						
							2007-12-22 09:40:20 +00:00  
				
					
						
							
							
								 
						
							
								7a7085f6d3 
								
							 
						 
						
							
							
								
								Add parameter to getDwarfRegNum to permit targets  
							
							... 
							
							
							
							to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.
llvm-svn: 44056 
							
						 
						
							2007-11-13 19:13:01 +00:00  
				
					
						
							
							
								 
						
							
								c891ae92dc 
								
							 
						 
						
							
							
								
								Fix x86-64 jit: remove reliance on Dwarf numbers.  
							
							... 
							
							
							
							llvm-svn: 44048 
							
						 
						
							2007-11-13 17:54:34 +00:00  
				
					
						
							
							
								 
						
							
								7741427a09 
								
							 
						 
						
							
							
								
								Move getX86RegNum into X86RegisterInfo and use it  
							
							... 
							
							
							
							in the trampoline lowering.  Lookup the jump and
mov opcodes for the trampoline rather than hard
coding them.
llvm-svn: 41577 
							
						 
						
							2007-08-29 19:01:20 +00:00  
				
					
						
							
							
								 
						
							
								5fecb80efa 
								
							 
						 
						
							
							
								
								Change the x86 backend to use extract_subreg for truncation operations. Passes DejaGnu, SingleSource and MultiSource.  
							
							... 
							
							
							
							llvm-svn: 40578 
							
						 
						
							2007-07-29 01:24:57 +00:00  
				
					
						
							
							
								 
						
							
								ce38853cc6 
								
							 
						 
						
							
							
								
								Trampoline codegen support for X86-32.  
							
							... 
							
							
							
							llvm-svn: 40566 
							
						 
						
							2007-07-27 20:02:49 +00:00  
				
					
						
							
							
								 
						
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
				
					
						
							
							
								 
						
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								Use 'static const char' instead of 'static const int'.  
							
							... 
							
							
							
							Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								fb80151c42 
								
							 
						 
						
							
							
								
								Removed tabs everywhere except autogenerated & external files. Add make  
							
							... 
							
							
							
							target for tabs checking.
llvm-svn: 36146 
							
						 
						
							2007-04-16 18:10:23 +00:00  
				
					
						
							
							
								 
						
							
								f099841573 
								
							 
						 
						
							
							
								
								Add support for our first SSSE3 instruction "pmulhrsw".  
							
							... 
							
							
							
							llvm-svn: 35869 
							
						 
						
							2007-04-10 22:10:25 +00:00  
				
					
						
							
							
								 
						
							
								e278f30a52 
								
							 
						 
						
							
							
								
								Clean up.  
							
							... 
							
							
							
							llvm-svn: 35105 
							
						 
						
							2007-03-14 20:20:19 +00:00  
				
					
						
							
							
								 
						
							
								dda4c32db3 
								
							 
						 
						
							
							
								
								X86-64 JIT is in large code model. Need stubs for direct calls.  
							
							... 
							
							
							
							llvm-svn: 35097 
							
						 
						
							2007-03-14 10:51:55 +00:00  
				
					
						
							
							
								 
						
							
								f9e5445ed4 
								
							 
						 
						
							
							
								
								Make LABEL a builtin opcode.  
							
							... 
							
							
							
							llvm-svn: 33537 
							
						 
						
							2007-01-26 14:34:52 +00:00  
				
					
						
							
							
								 
						
							
								1ef9cd400d 
								
							 
						 
						
							
							
								
								eliminate static ctors for Statistic objects.  
							
							... 
							
							
							
							llvm-svn: 32703 
							
						 
						
							2006-12-19 22:59:26 +00:00  
				
					
						
							
							
								 
						
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
				
					
						
							
							
								 
						
							
								3b235aa5dc 
								
							 
						 
						
							
							
								
								JIT large code model support.  
							
							... 
							
							
							
							llvm-svn: 32220 
							
						 
						
							2006-12-05 07:29:55 +00:00  
				
					
						
							
							
								 
						
							
								62cdc3f011 
								
							 
						 
						
							
							
								
								- Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit  
							
							... 
							
							
							
							immediate in small code model. The JIT cannot ensure GV's are placed in the
lower 4G.
- Some preliminary support for large code model.
llvm-svn: 32215 
							
						 
						
							2006-12-05 04:01:03 +00:00  
				
					
						
							
							
								 
						
							
								67fc141db5 
								
							 
						 
						
							
							
								
								Match TargetInstrInfo changes.  
							
							... 
							
							
							
							llvm-svn: 32098 
							
						 
						
							2006-12-01 21:52:58 +00:00  
				
					
						
							
							
								 
						
							
								c8e81b8d48 
								
							 
						 
						
							
							
								
								Removed even more std::cerr and #include <iostream> things.  
							
							... 
							
							
							
							llvm-svn: 31813 
							
						 
						
							2006-11-17 07:52:03 +00:00  
				
					
						
							
							
								 
						
							
								14140059f0 
								
							 
						 
						
							
							
								
								Use TargetInstrInfo::getNumOperands() instead of MachineInstr::getNumOperands(). In preparation for implicit reg def/use changes.  
							
							... 
							
							
							
							llvm-svn: 31616 
							
						 
						
							2006-11-10 01:28:43 +00:00  
				
					
						
							
							
								 
						
							
								1698c2999c 
								
							 
						 
						
							
							
								
								Remove M_2_ADDR_FLAG.  
							
							... 
							
							
							
							llvm-svn: 31583 
							
						 
						
							2006-11-09 02:22:54 +00:00  
				
					
						
							
							
								 
						
							
								92e5113d48 
								
							 
						 
						
							
							
								
								Skip over first operand when determining REX prefix for two-address code.  
							
							... 
							
							
							
							llvm-svn: 30300 
							
						 
						
							2006-09-13 19:07:28 +00:00  
				
					
						
							
							
								 
						
							
								11b0a5dbd4 
								
							 
						 
						
							
							
								
								Committing X86-64 support.  
							
							... 
							
							
							
							llvm-svn: 30177 
							
						 
						
							2006-09-08 06:48:29 +00:00  
				
					
						
							
							
								 
						
							
								7f3f0973e6 
								
							 
						 
						
							
							
								
								Clean up.  
							
							... 
							
							
							
							llvm-svn: 30140 
							
						 
						
							2006-09-07 01:17:57 +00:00  
				
					
						
							
							
								 
						
							
								4c7a3fbdea 
								
							 
						 
						
							
							
								
								Watch out for variable_ops instructions.  
							
							... 
							
							
							
							llvm-svn: 30135 
							
						 
						
							2006-09-06 20:32:45 +00:00  
				
					
						
							
							
								 
						
							
								ac22e54131 
								
							 
						 
						
							
							
								
								Variable ops instructions may ignore the last few operands for code emission.  
							
							... 
							
							
							
							llvm-svn: 30134 
							
						 
						
							2006-09-06 20:24:14 +00:00  
				
					
						
							
							
								 
						
							
								e3d2e1e41e 
								
							 
						 
						
							
							
								
								Update the X86 JIT to make it work with the new two-addr changes.  This also  
							
							... 
							
							
							
							adds assertions that check to make sure every operand gets emitted.
llvm-svn: 30110 
							
						 
						
							2006-09-05 02:52:35 +00:00  
				
					
						
							
							
								 
						
							
								3d27be1333 
								
							 
						 
						
							
							
								
								s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|  
							
							... 
							
							
							
							llvm-svn: 29911 
							
						 
						
							2006-08-27 12:54:02 +00:00  
				
					
						
							
							
								 
						
							
								c664efe223 
								
							 
						 
						
							
							
								
								Give a good error message when we try to jit inline asm.  
							
							... 
							
							
							
							llvm-svn: 29891 
							
						 
						
							2006-08-26 00:47:03 +00:00  
				
					
						
							
							
								 
						
							
								78bf1074fc 
								
							 
						 
						
							
							
								
								Resolve BB references with relocation.  
							
							... 
							
							
							
							llvm-svn: 29351 
							
						 
						
							2006-07-27 18:21:10 +00:00  
				
					
						
							
							
								 
						
							
								f6acb34d23 
								
							 
						 
						
							
							
								
								- Refactor the code that resolve basic block references to a TargetJITInfo  
							
							... 
							
							
							
							method.
- Added synchronizeICache() to TargetJITInfo. It is called after each block
  of code is emitted to flush the icache. This ensures correct execution
  on targets that have separate dcache and icache.
- Added PPC / Mac OS X specific code to do icache flushing.
llvm-svn: 29276 
							
						 
						
							2006-07-25 20:40:54 +00:00  
				
					
						
							
							
								 
						
							
								0cc5907728 
								
							 
						 
						
							
							
								
								Hide x86 symbols  
							
							... 
							
							
							
							llvm-svn: 28976 
							
						 
						
							2006-06-28 23:27:49 +00:00  
				
					
						
							
							
								 
						
							
								0c9b90aba3 
								
							 
						 
						
							
							
								
								Eliminate unneeded parameter.  
							
							... 
							
							
							
							llvm-svn: 28907 
							
						 
						
							2006-06-22 00:02:55 +00:00  
				
					
						
							
							
								 
						
							
								fc1b27dad1 
								
							 
						 
						
							
							
								
								variable_ops instructions such as call can have any number of operands.  
							
							... 
							
							
							
							llvm-svn: 28906 
							
						 
						
							2006-06-21 23:37:07 +00:00  
				
					
						
							
							
								 
						
							
								9fee442e63 
								
							 
						 
						
							
							
								
								X86 integer register classes naming changes. Make them consistent with FP, vector classes.  
							
							... 
							
							
							
							llvm-svn: 28324 
							
						 
						
							2006-05-16 07:21:53 +00:00  
				
					
						
							
							
								 
						
							
								ee64b6b40f 
								
							 
						 
						
							
							
								
								Remove a bunch more dead V9 specific stuff  
							
							... 
							
							
							
							llvm-svn: 28094 
							
						 
						
							2006-05-04 01:26:39 +00:00  
				
					
						
							
							
								 
						
							
								6e663f1c1e 
								
							 
						 
						
							
							
								
								Remove some more V9-specific stuff.  
							
							... 
							
							
							
							llvm-svn: 28092 
							
						 
						
							2006-05-04 00:49:59 +00:00  
				
					
						
							
							
								 
						
							
								2aef59f123 
								
							 
						 
						
							
							
								
								Simplify handling of relocations  
							
							... 
							
							
							
							llvm-svn: 28090 
							
						 
						
							2006-05-04 00:42:08 +00:00  
				
					
						
							
							
								 
						
							
								e3a9c70ba0 
								
							 
						 
						
							
							
								
								Change from using MachineRelocation ctors to using static methods  
							
							... 
							
							
							
							in MachineRelocation to create Relocations.
llvm-svn: 28088 
							
						 
						
							2006-05-03 20:30:20 +00:00  
				
					
						
							
							
								 
						
							
								9e68942d78 
								
							 
						 
						
							
							
								
								inline a simple method  
							
							... 
							
							
							
							llvm-svn: 28083 
							
						 
						
							2006-05-03 17:21:32 +00:00  
				
					
						
							
							
								 
						
							
								1d8ee1fc80 
								
							 
						 
						
							
							
								
								Suck block address tracking out of targets into the JIT Emitter.  This  
							
							... 
							
							
							
							simplifies the MachineCodeEmitter interface just a little bit and makes
BasicBlocks work like constant pools and jump tables.
llvm-svn: 28082 
							
						 
						
							2006-05-03 17:10:41 +00:00  
				
					
						
							
							
								 
						
							
								43b1ed7e3d 
								
							 
						 
						
							
							
								
								Teach the x86 jit how to handle jump tables not directly used by a jump  
							
							... 
							
							
							
							instruction.
llvm-svn: 28080 
							
						 
						
							2006-05-03 04:52:47 +00:00  
				
					
						
							
							
								 
						
							
								d8b192ba3b 
								
							 
						 
						
							
							
								
								Change the BasicBlockAddrs map to be a vector, indexed by MBB number.  
							
							... 
							
							
							
							llvm-svn: 28069 
							
						 
						
							2006-05-03 00:32:55 +00:00  
				
					
						
							
							
								 
						
							
								b8065a9a3a 
								
							 
						 
						
							
							
								
								Several related changes:  
							
							... 
							
							
							
							1. Change several methods in the MachineCodeEmitter class to be pure virtual.
2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them
   from the MachineCodeEmitter interface, and reducing the amount of target-
   specific code.
3. Change the JITEmitter so that it allocates constantpools and jump tables
   *right* next to the functions that they belong to, instead of in a separate
   pool of memory.  This makes all memory for a function be contiguous, and
   means the JITEmitter only tracks one block of memory now.
llvm-svn: 28065 
							
						 
						
							2006-05-02 23:22:24 +00:00  
				
					
						
							
							
								 
						
							
								e1c96369e2 
								
							 
						 
						
							
							
								
								Fix a purely hypothetical problem (for now): emitWord emits in the host  
							
							... 
							
							
							
							byte format.  This doesn't work when using the code emitter in a cross target
environment.  Since the code emitter is only really used by the JIT, this
isn't a current problem, but if we ever start emitting .o files, it would be.
llvm-svn: 28060 
							
						 
						
							2006-05-02 19:14:47 +00:00  
				
					
						
							
							
								 
						
							
								c9aa3715e8 
								
							 
						 
						
							
							
								
								Refactor the machine code emitter interface to pull the pointers for the current  
							
							... 
							
							
							
							code emission location into the base class, instead of being in the derived classes.
This change means that low-level methods like emitByte/emitWord now are no longer
virtual (yaay for speed), and we now have a framework to support growable code
segments.  This implements feature request #1  of PR469.
llvm-svn: 28059 
							
						 
						
							2006-05-02 18:27:26 +00:00  
				
					
						
							
							
								 
						
							
								5bc9c583e3 
								
							 
						 
						
							
							
								
								There is no reason to use a virtual method to store this word.  
							
							... 
							
							
							
							llvm-svn: 28053 
							
						 
						
							2006-05-02 17:16:20 +00:00  
				
					
						
							
							
								 
						
							
								4ca2ea5b43 
								
							 
						 
						
							
							
								
								JumpTable support!  What this represents is working asm and jit support for  
							
							... 
							
							
							
							x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947 
							
						 
						
							2006-04-22 18:53:45 +00:00  
				
					
						
							
							
								 
						
							
								b1d3c64d1f 
								
							 
						 
						
							
							
								
								Add a couple more pseudo instructions.  
							
							... 
							
							
							
							llvm-svn: 26939 
							
						 
						
							2006-03-22 02:52:03 +00:00  
				
					
						
							
							
								 
						
							
								877ab55e06 
								
							 
						 
						
							
							
								
								ConstantPoolIndex is now the displacement portion of the address (rather  
							
							... 
							
							
							
							than base).
llvm-svn: 26382 
							
						 
						
							2006-02-26 09:12:34 +00:00  
				
					
						
							
							
								 
						
							
								73136dfecc 
								
							 
						 
						
							
							
								
								- Added option -relocation-model to set relocation model. Valid values include static, pic,  
							
							... 
							
							
							
							dynamic-no-pic, and default.
PPC and x86 default is dynamic-no-pic for Darwin, pic for others.
- Removed options -enable-pic and -ppc-static.
llvm-svn: 26315 
							
						 
						
							2006-02-22 20:19:42 +00:00  
				
					
						
							
							
								 
						
							
								5caed8a231 
								
							 
						 
						
							
							
								
								Jit does not support PIC yet.  
							
							... 
							
							
							
							llvm-svn: 26278 
							
						 
						
							2006-02-18 00:57:10 +00:00  
				
					
						
							
							
								 
						
							
								f84774ed46 
								
							 
						 
						
							
							
								
								Don't special case XS, XD prefixes.  
							
							... 
							
							
							
							llvm-svn: 26183 
							
						 
						
							2006-02-14 21:52:51 +00:00  
				
					
						
							
							
								 
						
							
								fb7b5ef74b 
								
							 
						 
						
							
							
								
								Bug fix: XS, XD prefixes were being emitted twice.  
							
							... 
							
							
							
							XMM registers were not being handled.
llvm-svn: 26182 
							
						 
						
							2006-02-14 21:45:24 +00:00  
				
					
						
							
							
								 
						
							
								9e350cd6ad 
								
							 
						 
						
							
							
								
								- Use xor to clear integer registers (set R, 0).  
							
							... 
							
							
							
							- Added a new format for instructions where the source register is implied
  and it is same as the destination register. Used for pseudo instructions
  that clear the destination register.
llvm-svn: 25872 
							
						 
						
							2006-02-01 06:13:50 +00:00  
				
					
						
							
							
								 
						
							
								be08957dc5 
								
							 
						 
						
							
							
								
								Fix a bunch of JIT failures with the new isel  
							
							... 
							
							
							
							llvm-svn: 25748 
							
						 
						
							2006-01-28 18:19:37 +00:00  
				
					
						
							
							
								 
						
							
								ed2bb8562f 
								
							 
						 
						
							
							
								
								Unbreak the JIT with SSE  
							
							... 
							
							
							
							llvm-svn: 25688 
							
						 
						
							2006-01-27 18:27:18 +00:00  
				
					
						
							
							
								 
						
							
								68e62a5184 
								
							 
						 
						
							
							
								
								Allow jit-beta to work  
							
							... 
							
							
							
							llvm-svn: 25578 
							
						 
						
							2006-01-24 04:50:48 +00:00  
				
					
						
							
							
								 
						
							
								de02d7727f 
								
							 
						 
						
							
							
								
								Add explicit #includes of <iostream>  
							
							... 
							
							
							
							llvm-svn: 25515 
							
						 
						
							2006-01-22 23:41:00 +00:00  
				
					
						
							
							
								 
						
							
								d831209c34 
								
							 
						 
						
							
							
								
								Refactor things a bit to allow the ELF code emitter to run the X86 machine code emitter  
							
							... 
							
							
							
							after itself.
llvm-svn: 22376 
							
						 
						
							2005-07-11 05:17:48 +00:00  
				
					
						
							
							
								 
						
							
								8a0933608a 
								
							 
						 
						
							
							
								
								First round of support for doing scalar FP using the SSE2 ISA extension and  
							
							... 
							
							
							
							XMM registers.  There are many known deficiencies and fixmes, which will be
addressed ASAP.  The major benefit of this work is that it will allow the
LLVM register allocator to allocate FP registers across basic blocks.
The x86 backend will still default to x87 style FP.  To enable this work,
you must pass -enable-sse-scalar-fp and either -sse2 or -sse3 to llc.
An example before and after would be for:
double foo(double *P) { double Sum = 0; int i; for (i = 0; i < 1000; ++i)
                        Sum += P[i]; return Sum; }
The inner loop looks like the following:
x87:
.LBB_foo_1:     # no_exit
        fldl (%esp)
        faddl (%eax,%ecx,8)
        fstpl (%esp)
        incl %ecx
        cmpl $1000, %ecx
        #FP_REG_KILL
        jne .LBB_foo_1  # no_exit
SSE2:
        addsd (%eax,%ecx,8), %xmm0
        incl %ecx
        cmpl $1000, %ecx
        #FP_REG_KILL
        jne .LBB_foo_1  # no_exit
llvm-svn: 22340 
							
						 
						
							2005-07-06 18:59:04 +00:00  
				
					
						
							
							
								 
						
							
								57279597ab 
								
							 
						 
						
							
							
								
								Tailcalls require stubs to be emitted.  Otherwise, the compilation callback  
							
							... 
							
							
							
							doesn't know who 'called' it.
llvm-svn: 22136 
							
						 
						
							2005-05-19 05:54:33 +00:00  
				
					
						
							
							
								 
						
							
								c88330ad13 
								
							 
						 
						
							
							
								
								* Remove trailing whitespace  
							
							... 
							
							
							
							* Convert tabs to spaces
llvm-svn: 21426 
							
						 
						
							2005-04-21 23:38:14 +00:00  
				
					
						
							
							
								 
						
							
								d68ebaacc0 
								
							 
						 
						
							
							
								
								There is no reason to emit function stubs for direct calls.  
							
							... 
							
							
							
							llvm-svn: 18082 
							
						 
						
							2004-11-21 03:46:06 +00:00  
				
					
						
							
							
								 
						
							
								d02c9eb697 
								
							 
						 
						
							
							
								
								Remove all JIT specific code and switch the code generator over to emitting  
							
							... 
							
							
							
							relocations for global references.
llvm-svn: 18068 
							
						 
						
							2004-11-20 23:55:15 +00:00  
				
					
						
							
							
								 
						
							
								4cd9def8b7 
								
							 
						 
						
							
							
								
								Dont' forget to switch back to decimal output  
							
							... 
							
							
							
							llvm-svn: 18010 
							
						 
						
							2004-11-19 20:57:07 +00:00  
				
					
						
							
							
								 
						
							
								2004d90f97 
								
							 
						 
						
							
							
								
								Fix a major bug in the signed shr code, which apparently only breaks 134.perl!  
							
							... 
							
							
							
							llvm-svn: 17902 
							
						 
						
							2004-11-16 18:40:52 +00:00  
				
					
						
							
							
								 
						
							
								6b7652fae5 
								
							 
						 
						
							
							
								
								Remove a dead function, which died when we got GAS emission working (phwew,  
							
							... 
							
							
							
							hold your nose!)
llvm-svn: 17869 
							
						 
						
							2004-11-16 04:34:29 +00:00  
				
					
						
							
							
								 
						
							
								c927072b50 
								
							 
						 
						
							
							
								
								Implement a simple FIXME: if we are emitting a basic block address that has  
							
							... 
							
							
							
							already been emitted, we don't have to remember it and deal with it later,
just emit it directly.
llvm-svn: 17868 
							
						 
						
							2004-11-16 04:30:51 +00:00  
				
					
						
							
							
								 
						
							
								2e182fc39b 
								
							 
						 
						
							
							
								
								* Merge some win32 ifdefs together  
							
							... 
							
							
							
							* Get rid of "emitMaybePCRelativeValue", either we want to emit a PC relative
  value or not: drop the maybe BS.  As it turns out, the only places where
  the bool was a variable coming in, the bool was a dynamic constant.
llvm-svn: 17867 
							
						 
						
							2004-11-16 04:21:18 +00:00  
				
					
						
							
							
								 
						
							
								9cc2dac7c1 
								
							 
						 
						
							
							
								
								Add debug-only=jit printout, so we see when lazily resolved symbols are  
							
							... 
							
							
							
							set up.
llvm-svn: 17862 
							
						 
						
							2004-11-15 23:16:55 +00:00  
				
					
						
							
							
								 
						
							
								ab79288e37 
								
							 
						 
						
							
							
								
								Fix compilation problem; make the cast and the LHS be the same type.  
							
							... 
							
							
							
							llvm-svn: 17488 
							
						 
						
							2004-11-05 16:17:06 +00:00  
				
					
						
							
							
								 
						
							
								429aaa5855 
								
							 
						 
						
							
							
								
								Quiet VC++ warnings  
							
							... 
							
							
							
							llvm-svn: 17484 
							
						 
						
							2004-11-05 04:50:59 +00:00