예제 #1
0
 private void CreateStack(AssemblyCompilerContext assemblyContext, IMemberReference method)
 {
     using (var runtime = assemblyContext.GetOutputFileWriter("stack.s"))
     {
         runtime.WriteLine(".globl _setup_stack");
         runtime.WriteLine("	.def	_setup_stack;	.scl	2;	.type	32;	.endef");
         runtime.WriteLine("_setup_stack:");
         runtime.WriteLine("	movl %esp, %ecx");
         runtime.WriteLine("	movl 4(%esp), %esp");
         runtime.WriteLine("	call _{0}", method.Name);
         runtime.WriteLine("	movl %ecx, %esp");
         runtime.WriteLine("	ret");
     }
 }
예제 #2
0
 private void CreateStack(AssemblyCompilerContext assemblyContext, IMemberReference method)
 {
     using (var runtime = assemblyContext.GetOutputFileWriter("stack.s"))
     {
         runtime.WriteLine(".globl _setup_stack");
         runtime.WriteLine("	.def	_setup_stack;	.scl	2;	.type	32;	.endef");
         runtime.WriteLine("_setup_stack:");
         runtime.WriteLine("	movl %esp, %ecx");
         runtime.WriteLine("	movl 4(%esp), %esp");
         runtime.WriteLine("	call _{0}", method.Name);
         runtime.WriteLine("	movl %ecx, %esp");
         runtime.WriteLine("	ret");
     }
 }