You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
		
		
			
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
	
	
|   | ; RUN: llc < %s -mtriple=x86_64-pc-win32-coreclr | FileCheck %s -check-prefix=WIN_X64
 | ||
|  | ; RUN: llc < %s -mtriple=x86_64-pc-linux         | FileCheck %s -check-prefix=LINUX
 | ||
|  | 
 | ||
|  | %Object = type <{ [0 x i64*]* }> | ||
|  | 
 | ||
|  | define void @C1(%Object addrspace(1)* %param0) gc "coreclr" { | ||
|  | entry: | ||
|  | 
 | ||
|  | ; WIN_X64: # %bb.0:
 | ||
|  | ; WIN_X64:	pushq	%rax
 | ||
|  | ; LINUX:   # %bb.0:                                 # %entry
 | ||
|  | ; LINUX:	movq	$0, -8(%rsp)
 | ||
|  | 
 | ||
|  |   %this = alloca %Object addrspace(1)* | ||
|  |   store volatile %Object addrspace(1)* null, %Object addrspace(1)** %this | ||
|  |   store volatile %Object addrspace(1)* %param0, %Object addrspace(1)** %this | ||
|  |   br label %0 | ||
|  | 
 | ||
|  | ; <label>:0                                       ; preds = %entry
 | ||
|  |   %1 = load %Object addrspace(1)*, %Object addrspace(1)** %this, align 8 | ||
|  | 
 | ||
|  | ; WIN_X64:	xorl	%r8d, %r8d
 | ||
|  | ; WIN_X64:	popq	%rax
 | ||
|  | ; WIN_X64:	jmp	  C2                  # TAILCALL
 | ||
|  | ; LINUX:	xorl	%edx, %edx
 | ||
|  | ; LINUX:	jmp	C2                      # TAILCALL
 | ||
|  | 
 | ||
|  |   tail call void @C2(%Object addrspace(1)* %1, i32 0, %Object addrspace(1)* null) | ||
|  |   ret void | ||
|  | } | ||
|  | 
 | ||
|  | declare void @C2(%Object addrspace(1)*, i32, %Object addrspace(1)*) | ||
|  | 
 | ||
|  | ; Function Attrs: nounwind
 | ||
|  | declare void @llvm.localescape(...) #0 | ||
|  | 
 | ||
|  | attributes #0 = { nounwind } | ||
|  | 
 |