gusman13
Joined: 15 Dec 2008 Posts: 1
|
04 Nov 2009 15:46 Possible MPLAB - PICC (HI-TECH) compiling bugs |
|
|
|
|
Compiler: HI-TECH PICC v9.60PL5 (PRO, Lite) & PICC v9.70PL0 (PRO,Lite)
MPLAB 8.40, 8.30
MPLAB HI-TECH Plug-In v1.35
Situations
------------
1) Defining two or more assembly instructions asm("instruction") in #define resulting in wrong code.
| Code: |
#include <htc.h>
#define nop() asm("nop")
#define testnop() { nop(); nop(); nop();}
#define testnop1() nop(); nop(); nop()
void main(void)
{
/* Routine 1*/
/* Routine 2*/
testnop();
/* Routine 3*/
/* Routine 4*/
/* Routine 5*/
}
|
The result assembly code is unexpected....
| Code: |
...
...
call routine2
NOP
call routine3
NOP
call routine4
NOP
...
...
|
It places 3 nops but one nop before every other command or call...
Strange thing is that in HI-TIDE v3.15PL2 there is no problem. 3 NOP in the right place.
2) Wrong bit assignment of 'c', 'z' etc in Status register
3) Yesterday I wrote a program and somehow in asm("---") generated btfsc for btfss and vice-versa... I can't recall the situation so I can not reproduce the error...
|
|