Hi Rob, thanks that you are digging into this problem and maybe found the issue already. I'm a heavy Jal User I would call myself, but this is the first issue I found over the last years :-)
On Thursday, August 17, 2023 at 9:31:13 PM UTC+2 Rob CJ wrote: > Hi Andreas, > > I had a quick look at the generated assemble code for a PIC16. > > In your first code example the code is (I changed 3 times i into i, j and > k so I could compile it): > > ; 10 i=test1() > movlw 0 > movwf v_i > ; 11 if i>0 & i<13 then > movf v_i,w > bsf v__bitbucket, 0 ; _btemp1 > btfsc v__status, v__z > > In your last code example where you removed the function the code is: > > clrf v_k > ; 35 if k>0 & k<13 then > movf v_k,w > bsf v__bitbucket, 6 ; _btemp7 > btfsc v__status, v__z > > If I am right - and I hope I am not - the first piece of code does not > work because the Z flag (v__z) of the status register (v__status) is never > affected by any of these instructions. In the last code example the clrf > instruction sets the Z flag. > > In other words, moving the return value of 0 to v_i is not the same as > clearing the value of v_k. So it might be a compiler bug. I wonder why it > has not been discovered before. > > Still need to see if my draft conclusion is correct. > > Kind regards, > > Rob > > > > ------------------------------ > *Van:* '[email protected]' via jallib <[email protected]> > *Verzonden:* donderdag 17 augustus 2023 21:07 > *Aan:* jallib <[email protected]> > *Onderwerp:* Re: [jallib] IF statement fails > > Hello Rob, > PIC is a 18f26K83 > compiler called with: ../jalv25r7/compiler/jalv2-x86-64 -no-variable-reuse > no other specific setting > Thanks, > Andreas > > On Thursday, August 17, 2023 at 9:00:33 PM UTC+2 Rob CJ wrote: > > Hi, > > For which PIC did you compile this? 12, 16, 18? > > Did you use any compiler optimizations? > > Thanks. > > Kind regards, > > Rob > > ------------------------------ > *Van:* '[email protected]' via jallib <[email protected]> > *Verzonden:* woensdag 16 augustus 2023 22:18 > *Aan:* jallib <[email protected]> > *Onderwerp:* [jallib] IF statement fails > > Hello everyone, > > I found this code is not working (using jal jalv25r7, but also older > versions). Can anyone pls verify: > > > *var byte i * > > > *function test() return byte is return 0 end function* > > *i=test() * > *if i>0 & i<13 then* > > * -- goes here but is wrong * > *else* > * ..* > *end if* > > but this code works: > > *var byte i * > > > *function test() return byte is return 0 end function* > *i=test()* > *if i<13 & i>0 then* > > * .. * > *else* > > * -- goes here and OK * > *end if* > > if you remove the function, it works, too: > > *var byte i * > *i=0* > *if i>0 & i<13 then* > > * .. * > *else* > * -- goes here and OK* > *end if* > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to the Google Groups > "jallib" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/f2b66222-389b-4f41-8705-41e46aad4528n%40googlegroups.com.
