Hi Maarten.  I'm not sure my line numbers line up with your.  I'm pretty sure I got the correct location in mcs51/main.c, but the change is SDCCCast might be different.  Does this look good to you?


  if (options.dump_tree)
    PA(ex);
  if (fatalError)
    goto skipall;

  if (IFFUNC_ISBANKEDCALL (name->type))
    stackPtr -= port->stack.direction * port->stack.banked_overhead;


  /* Do not generate code for inline functions unless extern also. */
#if 0
  if (FUNC_ISINLINE (name->type) && !IS_EXTERN (fetype))
    goto skipall;
#else
  /* Temporary hack: always generate code for static inline functions. */
  /* Ideally static inline functions should only be generated if needed. */
  if (FUNC_ISINLINE (name->type) && !IS_EXTERN (fetype) && !IS_STATIC (fetype))
    goto skipall;
#endif


Maarten Brock wrote:
Anthony,

I think I've found the bug.

In mcs51/main.c(795) banked_overhead should be set to 1.
And in SDCCast.c(6514) the following should be added:
  if (IFFUNC_ISBANKEDCALL (name->type))
    stackPtr -= port->stack.direction * port->stack.banked_overhead;

When I fully have --model-huge working I'll commit ot svn.

Greets,
Maarten

  
Hi Maarten,

any other way I can help narrow down the cause of this issue?

a*

Anthony Asterisk wrote:
    
Indeed, no .rst for library objects. But maybe you could
link the object explicitly to override the library and
this will generate the .rst file. That is assuming you
have built the library first from source.

Maarten
        
Yep can do that.

program output:
sending 2d bytes.
payload addr X:0xe0a0.
SP 72.
sending ff00 bytes.
payload addr X:0xe0a0.
SP 78.


rst file excerpts


                           1047
;------------------------------------------------------------
                           1048 ;Allocation info for local variables
in function 'cc2430_rf_send'
                           1049
;------------------------------------------------------------
                           1050 ;payload_len               Allocated
to stack - offset -4
                           1051 ;payload                   Allocated
to registers r2 r3 r4
                           1052
;------------------------------------------------------------
                           1053 ;
../../cpu/cc2430/dev/cc2430_rf_intr.c:128: cc2430_rf_send(void
*payload, unsigned short payload_len)
                           1054 ;
-----------------------------------------
                           1055 ;        function cc2430_rf_send
                           1056 ;
-----------------------------------------
   0468                    1057 _cc2430_rf_send:
   0468 C0 09              1058         push    _bp
   046A 85 81 09           1059         mov     _bp,sp
   046D AA 82              1060         mov     r2,dpl
   046F AB 83              1061         mov     r3,dph
   0471 AC F0              1062         mov     r4,b
                           1063 ;
