[Bug c/42227] New: fr30-gcc-4.4.2 generate Illigal 32bit immediate data

t_yokota at monami-software dot com gcc-bugzilla@gcc.gnu.org
Mon Nov 30 09:58:00 GMT 2009


s->__sglue._niobs = 3;
  s->__sglue._iobs = &s->__sf[0];
# 209 "../../../.././newlib/libc/stdio/findfp.c"
  std (s->_stdin, 0x0004, 0, s);
# 220 "../../../.././newlib/libc/stdio/findfp.c"
  std (s->_stdout, 0x0008 | 0x0001, 1, s);

this C language (newlib/stdio/findfp.c) code generate following the assembler
code.

.LM45:
        ldi:8   #1, r2
        st      r2, @r1
.LM46:
        ldi:20  #736, r1
        addn    r4, r1
        st      r6, @r1
.LM47:
        ldi:20  #740, r1
        addn    r4, r1
        ldi:8   #3, r3
        st      r3, @r1
.LM48:
        ldi:20  #744, r1
        addn    r4, r1
        ldi:20  #748, r2
        addn    r4, r2
        st      r2, @r1
.LM49:
        ldi:32  #-740, r1   <-- illigal immidiate code
        addn    r1, r1
        ldi:32  std, r9
        ld      @r1, r4
.LVL14:

 gcc-4.3.4 (fr30-unknown-elf) generate following code. It can  execute
correctly.

14690:       c0 12           ldi:8 0x1,r2
   14692:       14 12           st r2,@r1
   14694:       cf c1           ldi:8 0xfc,r1
   14696:       97 81           extsb r1
   14698:       a2 e1           addn r14,r1
   1469a:       04 12           ld @r1,r2
   1469c:       9b 01 02 e0     ldi:20 0x2e0,r1
   146a0:       a2 21           addn r2,r1
   146a2:       c0 02           ldi:8 0x0,r2
   146a4:       14 12           st r2,@r1
   146a6:       cf c1           ldi:8 0xfc,r1
   146a8:       97 81           extsb r1
   146aa:       a2 e1           addn r14,r1
   146ac:       04 12           ld @r1,r2
   146ae:       9b 01 02 e4     ldi:20 0x2e4,r1
   146b2:       a2 21           addn r2,r1
   146b4:       c0 32           ldi:8 0x3,r2
   146b6:       14 12           st r2,@r1
   146b8:       cf c1           ldi:8 0xfc,r1
   146ba:       97 81           extsb r1
   146bc:       a2 e1           addn r14,r1
   146be:       04 11           ld @r1,r1
   146c0:       9b 02 02 ec     ldi:20 0x2ec,r2
   146c4:       a2 12           addn r1,r2
   146c6:       cf c1           ldi:8 0xfc,r1
   146c8:       97 81           extsb r1
   146ca:       a2 e1           addn r14,r1
   146cc:       04 13           ld @r1,r3
   146ce:       9b 01 02 e8     ldi:20 0x2e8,r1
   146d2:       a2 31           addn r3,r1
   146d4:       14 12           st r2,@r1
   146d6:       cf c1           ldi:8 0xfc,r1
   146d8:       97 81           extsb r1
   146da:       a2 e1           addn r14,r1
   146dc:       04 11           ld @r1,r1
   146de:       a0 41           addn 0x4,r1
   146e0:       04 12           ld @r1,r2
   146e2:       cf c1           ldi:8 0xfc,r1
   146e4:       97 81           extsb r1
   146e6:       a2 e1           addn r14,r1
   146e8:       8b 24           mov r2,r4
   146ea:       c0 45           ldi:8 0x4,r5
   146ec:       c0 06           ldi:8 0x0,r6
   146ee:       04 17           ld @r1,r7
   146f0:       9f 81 00 01     ldi:32 0x141dc,r1
   146f4:       41 dc 
   146f6:       97 11           call @r1
   146f8:       cf c1           ldi:8 0xfc,r1


-- 
           Summary: fr30-gcc-4.4.2 generate Illigal 32bit immediate data
           Product: gcc
           Version: 4.4.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: t_yokota at monami-software dot com
 GCC build triplet: i386-apple-darwin10.2.0
  GCC host triplet: i386-apple-darwin10.2.0
GCC target triplet: fr30-unknown-elf


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42227



More information about the Gcc-bugs mailing list