hi all, can anybody shed light on the following mystery? I'm using VisualDSP++ 1.0. With compiler patch 6.0.8 in place, I've noticed the following behavior on my ADSP-21160 when using interrupt(): C-function F() uses register i2 (interrupt occurs) : z3_int_determiner stores i2 z3_int_determiner uses i2 (call this i2') lib_int_cntrl saves i2' : interrupt handler executes & finishes : lib_int_cntrl restores i2' : return to F() F() uses register i2' so i2 is never actually restored for F() and everything goes to hell. is z3_int_determiner supposed to restore i2? or is this the intended behavior? thanks -Rob |
|
i2 not restored in interrupt dispatcher
Started by ●June 1, 2001
Reply by ●June 4, 20012001-06-04
Did this get broken in 608? I've got 607, and I don't see any
reference to i2 in z3_int_determiner. i2 does get saved and restored in lib_int_cntrl. The original library released with 1.0 had a bug where some registers weren't getting restored in the normal and fast dispatchers, but were in the super-fast dispatcher. Ken On Fri, 01 Jun 2001 20:10:05 -0000, Robert K Yu wrote: > I'm using VisualDSP++ 1.0. > > With compiler patch 6.0.8 in place, I've noticed the following > behavior on my ADSP-21160 when using interrupt(): > > C-function F() uses register i2 > (interrupt occurs) > : > z3_int_determiner stores i2 > z3_int_determiner uses i2 (call this i2') > lib_int_cntrl saves i2' > : > interrupt handler executes & finishes > : > lib_int_cntrl restores i2' > : > return to F() > F() uses register i2' > > so i2 is never actually restored for F() and > everything goes to hell. > > is z3_int_determiner supposed to restore i2? or is this > the intended behavior? |
|
Reply by ●June 6, 20012001-06-06
I've been in communication with ADI and they confirm that this is a new problem with 6.0.8. --- In adsp@y..., "Kenneth Porter" <kenneth_porter@k...> wrote: > Did this get broken in 608? I've got 607, and I don't see any reference > to i2 in z3_int_determiner. i2 does get saved and restored in > lib_int_cntrl. > > The original library released with 1.0 had a bug where some registers > weren't getting restored in the normal and fast dispatchers, but were > in the super-fast dispatcher. > > Ken > > On Fri, 01 Jun 2001 20:10:05 -0000, Robert K Yu wrote: > > > I'm using VisualDSP++ 1.0. > > > > With compiler patch 6.0.8 in place, I've noticed the following > > behavior on my ADSP-21160 when using interrupt(): > > > > C-function F() uses register i2 > > (interrupt occurs) > > : > > z3_int_determiner stores i2 > > z3_int_determiner uses i2 (call this i2') > > lib_int_cntrl saves i2' > > : > > interrupt handler executes & finishes > > : > > lib_int_cntrl restores i2' > > : > > return to F() > > F() uses register i2' > > > > so i2 is never actually restored for F() and > > everything goes to hell. > > > > is z3_int_determiner supposed to restore i2? or is this > > the intended behavior? |