[elektro] C32 kérdés

Lajos Rancz lajos.rancz at gmail.com
Wed Oct 31 13:27:29 CET 2012


Helló!

Akkor bugriportot a gyártónak!

Üdv


2012. október 31. 13:14 I F írta, <flaist at gmail.com>:

> Szia!
> Jobban átolvastam. valóban a függvénynél is azt jelenti mint változónál.
>
> Itt valami compiler zavar lehet, megnéztem a disassembly listát a két
> esetben.
> A különbség, hogy a jó esetben elmenti az s0....s7 regisztereket
> A hiba egyébként csak a 3-as sebesség optimalizálás bekapcsolásakor jön
> elő.
>
> !
> **************************************************************************************/
> !static void AntiAlias(int *x, int nBfly)
> !{
> !       int k, a0, b0, c0, c1;
> !       const int *c;
> !       /* csa = Q31 */
> !       for (k = nBfly; k > 0; k--) {
> 0x9D009214: LW A0, 220(SP)
> 0x9D00921C: BLEZ A0, 0x9D009524
> 0x9D009220: ADDU S3, A3, V1
> 0x9D009224: LUI A2, -25343
> 0x9D00922C: ADDIU A2, A2, 15612
> 0x9D009230: ADDIU S2, A2, 4
> 0x9D009234: ADDIU S0, A2, 8
> 0x9D009238: ADDIU T7, A2, 12
> 0x9D00923C: ADDIU T6, A2, 16
> 0x9D009240: ADDIU T5, A2, 20
> 0x9D009244: ADDIU T4, A2, 24
> 0x9D009248: ADDIU T3, A2, 28
> 0x9D00924C: ADDIU T2, A2, 32
> 0x9D009250: ADDIU T1, A2, 36
> 0x9D009254: ADDIU T0, A2, 40
> 0x9D009258: ADDIU T8, A2, 44
> 0x9D00925C: ADDIU T9, A2, 48
> 0x9D009260: ADDIU S8, A2, 52
> 0x9D009264: ADDIU S7, A2, 60
> 0x9D009268: ADDU A1, A0, ZERO
> 0x9D009514: ADDIU A1, A1, -1
> 0x9D009518: BNE A1, ZERO, 0x9D009270
> 0x9D00951C: SW S4, 28(V0)
> 0x9D009520: MFLO A3
> !               c = csa[0];
> !               x += 18;
>
>
>
> 73:                  void AntiAlias(int *x, int nBfly)
> 74:                  {
> 9D0090A4  27BDFFE0   ADDIU SP, SP, -32
> 9D0090A8  AFB7001C   SW S7, 28(SP)
> 9D0090AC  AFB60018   SW S6, 24(SP)
> 9D0090B0  AFB50014   SW S5, 20(SP)
> 9D0090B4  AFB40010   SW S4, 16(SP)
> 9D0090B8  AFB3000C   SW S3, 12(SP)
> 9D0090BC  AFB20008   SW S2, 8(SP)
> 9D0090C0  AFB10004   SW S1, 4(SP)
> 75:                     int k, a0, b0, c0, c1;
> 76:                     const int *c;
> 77:
> 78:                     /* csa = Q31 */
> 79:                     for (k = nBfly; k > 0; k--) {
> 9D0090C4  18A000B5   BLEZ A1, 0x9D00939C
> 9D0090C8  AFB00000   SW S0, 0(SP)
> 9D0090CC  3C089D01   LUI T0, -25343
> 9D0090D0  25083CE8   ADDIU T0, T0, 15592
> 9D0090D4  25150004   ADDIU S5, T0, 4
> 9D0090D8  25140008   ADDIU S4, T0, 8
> 9D0090DC  2513000C   ADDIU S3, T0, 12
> 9D0090E0  25120010   ADDIU S2, T0, 16
> 9D0090E4  25110014   ADDIU S1, T0, 20
> 9D0090E8  25100018   ADDIU S0, T0, 24
> 9D0090EC  2519001C   ADDIU T9, T0, 28
> 9D0090F0  25180020   ADDIU T8, T0, 32
> 9D0090F4  250F0024   ADDIU T7, T0, 36
> 9D0090F8  250E0028   ADDIU T6, T0, 40
> 9D0090FC  250D002C   ADDIU T5, T0, 44
> 9D009100  250C0030   ADDIU T4, T0, 48
> 9D009104  250B0034   ADDIU T3, T0, 52
> 9D009108  250A0038   ADDIU T2, T0, 56
> 9D00910C  2509003C   ADDIU T1, T0, 60
> 9D009390  24A5FFFF   ADDIU A1, A1, -1
> 9D009394  14A0FF5E   BNE A1, ZERO, 0x9D009110
> 9D009398  AC82001C   SW V0, 28(A0)
> 80:                             c = csa[0];
>
>
>
>
>
>
>
>
> Lajos Rancz <lajos.rancz at gmail.com> írta (2012. október 31. 9:09):
> > Helló!
> >
> > Tudsz adni linket, ezt hol olvastad? A static változóból kettő féle van:
> >
> >    - ha függvényen kívül van dekralálva akkor csak a fordítási egységen
> >    belül látszik
> >    - ha függvénen belül, akkor olyan globális ami csak a függvényen belül
> >    látszik
> >
> > Egyéb csalafintaságról nem tudok :)
> >
> > Üdv
> >
> >
> > 2012. október 31. 9:02 flaist írta, <flaist at gmail.com>:
> >
> >> Igen változó definiálás esetén konkrétan ezt jelenti.
> >> De függvény definiáláskor számomra zavaros dolgokat írnak !
> >>
> >>
> >> -----Original Message-----
> >> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On
> Behalf
> >> Of Lajos Rancz
> >> Sent: Wednesday, October 31, 2012 6:12 AM
> >> To: elektro at tesla.hu
> >> Subject: Re: [elektro] C32 kérdés
> >>
> >> Hello!
> >>
> >> Semmit igazából. Annyit ad meg, hogy a függvény csak abból a fordítási
> >> egységből látszik, kívülről nem.
> >> Lehet, hogy inline-ra csinálta emiatt, sutem compiler bug. Mi ez?
> Microchip
> >> compiler?
> >>
> >> Üdv
> >> 2012.10.31. 2:46, "flaist" <flaist at gmail.com> ezt írta:
> >>
> >> > Sziasztok!
> >> >
> >> >
> >> >
> >> > Ki tudja pontosan mit követ el a "static"  bűvszó egy C32-es függvény
> >> > deklarálásában.
> >> >
> >> >
> >> >
> >> > Azaz mi a különbség:
> >> >
> >> >
> >> >
> >> > Ha 3-s szintű tömörítés használok az MP3 helix projectben akkor:
> >> >
> >> >
> >> >
> >> > static void AntiAlias(int *x, int nBfly)   //ezzel elszáll (ez az
> >> eredeti)
> >> >
> >> >
> >> >
> >> > void AntiAlias(int *x, int nBfly)                  //ezzel nem
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > A többi tömörítési szintnél nincs gond.
> >> >
> >> >
> >> >
> >> >
> >> >
> >> > Köszi, üdv István
> >> >
> >> > -----------------------------------------
> >> >           elektro[-flame|-etc]
> >> >
> >> -----------------------------------------
> >>           elektro[-flame|-etc]
> >>
> >> -----------------------------------------
> >>           elektro[-flame|-etc]
> >>
> > -----------------------------------------
> >           elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list