The Arm prologue skipping code is broken on 64-bit hosts. The problem is that the opcode is loaded as a signed integer, then stored in an "unsigned long". This is then compared against unsigned 32-bit constants. The attached patch fixes this by reading the instruction as an unsigned value. For consistency I made the same change in other similar routines. Tested with cross to arm-none-eabi. Ok? Paul 2006-02-15 Paul Brook * arm-tdep.c (arm_skip_prologue, thumb_get_next_pc, arm_get_next_pc): Load insn opcodes as unsigned values.