Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0b77319742 
								
							 
						 
						
							
							
								
								Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60828 
							
						 
						
							2008-12-10 02:32:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								dfb97383d5 
								
							 
						 
						
							
							
								
								Eliminate a compile time warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59677 
							
						 
						
							2008-11-19 23:21:11 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								d3b33fea65 
								
							 
						 
						
							
							
								
								Fix indentation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59004 
							
						 
						
							2008-11-10 22:09:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9f3058f3be 
								
							 
						 
						
							
							
								
								Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58949 
							
						 
						
							2008-11-10 01:08:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								132de1983f 
								
							 
						 
						
							
							
								
								Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X  
							
							 
							
							... 
							
							
							
							indirect gv reference. Please don't call it lazy.
llvm-svn: 58746 
							
						 
						
							2008-11-05 01:50:32 +00:00  
						
					 
				
					
						
							
							
								 
								Mon P Wang
							
						 
						
							 
							
							
							
							
								
							
							
								ef89465c9f 
								
							 
						 
						
							
							
								
								x86_64 rip-relative and magic mode address  
							
							 
							
							... 
							
							
							
							llvm-svn: 58528 
							
						 
						
							2008-10-31 19:13:42 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								db30612fc4 
								
							 
						 
						
							
							
								
								Generate code for TLS instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58141 
							
						 
						
							2008-10-25 15:22:06 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								712886f561 
								
							 
						 
						
							
							
								
								Fix constant-offset emission for x86-64 absolute addresses. This  
							
							 
							
							... 
							
							
							
							fixes a bunch of test-suite JIT failures on x86-64 in
-relocation-model=static mode.
llvm-svn: 58066 
							
						 
						
							2008-10-24 01:57:54 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								27c3702267 
								
							 
						 
						
							
							
								
								Fix lfence and mfence encoding. These look like MRM5r and MRM6r instructions except they do not have any operands. The RegModRM byte is encoded with register number 0.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57692 
							
						 
						
							2008-10-17 17:14:20 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								46a9c01fff 
								
							 
						 
						
							
							
								
								Update size of inst correctly with segment override.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57414 
							
						 
						
							2008-10-12 10:30:11 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								23ee981e8e 
								
							 
						 
						
							
							
								
								Fix comment typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57381 
							
						 
						
							2008-10-11 19:34:24 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								2589777f3f 
								
							 
						 
						
							
							
								
								Add ability to override segment (mostly for code emitter purposes).  
							
							 
							
							... 
							
							
							
							llvm-svn: 57380 
							
						 
						
							2008-10-11 19:09:15 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								0d1e9a8e04 
								
							 
						 
						
							
							
								
								Switch the MachineOperand accessors back to the short names like  
							
							 
							
							... 
							
							
							
							isReg, etc., from isRegister, etc.
llvm-svn: 57006 
							
						 
						
							2008-10-03 15:45:36 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a79db30d28 
								
							 
						 
						
							
							
								
								Tidy up several unbeseeming casts from pointer to intptr_t.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55779 
							
						 
						
							2008-09-04 17:05:41 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								f16134141d 
								
							 
						 
						
							
							
								
								Allow inline asm nodes with empty bodies inside JIT.  
							
							 
							
							... 
							
							
							
							This unbreaks explicit reg vars inside JIT, which are
implemented in such hacky way :)
llvm-svn: 55128 
							
						 
						
							2008-08-21 17:33:01 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								75eeeb399e 
								
							 
						 
						
							
							
								
								Clean up whitespace.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55117 
							
						 
						
							2008-08-21 08:38:54 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								30e5dbb407 
								
							 
						 
						
							
							
								
								Make x86-64 JIT changes Darwin-specific.  
							
							 
							
							... 
							
							
							
							llvm-svn: 54700 
							
						 
						
							2008-08-12 21:02:08 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								d4a5e8f74a 
								
							 
						 
						
							
							
								
								In the absence of a linker to build the GOT, use the 32-bit  
							
							 
							
							... 
							
							
							
							non_lazy_ptr mechanism on x86-64 Darwin JIT.  Fixes a bunch
