Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Invalid update to pc in instruction
@ 2006-03-28 14:34 Girish Shilamkar
  2006-03-28 15:20 ` Daniel Jacobowitz
  0 siblings, 1 reply; 2+ messages in thread
From: Girish Shilamkar @ 2006-03-28 14:34 UTC (permalink / raw)
  To: gdb

Hi,
	While running kgdb kernel I got following error:

(gdb) p/x $pc
$4 = 0xc00ef530
(gdb) n
0xc00ef530 in memcpy () at uaccess.h:363
363     in uaccess.h
Invalid update to pc in instruction
(gdb) disas $pc
Dump of assembler code for function memcpy:
0xc00ef520 <memcpy+0>:  stmdb   sp!, {r0, r4, lr}
0xc00ef524 <memcpy+4>:  subs    r2, r2, #4      ; 0x4
0xc00ef528 <memcpy+8>:  blt     0xc00ef5dc <memcpy+188>
0xc00ef52c <memcpy+12>: ands    r12, r0, #3     ; 0x3
0xc00ef530 <memcpy+16>: pld     [r1]
0xc00ef534 <memcpy+20>: bne     0xc00ef5fc <memcpy+220>
0xc00ef538 <memcpy+24>: ands    r12, r1, #3     ; 0x3
0xc00ef53c <memcpy+28>: bne     0xc00ef62c <memcpy+268>


I am using cross gdb-6.4 for Intel PXA270 (armv5l) processor.
Kindly let me know in what scenario does the error msg "Invalid update
to pc in instruction" is displayed ?

Thanks & Regards,
-Girish.




^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Invalid update to pc in instruction
  2006-03-28 14:34 Invalid update to pc in instruction Girish Shilamkar
@ 2006-03-28 15:20 ` Daniel Jacobowitz
  0 siblings, 0 replies; 2+ messages in thread
From: Daniel Jacobowitz @ 2006-03-28 15:20 UTC (permalink / raw)
  To: Girish Shilamkar; +Cc: gdb

On Tue, Mar 28, 2006 at 02:55:53PM +0530, Girish Shilamkar wrote:
> 363     in uaccess.h
> Invalid update to pc in instruction

> 0xc00ef530 <memcpy+16>: pld     [r1]

> I am using cross gdb-6.4 for Intel PXA270 (armv5l) processor.
> Kindly let me know in what scenario does the error msg "Invalid update
> to pc in instruction" is displayed ?

A quick look in the source would find this message is issued in only
two places:

            if (bits (this_instr, 22, 25) == 0
                && bits (this_instr, 4, 7) == 9)        /* multiply */
              error (_("Invalid update to pc in instruction"));

and
                  if (bit (this_instr, 22))
                    error (_("Invalid update to pc in instruction"));

The prologue analyzer thinks that pld [r1] is an instruction which sets
PC, incorrectly.  It should be updated.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-03-28 14:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-28 14:34 Invalid update to pc in instruction Girish Shilamkar
2006-03-28 15:20 ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox