Chris Lattner
							
						 | 
						
							
							
							
							
							
								
							
							
								3b21e4d404
								
							
						 | 
						
							
							
								
								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
llvm-svn: 100492 
							
						 | 
						
							2010-04-05 23:15:42 +00:00 | 
						
					
				
					
						
							
							
								 
								Chris Lattner
							
						 | 
						
							
							
							
							
							
								
							
							
								8900ef1931
								
							
						 | 
						
							
							
								
								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!
llvm-svn: 100491
							
						 | 
						
							2010-04-05 23:11:24 +00:00 |