[softwarelist] Re: DPScan + ARMini -> crash?

  • From: David Pilling <flist@xxxxxxxxxxxxxxxxxxx>
  • To: davidpilling@xxxxxxxxxxxxx
  • Date: Wed, 20 Jul 2011 12:14:42 +0100

Hi,

In message <8D6FE89A-F532-4C45-933C-FCDA93709549@xxxxxxxxxxxxx>, Keith &
Elizabeth Hopper <qnh@xxxxxxxxxxxxx> writes
>>>>>> ADD     R13,R13,#4
>>>
>>>>>> LDR     R6,&0008FB24
>>>>>> LDR     R5,&00090490
>>>
>>>>>> CMP     R0,#0
>>>>>> BLT     &00090480

>     At the risk of sounding naive, has the crash anything to do with taking or
>not taking the branch? Is the result of the compare different with the two
>sequences of code?

The code is:

 while((event=nextevent(&es,POLLMASK,-1,-1,-1))>=0)
 {

  claimed|=eventstack[event].fn.pollmask(eventstack[event].handle,&wimpev
ent);
 }


The CMP maps to the >=0. As it happens there is always one POLLMASK
event, so we go through this loop twice, once with success and once with
fail. One time we do the BLT and one time we don't.

So yes, good question does it crash when it takes the branch or when it
does not. I tried to find that out, but putting in some printf()s stops
the crash from happening.


>     If the hardware 'knows' that the segment for the load contains a constant
>does this affect the pipeline length in the ARMini?? If it could do so then 
>might
>that be a clue?

No idea.



-- 
David Pilling
email: david@xxxxxxxxxxxxxxxxxxx
  web: http://www.davidpilling.net
 post: David Pilling, P.O. Box 22, Thornton-Cleveleys, Blackpool. FY5 1LR. UK
To unsubscribe or subscribe goto: //www.freelists.org/list/davidpilling

Other related posts: