Chris Lattner
							
						 
					 | 
					
						
						
							
						
						fee455ea6a
					 | 
					
						
						
							
							remove another magic number.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100606 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-07 05:27:36 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						885d94143d
					 | 
					
						
						
							
							propagate cookie management out one layer of function calls.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100510 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-06 00:58:50 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						6eb7806a5f
					 | 
					
						
						
							
							report errors through LLVMContext's inline asm handler if available.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100509 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-06 00:55:39 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						79180e2ef5
					 | 
					
						
						
							
							Give AsmParser an option to control whether it finalizes
						
						
						
						
						
						
						
						the stream.  New demo:
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_foo:
0000000000000000	subq	$0x08,%rsp
0000000000000004	movl	%edi,(%rsp)
0000000000000007	movl	%edi,%eax
0000000000000009	incl	%eax
000000000000000b	movl	%eax,(%rsp)
000000000000000e	movl	%eax,0x04(%rsp)
0000000000000012	addq	$0x08,%rsp
0000000000000016	ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100492 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-05 23:15:42 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						af632c91a0
					 | 
					
						
						
							
							add .o file writing for inline asm in llc.  Here's a silly
						
						
						
						
						
						
						
						demo:
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
<inline asm>:1:2: error: unrecognized instruction
	abc incl    %eax
	^
LLVM ERROR: Error parsing inline asm
Only problem seems to be that the parser finalizes OutStreamer 
at the end of the first inline asm, which isn't what we want.
For example:
$ cat asm.c
int foo(int X) {
 __asm__ ("incl    %0" : "+r" (X));
 return X;
}
$ clang asm.c -S -o - -emit-llvm | llc
...
	subq	$8, %rsp
	movl	%edi, (%rsp)
	movl	%edi, %eax
	## InlineAsm Start
	incl    %eax
	## InlineAsm End
	movl	%eax, (%rsp)
	movl	%eax, 4(%rsp)
	addq	$8, %rsp
	ret
$ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_foo:
0000000000000000	subq	$0x08,%rsp
0000000000000004	movl	%edi,(%rsp)
0000000000000007	movl	%edi,%eax
0000000000000009	incl	%eax
$ 
don't stop at inc!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100491 91177308-0d34-0410-b5e6-96231b3b80d8
						
						
					 | 
					
						2010-04-05 23:11:24 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						4c842dda39
					 | 
					
						
						
							
							stringref-ize the MemoryBuffer::get apis.  This requires
						
						
						
						
						
						
						
						a co-committed clang patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100485 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-05 22:42:30 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						7e1a8f882f
					 | 
					
						
						
							
							move uleb/sleb printing into AsmPrinter from DwarfPrinter.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100344 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-04 19:09:29 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						65eeaad91d
					 | 
					
						
						
							
							use stringref instead of strtol to avoid errno gymnastics.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100341 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-04 18:42:18 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 | 
				
			
				
					
						
							
							
								 
								Chris Lattner
							
						 
					 | 
					
						
						
							
						
						736e31d0cf
					 | 
					
						
						
							
							split inline asm support out to its own .cpp file.
						
						
						
						
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100340 91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 | 
					
						2010-04-04 18:34:07 +00:00 | 
					
					
						
						
						
							
							
							
							
							
							
							
							
						
					 |