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