mtmsr[fp] do not follow sync

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mtmsr[fp] do not follow sync

511 Views
poloyellow
Contributor I

hi,

   I had a test in mpc8640.  I try to do mtmsr[fp] but forget the synchronizing instruction followed.

for example:

/****************************************/

mfmsr  r3

rlwinm r3,r3,0,19,17     /*mask  fp*/

ori  r3,r3,0x1000   /* set ME*/

mtmsr  r3

sync

ori  r3,r3,0x2000   /* set fp, without sync followed*/

mtmsr  r3

stfd  f0,  48(r1)

/*********************************/

When I excute the code, the cpu seems do not enter any exception or interrupt, include machine check, and there isn't any response in serial port. So I don't know what the cpu is doing after the instruction 'stfd', and which state the cpu is in.

Can anyone give me any explanation?

 Thanks.

Polo Yellow

Tags (1)
0 Kudos
1 Reply

411 Views
alexander_yakov
NXP Employee
NXP Employee

According to E600 Core Reference Manual:

"A context synchronizing instruction must follow an mtmsr instruction"

This is said explicitly in section Section 2.1.4.4 "Machine State Register (MSR)"

In this statement word "must", as per my personal understanding, means that violating this rule will lead to unpredictable results.


Have a great day,
Alexander
TIC

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos