Importing mkelfimage from
[coreboot.git] / util / mkelfImage / kunzip_src / arch / i386 / lib / start.S
diff --git a/util/mkelfImage/kunzip_src/arch/i386/lib/start.S b/util/mkelfImage/kunzip_src/arch/i386/lib/start.S
new file mode 100644 (file)
index 0000000..fec7c9d
--- /dev/null
@@ -0,0 +1,36 @@
+.text
+
+__original_registers:
+       .long 0, 0, 0, 0, 0, 0 , 0 , 0
+__entry:
+       .long entry
+
+.globl __start
+__start:
+       movl %eax, 0+__original_registers
+       movl %ebx, 4+__original_registers
+       movl %ecx, 8+__original_registers
+       movl %edx, 12+__original_registers
+       movl %esi, 16+__original_registers
+       movl %edi, 20+__original_registers
+       movl %esp, 24+__original_registers
+       movl %ebp, 28+__original_registers
+
+__normal_start:
+       movl $_estack, %esp
+       call kunzip
+
+.globl jmp_to_program_entry
+jmp_to_program_entry:
+       movl 4(%esp), %eax
+       movl %eax, __entry
+       movl 0+__original_registers, %eax
+       movl 4+__original_registers, %ebx
+       movl 8+__original_registers, %ecx
+       movl 12+__original_registers, %edx
+       movl 16+__original_registers, %esi
+       movl 20+__original_registers, %edi
+       movl 24+__original_registers, %esp
+       movl 28+__original_registers, %ebp
+       jmp *__entry
+       
\ No newline at end of file