[Open64-devel] help on ALAT
Brought to you by:
ributzka,
suneeljain
From: Jin L. <ji...@cs...> - 2002-07-01 20:40:50
|
Hi, I have one question on handling procedure using ALAT. Considering the following code: C Code if (func()== NO_ERROR) { x=*a; } y=x+5 Assembly Code, Combined Speculation ld.sa r3=[r40] br.call b0=func mov r5=NO_ERROR;; cmp.eq p1,p0=r8,r5 (p1)chk.a r3, CORRECTION_CODE adds r5=0x5, r3 I am not sure how to prevent the entry r3 in ALAT from being replaced in the procedure func(). Suppose there exists one instruction ld.sa r3=[r50] executed in procedure func, it will replace the old entry in ALAT. If the load is successful and the data is validated, when it returns to the call site, the speculation will claim successful. However, the value is not correct. Will this happen? Thanks for any comments in advance. Jin |