CCS3.3 SR12, with C6000 Code Generation Tools v6.1.21
wrong parameter in the last function call.
//source code: draw a cross and double lines at the end of cross
void drawCrossLine(int x, int y, int cenX, int cenY,int outR, int inR)
{
fillRectangle(x+(cenX-outR), y+cenY, outR<<(1), 1, cRed);
fillRectangle(x+cenX, y+(cenY-outR), 1, outR<<(1), cRed);
fillRectangle(x+(cenX-outR), y+(cenY-25), 1, 25<<(1), cRed);
fillRectangle(x+(cenX-inR), y+(cenY-15), 1, 15<<(1), cRed);
fillRectangle(x+(cenX+outR), y+(cenY-25), 1, 25<<(1), cRed);
fillRectangle(x+(cenX+inR), y+(cenY-15), 1, 15<<(1), cRed);
fillRectangle(x+(cenX-25), y+(cenY-outR), 25<<(1), 1, cRed);
fillRectangle(x+(cenX-15), y+(cenY-inR) , 15<<(1), 1, cRed);
fillRectangle(x+(cenX-25), y+(cenY+outR), 25<<(1), 1, cRed);
fillRectangle(x+(cenX-15), y+(cenY+inR) , 15<<(1), 1, cRed);
}
Mix Source/ASM:
At the last call of fillRectangle(), use B12 stand for y+(cenY+inR) @00003D20. However B12=y+(cenY-15) @00003C60.
The result of C6000 Code Generation Tools v6.0.8 is correct. It use two ADD instruction to caculate y+(cenY+inR) @000031B8 and @000031C4


