A windows mingw32 build with LTS patch level 20110921 is available on 
sourceforge
http://sourceforge.net/projects/mspgcc/files/Windows/mingw32/mspgcc-20110716-p20110921.zip

Matthias

Am 21.09.2011 19:41, schrieb Peter Bigot:
> There's a new LTS patch that addresses this issue available at
> https://sourceforge.net/projects/mspgcc/files/Patches/LTS/20110716/.
>
> It appears to be an upstream register allocator bug.  I don't entirely
> trust it, as upstream gcc hasn't confirmed the solution, but I'm
> confident enough to give it a shot.  It does fix the problem for the
> TinyOS example and the non-TinyOS reproducer.
>
> Peter
>
> On Thu, Sep 15, 2011 at 8:39 AM, Michiel Konstapel
> <m.konsta...@sownet.nl>  wrote:
>> Except, apparently, the other attachments didn't make it either. I guess 
>> they're not allowed by the mailing list.
>> Anyway, I've also attached them to the bug report: 
>> https://sourceforge.net/tracker/?func=detail&aid=3409864&group_id=42303&atid=432701
>>
>>> -----Original Message-----
>>> From: Michiel Konstapel [mailto:m.konsta...@sownet.nl]
>>> Sent: donderdag 15 september 2011 15:04
>>> To: mspgcc-users@lists.sourceforge.net
>>> Subject: Re: [Mspgcc-users] uint64_t issue?
>>>
>>> Sorry if this shows up twice; I've removed the 200 KB app.c from the
>>> attachments.
>>>
>>> -----Original Message-----
>>> From: Michiel Konstapel
>>> Sent: donderdag 15 september 2011 13:40
>>> To: MSPGCC mailing list,
>>> Subject: RE: [Mspgcc-users] uint64_t issue?
>>>
>>> I've managed to isolate it into a small (TinyOS) program. I've attached
>>> the source and build outputs. msp430-gcc is (eventually) invoked as
>>> follows:
>>>
>>> msp430-gcc -B/usr/lib/ncc -mdisable-watchdog -mmcu=msp430f2418 -
>>> mcpu=430x -mmpy=16se -mivcnt=32 -Os -Wall -Wshadow -v -o
>>> /tmp/ccRWyH2t.o -c -fdollars-in-identifiers build/gnode/app.c
>>>
>>> I'll also create a ticket on SF with the files attached.
>>> Best,
>>> Michiel
>>>
>>>> -----Original Message-----
>>>> From: JMGross [mailto:msp...@grossibaer.de]
>>>> Sent: donderdag 15 september 2011 12:32
>>>> To: MSPGCC mailing list,
>>>> Subject: Re: [Mspgcc-users] uint64_t issue?
>>>>
>>>>
>>>>
>>>> Or the optimizer is the problem. When you don't use the hardware
>>>> multiplier, even simple 8 and 16 bit multiplications are not inlined
>>>> but require a function call.
>>>> So optimization is different then.
>>>> What if you turn optimization off and use the HWM?
>>>> Does the bug still appear?
>>>>
>>>> It looks like a problem with the stack frame.
>>>>
>>>> I had a similar problem with 3.2.3:
>>>>   When you called a function with parameters passed on stack and the
>>>> function did have local variables that didn't go into a register,
>>>> things were messed-up with optimization on, while with optimization
>>>> off all was well.
>>>>
>>>> Just an idea.
>>>>
>>>> JMGross
>>>>
>>>> ----- Ursprüngliche Nachricht -----
>>>> Von: Michiel Konstapel
>>>> Gesendet am: 14 Sep 2011 16:30:35
>>>>
>>>> Thanks for the reply guys, I'll try with a fresh.
>>>> Another data point: if I use -mmpy=none, it works, so it appears to
>>> be
>>>> related to the hardware multiplier.
>>>>
>>>>> -----Original Message-----
>>>>> From: Eric Decker [mailto:cire...@gmail.com]
>>>>> Sent: woensdag 14 september 2011 16:21
>>>>> To: Peter Bigot
>>>>> Cc: Michiel Konstapel; mspgcc-users@lists.sourceforge.net
>>>>> Subject: Re: [Mspgcc-users] uint64_t issue?
>>>>>
>>>>> Michel please try again but use one of the more current builds from
>>>>>
>>>>> http://tinyprod.net/razvanm/debian
>>>>>
>>>>>  From cPhone
>>>>>
>>>>>
>>>>> On Sep 14, 2011, at 8:01 AM, Peter Bigot<big...@acm.org>  wrote:
>>>>>
>>>>>> Interesting.  I'll have to figure out where that extra
>>> information
>>>> is
>>>>>> getting added; when I do that on one of my internal builds, I
>>> just
>>>>> get 4.5.3
>>>>>> with no msp430-specific version information.  Somebody's adding
>>>>> something
>>>>>> somewhere.
>>>>>>
>>>>>> The 20110428 bit raises eyebrows.  No idea where that comes from,
>>>> but
>>>>> if
>>>>>> it's real, that'd be a large part of your problem.  Take that up
>>>> with
>>>>>> whoever built the distribution you're using.  Or, duplicate the
>>>>> problem with
>>>>>> a clean build of the official 20110716 release updated with the
>>>>> current LTS
>>>>>> patches and report as a ticket.  Thanks.
>>>>>>
>>>>>> Peter
>>>>>>
>>>>>> On Wed, Sep 14, 2011 at 8:43 AM, Michiel Konstapel
>>>>> <m.konsta...@sownet.nl>wrote:
>>>>>>> Update on the mspgcc version:
>>>>>>>
>>>>>>> $ msp430-gcc --version
>>>>>>> msp430-gcc (GCC) 4.5.3 20110428 (msp430) LTS_20110716_0813
>>>>>>>
>>>>>>>> -----Original Message-----
>>>>>>>> From: Michiel Konstapel [mailto:m.konsta...@sownet.nl]
>>>>>>>> Sent: woensdag 14 september 2011 14:38
>>>>>>>> To: mspgcc-users@lists.sourceforge.net
>>>>>>>> Subject: [Mspgcc-users] uint64_t issue?
>>>>>>>>
>>>>>>>> I think I've run into a compiler bug, but I'm not sure how to
>>>>>>>> pin
>>>>> it
>>>>>>>> down.
>>>>>>>>
>>>>>>>> I'm using the TinyOS RandomMlcg random generator:
>>>>>>>>
>>>>>>>>   /* Return the next 32 bit random number */  async command
>>>>>>>> uint32_t Random.rand32() {
>>>>>>>>     uint32_t mlcg,p,q;
>>>>>>>>     uint64_t tmpseed;
>>>>>>>>     atomic
>>>>>>>>       {
>>>>>>>>       tmpseed =  (uint64_t)33614U * (uint64_t)seed;
>>>>>>>>       q = tmpseed;    /* low */
>>>>>>>>       q = q>>  1;
>>>>>>>>       p = tmpseed>>  32 ;             /* hi */
>>>>>>>>       mlcg = p + q;
>>>>>>>>         if (mlcg&  0x80000000) {
>>>>>>>>         mlcg = mlcg&  0x7FFFFFFF;
>>>>>>>>         mlcg++;
>>>>>>>>       }
>>>>>>>>       seed = mlcg;
>>>>>>>>       }
>>>>>>>>     return mlcg;
>>>>>>>>   }
>>>>>>>>
>>>>>>>> Now, in my program, I have a function that takes one argument.
>>>>> After
>>>>>>>> the
>>>>>>>> call to Random.rand16(), this argument is overwritten by the
>>>> value
>>>>>>>> 0x834e - which is 33614U. This happens with mspgcc4 (20110813)
>>>> but
>>>>> not
>>>>>>>> with 3.2.3. My trivial test program failed to reproduce this;
>>>> I'll
>>>>> see
>>>>>>>> if I can find a way to trigger it.
>>>>>>>>
>>>>>>>> The context in which it's called (noinlined so I can find it in
>>>> the
>>>>>>>> disassembly):
>>>>>>>>
>>>>>>>>       void backoff(uint16_t fixed) __attribute__((noinline)) {
>>>>>>>>               uint16_t delay = 0;
>>>>>>>>               printf("fixed=%u\n", fixed);    // here, fixed is
>>>>>>>> correct
>>>>>>>>               delay = call Random.rand16();
>>>>>>>>               printf("fixed=%u\n", fixed);    // here, fixed ==
>>>>> 0x834e
>>>>>>>>               ...
>>>>>>>>
>>>>>>>> For reference, the disassembly of the working version (3.2.3)
>>>>> followed
>>>>>>>> by the broken one, up to the second call to printf:
>>>>>>>>
>>>>>>>> 3.2.3:
>>>>>>>> 00005204<SendP__backoff>:
>>>>>>>>     5204:       1b 15           .word   0x151b; ????
>>>>>>>>     5206:       0a 4f           mov     r15,    r10
>>>>>>>>     5208:       0f 12           push    r15
>>>>>>>>     520a:       30 12 fa 51     push    #20986          ;#0x51fa
>>>>>>>>     520e:       b0 13           .word   0x13b0; ????
>>>>>>>>     5210:       6a 7d           subc.b  @r13,   r10
>>>>>>>>     5212:       21 52           add     #4,     r1      ;r2
>>> As==10
>>>>>>>>     5214:       b0 13           .word   0x13b0; ????
>>>>>>>>     5216:       5e 52 0b 4e     add.b&0x4e0b,r14
>>>>>>>>     521a:       0a 12           push    r10
>>>>>>>>     521c:       30 12 fa 51     push    #20986          ;#0x51fa
>>>>>>>>     5220:       b0 13           .word   0x13b0; ????
>>>>>>>>     5222:       6a 7d           subc.b  @r13,   r10
>>>>>>>>     5224:       21 52           add     #4,     r1      ;r2
>>> As==10
>>>>>>>>     5226:       0a 4b           mov     r11,    r10
>>>>>>>>     5228:       0b 43           clr     r11
>>>>>>>>     522a:       b0 13           .word   0x13b0; ????
>>>>>>>>     522c:       f6 34           jge     $+494           ;abs
>>>> 0x541a
>>>>>>>>     522e:       53 12           push.b  #1              ;r3
>>> As==01
>>>>>>>>     5230:       0b 12           push    r11
>>>>>>>>     5232:       0a 12           push    r10
>>>>>>>>     5234:       0d 4e           mov     r14,    r13
>>>>>>>>     5236:       0e 4f           mov     r15,    r14
>>>>>>>>     5238:       7f 40 03 00     mov.b   #3,     r15     ;#0x0003
>>>>>>>>     523c:       b0 13           .word   0x13b0; ????
>>>>>>>>     523e:       4a 42           mov.b   r2,     r10
>>>>>>>>     5240:       31 50 06 00     add     #6,     r1      ;#0x0006
>>>>>>>>     5244:       1f 42 70 14     mov&0x1470,r15
>>>>>>>>     5248:       0f 5f           rla     r15
>>>>>>>>     524a:       82 4f 70 14     mov     r15,&0x1470
>>>>>>>>     524e:       3f 90 11 00     cmp     #17,    r15     ;#0x0011
>>>>>>>>     5252:       03 28           jnc     $+8             ;abs
>>>> 0x525a
>>>>>>>>     5254:       b2 40 10 00     mov     #16,&0x1470 ;#0x0010
>>>>>>>>     5258:       70 14
>>>>>>>>     525a:       1a 17           .word   0x171a; ????
>>>>>>>>     525c:       10 01           .word   0x0110; ????
>>>>>>>>
>>>>>>>> 0000525e<RandomMlcgC__Random__rand32>:
>>>>>>>>     525e:       4b 15           .word   0x154b; ????
>>>>>>>>     5260:       b0 13           .word   0x13b0; ????
>>>>>>>>     5262:       8a 31           jn      $+790           ;abs
>>>> 0x5578
>>>>>>>>     5264:       47 4f           mov.b   r15,    r7
>>>>>>>>     5266:       1c 42 c8 13     mov&0x13c8,r12
>>>>>>>>     526a:       1d 42 ca 13     mov&0x13ca,r13
>>>>>>>>     526e:       0e 43           clr     r14
>>>>>>>>     5270:       0f 43           clr     r15
>>>>>>>>     5272:       03 12           push    #0              ;r3
>>> As==00
>>>>>>>>     5274:       03 12           push    #0              ;r3
>>> As==00
>>>>>>>>     5276:       03 12           push    #0              ;r3
>>> As==00
>>>>>>>>     5278:       30 12 4e 83     push    #-31922 ;#0x834e
>>>>>>>>     527c:       b0 13           .word   0x13b0; ????
>>>>>>>>     527e:       f6 86 31 52     sub.b   @r6+,
>>>> 21041(r6);0x5231(r6)
>>>>>>>>     5282:       0a 4c           mov     r12,    r10
>>>>>>>>     5284:       0b 4d           mov     r13,    r11
>>>>>>>>     5286:       12 c3           clrc
>>>>>>>>     5288:       0b 10           rrc     r11
>>>>>>>>     528a:       0a 10           rrc     r10
>>>>>>>>     528c:       0c 4e           mov     r14,    r12
>>>>>>>>     528e:       0d 4f           mov     r15,    r13
>>>>>>>>     5290:       0e 43           clr     r14
>>>>>>>>     5292:       0f 43           clr     r15
>>>>>>>>     5294:       08 4c           mov     r12,    r8
>>>>>>>>     5296:       09 4d           mov     r13,    r9
>>>>>>>>     5298:       08 5a           add     r10,    r8
>>>>>>>>     529a:       09 6b           addc    r11,    r9
>>>>>>>>     529c:       39 b0 00 80     bit     #-32768,r9      ;#0x8000
>>>>>>>>     52a0:       04 24           jz      $+10            ;abs
>>>> 0x52aa
>>>>>>>>     52a2:       39 f0 ff 7f     and     #32767, r9      ;#0x7fff
>>>>>>>>     52a6:       18 53           inc     r8
>>>>>>>>     52a8:       09 63           adc     r9
>>>>>>>>     52aa:       82 48 c8 13     mov     r8,&0x13c8
>>>>>>>>     52ae:       82 49 ca 13     mov     r9,&0x13ca
>>>>>>>>     52b2:       4f 47           mov.b   r7,     r15
>>>>>>>>     52b4:       b0 13           .word   0x13b0; ????
>>>>>>>>     52b6:       9e 31           jn      $+830           ;abs
>>>> 0x55f4
>>>>>>>>     52b8:       0e 48           mov     r8,     r14
>>>>>>>>     52ba:       0f 49           mov     r9,     r15
>>>>>>>>     52bc:       47 17           .word   0x1747; ????
>>>>>>>>     52be:       10 01           .word   0x0110; ????
>>>>>>>>
>>>>>>>>
>>>>>>>> 20110813 inlines the call:
>>>>>>>>
>>>>>>>> 00004c90<SendP__backoff>:
>>>>>>>>     4c90:       0b 12           push    r11
>>>>>>>>     4c92:       0a 12           push    r10
>>>>>>>>     4c94:       09 12           push    r9
>>>>>>>>     4c96:       08 12           push    r8
>>>>>>>>     4c98:       07 12           push    r7
>>>>>>>>     4c9a:       06 12           push    r6
>>>>>>>>     4c9c:       05 12           push    r5
>>>>>>>>     4c9e:       04 12           push    r4
>>>>>>>>     4ca0:       21 83           decd    r1
>>>>>>>>     4ca2:       0f 12           push    r15
>>>>>>>>     4ca4:       0f 12           push    r15
>>>>>>>>     4ca6:       30 12 80 4c     push    #19584          ;#0x4c80
>>>>>>>>     4caa:       b0 12 b8 76     call    #0x76b8
>>>>>>>>     4cae:       31 50 06 00     add     #6,     r1      ;#0x0006
>>>>>>>>     4cb2:       b0 12 06 3a     call    #0x3a06
>>>>>>>>     4cb6:       c1 4f 00 00     mov.b   r15,    0(r1)
>>>> ;0x0000(r1)
>>>>>>>>     4cba:       18 42 cc 13     mov&0x13cc,r8
>>>>>>>>     4cbe:       19 42 ce 13     mov&0x13ce,r9
>>>>>>>>     4cc2:       34 40 4e 83     mov     #-31922,r4      ;#0x834e
>>>>>>>>     4cc6:       05 43           clr     r5
>>>>>>>>     4cc8:       b0 12 36 7c     call    #0x7c36
>>>>>>>>     4ccc:       0a 4c           mov     r12,    r10
>>>>>>>>     4cce:       0b 4d           mov     r13,    r11
>>>>>>>>     4cd0:       12 c3           clrc
>>>>>>>>     4cd2:       0b 10           rrc     r11
>>>>>>>>     4cd4:       0a 10           rrc     r10
>>>>>>>>     4cd6:       0a 5e           add     r14,    r10
>>>>>>>>     4cd8:       0b 6f           addc    r15,    r11
>>>>>>>>     4cda:       0b 93           tst     r11
>>>>>>>>     4cdc:       05 34           jge     $+12            ;abs
>>>> 0x4ce8
>>>>>>>>     4cde:       3a f3           and     #-1,    r10     ;r3
>>> As==11
>>>>>>>>     4ce0:       3b f0 ff 7f     and     #32767, r11     ;#0x7fff
>>>>>>>>     4ce4:       1a 53           inc     r10
>>>>>>>>     4ce6:       0b 63           adc     r11
>>>>>>>>     4ce8:       82 4a cc 13     mov     r10,&0x13cc
>>>>>>>>     4cec:       82 4b ce 13     mov     r11,&0x13ce
>>>>>>>>     4cf0:       6f 41           mov.b   @r1,    r15
>>>>>>>>     4cf2:       b0 12 1a 3a     call    #0x3a1a
>>>>>>>>     4cf6:       04 12           push    r4
>>>>>>>>     4cf8:       04 12           push    r4
>>>>>>>>     4cfa:       30 12 80 4c     push    #19584          ;#0x4c80
>>>>>>>>     4cfe:       b0 12 b8 76     call    #0x76b8
>>>>>>>>
>>>>>>>> I'm afraid my assembly-fu isn't very strong, but I hope someone
>>>> can
>>>>>>>> glean... something from it.
>>>>>>>>
>>>>>>>> Best,
>>>>>>>> Michiel
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>> --------------------------------------------------------------------
>>>>> ---
>>>>>>>> -------
>>>>>>>> BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
>>>>>>>> Learn about the latest advances in developing for the
>>>>>>>> BlackBerry&reg; mobile platform with sessions, labs&  more.
>>>>>>>> See new tools and technologies. Register for BlackBerry&reg;
>>>> DevCon
>>>>>>>> today!
>>>>>>>> http://p.sf.net/sfu/rim-devcon-copy1
>>>>>>>> _______________________________________________
>>>>>>>> Mspgcc-users mailing list
>>>>>>>> Mspgcc-users@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>>>>>>>
>>>>>>>
>>>> --------------------------------------------------------------------
>>>>> ----------
>>>>>>> BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
>>>>>>> Learn about the latest advances in developing for the
>>>>>>> BlackBerry&reg; mobile platform with sessions, labs&  more.
>>>>>>> See new tools and technologies. Register for BlackBerry&reg;
>>>> DevCon
>>>>> today!
>>>>>>> http://p.sf.net/sfu/rim-devcon-copy1
>>>>>>> _______________________________________________
>>>>>>> Mspgcc-users mailing list
>>>>>>> Mspgcc-users@lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>>>>>>>
>>>> ---------------------------------------------------------------------
>>>>> ---------
>>>>>> BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA
>>>>>> Learn about the latest advances in developing for the
>>>>>> BlackBerry&reg; mobile platform with sessions, labs&  more.
>>>>>> See new tools and technologies. Register for BlackBerry&reg;
>>>>>> DevCon
>>>>> today!
>>>>>> http://p.sf.net/sfu/rim-devcon-copy1
>>>>>> _______________________________________________
>>>>>> Mspgcc-users mailing list
>>>>>> Mspgcc-users@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>>>> ---------------------------------------------------------------------
>>> -
>>>> -
>>>> -------
>>>> BlackBerry&reg; DevCon Americas, Oct. 18-20, San Francisco, CA Learn
>>>> about the latest advances in developing for the BlackBerry&reg;
>>> mobile
>>>> platform with sessions, labs&  more.
>>>> See new tools and technologies. Register for BlackBerry&reg; DevCon
>>>> today!
>>>> http://p.sf.net/sfu/rim-devcon-copy1
>>>> _______________________________________________
>>>> Mspgcc-users mailing list
>>>> Mspgcc-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>> -
>>>> -
>>>> -------
>>>> Doing More with Less: The Next Generation Virtual Desktop What are
>>> the
>>>> key obstacles that have prevented many mid-market businesses
>>>> from deploying virtual desktops?   How do next-generation virtual
>>>> desktops
>>>> provide companies an easier-to-deploy, easier-to-manage and more
>>>> affordable virtual desktop
>>>> model.http://www.accelacomm.com/jaw/sfnl/114/51426474/
>>>> _______________________________________________
>>>> Mspgcc-users mailing list
>>>> Mspgcc-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>> ------------------------------------------------------------------------------
>> Doing More with Less: The Next Generation Virtual Desktop
>> What are the key obstacles that have prevented many mid-market businesses
>> from deploying virtual desktops?   How do next-generation virtual desktops
>> provide companies an easier-to-deploy, easier-to-manage and more affordable
>> virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/
>> _______________________________________________
>> Mspgcc-users mailing list
>> Mspgcc-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>>
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure contains a
> definitive record of customers, application performance, security
> threats, fraudulent activity and more. Splunk takes this data and makes
> sense of it. Business sense. IT sense. Common sense.
> http://p.sf.net/sfu/splunk-d2dcopy1
> _______________________________________________
> Mspgcc-users mailing list
> Mspgcc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
>
>

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users

Reply via email to