[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [patch] Arm/Thumb entry points
From: |
Paul Brook |
Subject: |
[Qemu-devel] [patch] Arm/Thumb entry points |
Date: |
Fri, 3 Feb 2006 15:14:13 +0000 |
User-agent: |
KMail/1.9.1 |
The patch fixes a bug in the arm usermode emulation. The CPU wasn't being
correctly initialized when the entry point is a Thumb function.
Paul
=== linux-user/elfload.c
==================================================================
--- linux-user/elfload.c (revision 1831)
+++ linux-user/elfload.c (local)
@@ -100,7 +100,9 @@
target_long *stack = (void *)infop->start_stack;
memset(regs, 0, sizeof(*regs));
regs->ARM_cpsr = 0x10;
- regs->ARM_pc = infop->entry;
+ if (infop->entry & 1)
+ regs->ARM_cpsr |= CPSR_T;
+ regs->ARM_pc = infop->entry & 0xfffffffe;
regs->ARM_sp = infop->start_stack;
regs->ARM_r2 = tswapl(stack[2]); /* envp */
regs->ARM_r1 = tswapl(stack[1]); /* argv */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [patch] Arm/Thumb entry points,
Paul Brook <=