../../cpu/cc2430/dev/cc2430_rf_intr.c:130: printf("sending %x
bytes.\n",payload_len);
   0473 C0 02              1064         push    ar2
   0475 C0 03              1065         push    ar3
   0477 C0 04              1066         push    ar4
   0479 E5 09              1067         mov     a,_bp
   047B 24 FC              1068         add     a,#0xfc
   047D F8                 1069         mov     r0,a
   047E E6                 1070         mov     a,@r0
   047F C0 E0              1071         push    acc
   0481 08                 1072         inc     r0
   0482 E6                 1073         mov     a,@r0
   0483 C0 E0              1074         push    acc

   0485 74 C1              1075         mov     a,#__str_0
   0487 C0 E0              1076         push    acc
   0489 74 7C              1077         mov     a,#(__str_0 >> 8)
   048B C0 E0              1078         push    acc
   048D 74 80              1079         mov     a,#0x80
   048F C0 E0              1080         push    acc
   0491 12 3D 15           1081         lcall   _printf
   0494 E5 81              1082         mov     a,sp
   0496 24 FB              1083         add     a,#0xfb
   0498 F5 81              1084         mov     sp,a
   049A D0 04              1085         pop     ar4
   049C D0 03              1086         pop     ar3
   049E D0 02              1087         pop     ar2
                           1088 ;
../../cpu/cc2430/dev/cc2430_rf_intr.c:131: printf("payload addr
%p.\n", payload);
   04A0 C0 02              1089         push    ar2
   04A2 C0 03              1090         push    ar3
   04A4 C0 04              1091         push    ar4
   04A6 C0 02              1092         push    ar2
   04A8 C0 03              1093         push    ar3
   04AA C0 04              1094         push    ar4
   04AC 74 D4              1095         mov     a,#__str_1
   04AE C0 E0              1096         push    acc
   04B0 74 7C              1097         mov     a,#(__str_1 >> 8)
   04B2 C0 E0              1098         push    acc
   04B4 74 80              1099         mov     a,#0x80
   04B6 C0 E0              1100         push    acc
   04B8 12 3D 15           1101         lcall   _printf
   04BB E5 81              1102         mov     a,sp
   04BD 24 FA              1103         add     a,#0xfa

   04BF F5 81              1104         mov     sp,a
                           1105 ;
../../cpu/cc2430/dev/cc2430_rf_intr.c:132: printf("SP %x.\n", SP);
   04C1 AD 81              1106         mov     r5,_SP
   04C3 7E 00              1107         mov     r6,#0x00
   04C5 C0 05              1108         push    ar5
   04C7 C0 06              1109         push    ar6
   04C9 74 E6              1110         mov     a,#__str_2
   04CB C0 E0              1111         push    acc
   04CD 74 7C              1112         mov     a,#(__str_2 >> 8)
   04CF C0 E0              1113         push    acc
   04D1 74 80              1114         mov     a,#0x80
   04D3 C0 E0              1115         push    acc
   04D5 12 3D 15           1116         lcall   _printf
   04D8 E5 81              1117         mov     a,sp
   04DA 24 FB              1118         add     a,#0xfb
   04DC F5 81              1119         mov     sp,a
   04DE D0 04              1120         pop     ar4
   04E0 D0 03              1121         pop     ar3
   04E2 D0 02              1122         pop     ar2
                           1123 ;
../../cpu/cc2430/dev/cc2430_rf_intr.c:133: return
cc2430_rf_send_b(payload, payload_len);
   04E4 E5 09              1124         mov     a,_bp
   04E6 24 FC              1125         add     a,#0xfc
   04E8 F8                 1126         mov     r0,a
   04E9 E6                 1127         mov     a,@r0
   04EA C0 E0              1128         push    acc
   04EC 08                 1129         inc     r0
   04ED E6                 1130         mov     a,@r0
   04EE C0 E0              1131         push    acc
   04F0 8A 82              1132         mov     dpl,r2
   04F2 8B 83              1133         mov     dph,r3
   04F4 8C F0              1134         mov     b,r4
   04F6 78 8D              1135         mov     r0,#_cc2430_rf_send_b
   04F8 79 82              1136         mov     r1,#(_cc2430_rf_send_b
      
8)
          
   04FA 7A 02              1137         mov     r2,#(_cc2430_rf_send_b
      
16)
          
   04FC 12 06 27           1138         lcall   __sdcc_banked_call
   04FF AA 82              1139         mov     r2,dpl
   0501 AB 83              1140         mov     r3,dph
   0503 15 81              1141         dec     sp
   0505 15 81              1142         dec     sp
   0507 8A 82              1143         mov     dpl,r2
   0509 8B 83              1144         mov     dph,r3
   050B D0 09              1145         pop     _bp
   050D 22                 1146         ret

                           1115
;------------------------------------------------------------
                           1116 ;Allocation info for local variables
in function 'cc2430_rf_send_b'
                           1117
;------------------------------------------------------------
                           1118 ;payload_len               Allocated
to stack - offset -4
                           1119 ;payload                   Allocated
to stack - offset 1
                           1120 ;i                         Allocated
to registers r5
                           1121 ;counter                   Allocated
to registers r2
                           1122
;------------------------------------------------------------
                           1123 ;
../../cpu/cc2430/dev/cc2430_rf.c:160: cc2430_rf_send_b(void *payload,
unsigned short payload_len) __banked
                           1124 ;