of last night's failures.
llvm-svn: 54692 
							
						 
						
							2008-08-12 18:23:48 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								dafdbf77b3 
								
							 
						 
						
							
							
								
								Some fixes for x86-64 JIT.  Make it use small code  
							
							 
							
							... 
							
							
							
							model, except for external calls; this makes
addressing modes PC-relative.  Incomplete.
The assertion at the top of Emitter::runOnMachineFunction
was obviously bogus (always true) so I removed it.
If someone knows what the correct test should be to cover
all the various targets, please fix.
llvm-svn: 54656 
							
						 
						
							2008-08-11 23:46:25 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								fb19f9402b 
								
							 
						 
						
							
							
								
								Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating  
							
							 
							
							... 
							
							
							
							the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943 
							
						 
						
							2008-07-01 00:05:16 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								974722b16f 
								
							 
						 
						
							
							
								
								runOnMachineFunction should set IsPIC because relocation model may have been changed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51291 
							
						 
						
							2008-05-20 01:56:59 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								00bd8d904a 
								
							 
						 
						
							
							
								
								- Fix atomic operation JIT encoding.  
							
							 
							
							... 
							
							
							
							- Remove unused instructions.
llvm-svn: 49921 
							
						 
						
							2008-04-18 20:55:36 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								24bc123e80 
								
							 
						 
						
							
							
								
								Unbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48447 
							
						 
						
							2008-03-17 06:56:52 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								77c8da7f00 
								
							 
						 
						
							
							
								
								Add debugging stuff.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48359 
							
						 
						
							2008-03-14 07:13:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3bd59641ac 
								
							 
						 
						
							
							
								
								Ignore debugging related instructions if they get this far.  
							
							 
							
							... 
							
							
							
							llvm-svn: 47934 
							
						 
						
							2008-03-05 02:34:36 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								80d6b87934 
								
							 
						 
						
							
							
								
								De-tabify  
							
							 
							
							... 
							
							
							
							llvm-svn: 47600 
							
						 
						
							2008-02-26 10:57:23 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								21ad494f67 
								
							 
						 
						
							
							
								
								Enable exception handling int JIT  
							
							 
							
							... 
							
							
							
							llvm-svn: 47079 
							
						 
						
							2008-02-13 18:39:37 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								7a55a94ba1 
								
							 
						 
						
							
							
								
								Avoid needlessly casting away const qualifiers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 46877 
							
						 
						
							2008-02-08 03:29:40 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8e60f2c996 
								
							 
						 
						
							
							
								
								IMPLICIT_USE and IMPLICIT_DEF are dead, remove them.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45838 
							
						 
						
							2008-01-10 19:27:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b0d06b4381 
								
							 
						 
						
							
							
								
								Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor  
							
							 
							
							... 
							
							
							
							llvm-svn: 45680 
							
						 
						
							2008-01-07 03:13:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								880b080887 
								
							 
						 
						
							
							
								
								X86 JIT PIC jumptable support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45616 
							
						 
						
							2008-01-05 02:26:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c1d1e54fc4 
								
							 
						 
						
							
							
								
								Unbreak tailcall opt in JIT.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45576 
							
						 
						
							2008-01-04 10:50:28 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								49ff8ecd03 
								
							 
						 
						
							
							
								
								X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45575 
							
						 
						
							2008-01-04 10:46:51 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								96334b4e3b 
								
							 
						 
						
							
							
								
								X86 PIC JIT bug fix: relocations for constantpool and jumptable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45515 
							
						 
						
							2008-01-02 23:38:59 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								345a00ba05 
								
							 
						 
						
							
							
								
								Preliminary PIC JIT support for X86 (32-bit) / Darwin.  
							
							 
							
							... 
							
							
							
							llvm-svn: 45313 
							
						 
						
							2007-12-22 09:40:20 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c891ae92dc 
								
							 
						 
						
							
							
								
								Fix x86-64 jit: remove reliance on Dwarf numbers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 44048 
							
						 
						
							2007-11-13 17:54:34 +00:00