-----------------------------------------
                           1125 ;        function cc2430_rf_send_b
                           1126 ;
-----------------------------------------
   828D                    1127 _cc2430_rf_send_b:
   828D C0 09              1128         push    _bp
   828F 85 81 09           1129         mov     _bp,sp
   8292 C0 82              1130         push    dpl
   8294 C0 83              1131         push    dph
   8296 C0 F0              1132         push    b
                           1133 ;
../../cpu/cc2430/dev/cc2430_rf.c:164: printf("sending %x
bytes.\n",payload_len);
   8298 E5 09              1134         mov     a,_bp
   829A 24 FC              1135         add     a,#0xfc
   829C F8                 1136         mov     r0,a
   829D E6                 1137         mov     a,@r0
   829E C0 E0              1138         push    acc
   82A0 08                 1139         inc     r0
   82A1 E6                 1140         mov     a,@r0
   82A2 C0 E0              1141         push    acc
   82A4 74 31              1142         mov     a,#__str_2
   82A6 C0 E0              1143         push    acc
   82A8 74 7C              1144         mov     a,#(__str_2 >> 8)
   82AA C0 E0              1145         push    acc
   82AC 74 80              1146         mov     a,#0x80
   82AE C0 E0              1147         push    acc
   82B0 12 3D 15           1148         lcall   _printf
   82B3 E5 81              1149         mov     a,sp
   82B5 24 FB              1150         add     a,#0xfb
   82B7 F5 81              1151         mov     sp,a
                           1152 ;
../../cpu/cc2430/dev/cc2430_rf.c:165: printf("payload addr %p.\n",
payload);
   82B9 A8 09              1153         mov     r0,_bp
   82BB 08                 1154         inc     r0
   82BC E6                 1155         mov     a,@r0
   82BD C0 E0              1156         push    acc
   82BF 08                 1157         inc     r0
   82C0 E6                 1158         mov     a,@r0
   82C1 C0 E0              1159         push    acc
   82C3 08                 1160         inc     r0
   82C4 E6                 1161         mov     a,@r0
   82C5 C0 E0              1162         push    acc
   82C7 74 44              1163         mov     a,#__str_3
   82C9 C0 E0              1164         push    acc
   82CB 74 7C              1165         mov     a,#(__str_3 >> 8)
   82CD C0 E0              1166         push    acc
   82CF 74 80              1167         mov     a,#0x80
   82D1 C0 E0              1168         push    acc
   82D3 12 3D 15           1169         lcall   _printf
   82D6 E5 81              1170         mov     a,sp
   82D8 24 FA              1171         add     a,#0xfa
   82DA F5 81              1172         mov     sp,a
                           1173 ;
../../cpu/cc2430/dev/cc2430_rf.c:166: printf("SP %x.\n", SP);
   82DC AD 81              1174         mov     r5,_SP
   82DE 7E 00              1175         mov     r6,#0x00
   82E0 C0 05              1176         push    ar5
   82E2 C0 06              1177         push    ar6
   82E4 74 56              1178         mov     a,#__str_4
   82E6 C0 E0              1179         push    acc
   82E8 74 7C              1180         mov     a,#(__str_4 >> 8)
   82EA C0 E0              1181         push    acc
   82EC 74 80              1182         mov     a,#0x80
   82EE C0 E0              1183         push    acc
   82F0 12 3D 15           1184         lcall   _printf
   82F3 E5 81              1185         mov     a,sp
   82F5 24 FB              1186         add     a,#0xfb
   82F7 F5 81              1187         mov     sp,a
      
------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for
Conference
attendees to learn about information security's most important issues
through
interactions with peers, luminaries and emerging and established
companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user


    


------------------------------------------------------------------------------
Throughout its 18-year history, RSA Conference consistently attracts the
world's best and brightest in the field, creating opportunities for Conference
attendees to learn about information security's most important issues through
interactions with peers, luminaries and emerging and established companies.
http://p.sf.net/sfu/rsaconf-dev2dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user