* M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 001 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 1 2 ;## C Compiler OUTPUT 3 ;## ccom308 Version 5.05.01.000 4 ;## Copyright(C) 1999(2005). Renesas Technology Corp. 5 ;## and Renesas Solutions Corp., All Rights Reserved. 6 ;## Compile Start Time Fri Jun 27 17:36:29 2014 7 8 ;## COMMAND_LINE: ccom308 C:\Users\Administrator\Downloads\ssp_rsk_r8c23_hew-20140307\ssp\target\rsk_m32c87_hew\ssp_workspace\libkernel\Debug\dataqueue 9 10 11 ;## Normal Optimize OFF 12 ;## ROM size Optimize OFF 13 ;## Speed Optimize OFF 14 ;## Default ROM is far 15 ;## Default RAM is near 16 17 .GLB __SB__ 18 .SB __SB__ 19 .FB 0 20 21 22 23 24 25 ;## # FUNCTION TOPPERS_assert_abort 26 27 28 29 30 ;## # FUNCTION _syslog_0 31 32 ;## # FUNCTION _syslog_1 33 34 ;## # FUNCTION _syslog_2 35 36 ;## # FUNCTION _syslog_3 37 38 ;## # FUNCTION _syslog_4 39 40 ;## # FUNCTION _syslog_5 41 42 ;## # FUNCTION _syslog_6 43 44 45 ;## # FUNCTION get_flgreg 46 47 ;## # FUNCTION set_flgreg 48 49 ;## # FUNCTION clr_ipl 50 51 ;## # FUNCTION disint 52 53 ;## # FUNCTION enaint 54 55 ;## # FUNCTION jmp_dispatcher 56 57 58 ;## # FUNCTION TOPPERS_disint 59 60 ;## # FUNCTION TOPPERS_enaint 61 62 * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 002 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 63 ;## # FUNCTION sil_reb_mem 64 65 ;## # FUNCTION sil_wrb_mem 66 67 ;## # FUNCTION sil_reh_mem 68 69 ;## # FUNCTION sil_wrh_mem 70 71 ;## # FUNCTION sil_reh_bem 72 73 ;## # FUNCTION sil_wrh_bem 74 75 ;## # FUNCTION sil_rew_mem 76 77 ;## # FUNCTION sil_wrw_mem 78 79 ;## # FUNCTION sil_rew_bem 80 81 ;## # FUNCTION sil_wrw_bem 82 83 84 85 86 87 ;## # FUNCTION reset_isp 88 89 90 ;## # FUNCTION sense_context 91 92 ;## # FUNCTION t_lock_cpu 93 94 ;## # FUNCTION i_lock_cpu 95 96 ;## # FUNCTION t_unlock_cpu 97 98 ;## # FUNCTION i_unlock_cpu 99 100 ;## # FUNCTION x_sense_lock 101 102 ;## # FUNCTION x_set_ipm 103 104 ;## # FUNCTION x_get_ipm 105 106 ;## # FUNCTION x_disable_int 107 108 ;## # FUNCTION x_enable_int 109 110 ;## # FUNCTION x_clear_int 111 112 ;## # FUNCTION x_probe_int 113 114 ;## # FUNCTION x_define_inh 115 116 ;## # FUNCTION i_begin_int 117 118 ;## # FUNCTION i_end_int 119 120 ;## # FUNCTION x_define_exc 121 122 ;## # FUNCTION idle_loop 123 124 * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 003 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 125 126 ;## # FUNCTION queue_initialize 127 128 ;## # FUNCTION queue_insert_prev 129 130 ;## # FUNCTION queue_delete_next 131 132 ;## # FUNCTION queue_empty 133 134 135 136 ;## # FUNCTION _kernel_initialize_dataqueue 137 ;## # FRAME AUTO ( i) size 2, offset -2 138 ;## # ARG Size(0) Auto Size(2) Context Size(8) 139 140 141 .SECTION program,CODE,ALIGN 142 .align 143 ;## # C_SRC : { 144 .glb __kernel_initialize_dataqueue 145 000000 __kernel_initialize_dataqueue: 146 000000 EC02 enter #02H 147 ;## # C_SRC : for (i = 0U ; i < tnum_dtq ; i++) { 148 000002 33FE Z mov.w #0000H,-2[FB] ; i 149 000004 L293: 150 ;## # C_SRC : for (i = 0U ; i < tnum_dtq ; i++) { 151 000004 B3E6000000rFE cmp.w __kernel_tmax_dtqid,-2[FB] ; i 152 00000A CA18 jgeu L297 153 ;## # C_SRC : dtqcb_count[i] = 0U; 154 00000C A2D3FE indexbd.w -2[FB] ; i 155 00000F 120000r Z mov.b #00H,__kernel_dtqcb_count:16 156 ;## # C_SRC : dtqcb_head[i] = 0U; 157 000012 A2D3FE indexbd.w -2[FB] ; i 158 000015 120000r Z mov.b #00H,__kernel_dtqcb_head:16 159 ;## # C_SRC : dtqcb_tail[i] = 0U; 160 000018 A2D3FE indexbd.w -2[FB] ; i 161 00001B 120000r Z mov.b #00H,__kernel_dtqcb_tail:16 162 00001E E3F1FE Q add.w #0001H,-2[FB] ; i 163 000021 BBE2 B jmp L293 164 000023 L297: 165 ;## # C_SRC : } 166 000023 FC exitd 167 000024 E1: 168 000024 M1: 169 170 171 ;## # FUNCTION data_full 172 173 ;## # FUNCTION data_empty 174 175 ;## # FUNCTION enqueue_data 176 ;## # FRAME ARG ( data) size 4, offset 8 177 ;## # FRAME ARG ( tail) size 4, offset 12 178 ;## # FRAME ARG ( size) size 1, offset 16 179 ;## # FRAME ARG ( sdata) size 4, offset 18 180 ;## # ARG Size(14) Auto Size(0) Context Size(8) 181 182 .align 183 ;## # C_SRC : { 184 .glb _enqueue_data 185 000024 _enqueue_data: 186 000024 EC00 enter #00H * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 004 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 187 000026 8F28 pushm R2,A0 188 ;## # C_SRC : data[*tail] = sdata; 189 000028 09380C S mov.b [12[FB]],R0L ; tail 190 00002B F820 Q mov.b #0H,R0H 191 00002D F920 Q mov.w #0H,R2 192 00002F C1A3 mov.l R2R0,A0 193 000031 80A102 shlnc.l #2,A0 194 000034 91B208 add.l 8[FB],A0 ; data 195 000037 913312 mov.l 18[FB],[A0] ; sdata 196 ;## # C_SRC : (*tail)++; 197 00003A 09E2F10C Q add.b #01H,[12[FB]] ; tail 198 ;## # C_SRC : if (*tail >= size) { 199 00003E 0992F6100C cmp.b 16[FB],[12[FB]] ; size tail 200 000043 8A04 jltu L367 201 ;## # C_SRC : *tail = 0U; 202 000045 09320C Z mov.b #00H,[12[FB]] ; tail 203 000048 L367: 204 ;## # C_SRC : } 205 000048 8E14 popm R2,A0 206 00004A FC exitd 207 00004B E2: 208 00004B M2: 209 210 211 ;## # FUNCTION dequeue_data 212 ;## # FRAME ARG ( data) size 4, offset 8 213 ;## # FRAME ARG ( head) size 4, offset 12 214 ;## # FRAME ARG ( size) size 1, offset 16 215 ;## # FRAME ARG ( rdata) size 4, offset 18 216 ;## # ARG Size(14) Auto Size(0) Context Size(8) 217 218 00004B DE .align 219 ;## # C_SRC : { 220 .glb _dequeue_data 221 00004C _dequeue_data: 222 00004C EC00 enter #00H 223 00004E 8F28 pushm R2,A0 224 ;## # C_SRC : *rdata = data[*head]; 225 000050 09380C S mov.b [12[FB]],R0L ; head 226 000053 F820 Q mov.b #0H,R0H 227 000055 F920 Q mov.w #0H,R2 228 000057 C1A3 mov.l R2R0,A0 229 000059 80A102 shlnc.l #2,A0 230 00005C 91B208 add.l 8[FB],A0 ; data 231 00005F 0983C312 mov.l [A0],[18[FB]] ; rdata 232 ;## # C_SRC : (*head)++; 233 000063 09E2F10C Q add.b #01H,[12[FB]] ; head 234 ;## # C_SRC : if (*head >= size) { 235 000067 0992F6100C cmp.b 16[FB],[12[FB]] ; size head 236 00006C 8A04 jltu L379 237 ;## # C_SRC : *head = 0U; 238 00006E 09320C Z mov.b #00H,[12[FB]] ; head 239 000071 L379: 240 ;## # C_SRC : } 241 000071 8E14 popm R2,A0 242 000073 FC exitd 243 000074 E3: 244 000074 M3: 245 246 247 ;## # FUNCTION psnd_dtq 248 ;## # FRAME AUTO ( dtqid) size 2, offset -12 * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 005 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 249 ;## # FRAME AUTO ( ercd) size 2, offset -10 250 ;## # FRAME AUTO ( ipl) size 2, offset -8 251 ;## # FRAME AUTO ( ipl) size 2, offset -6 252 ;## # FRAME AUTO ( flg_reg) size 2, offset -4 253 ;## # FRAME AUTO ( index) size 2, offset -6 254 ;## # FRAME AUTO ( __PAD1) size 1, offset -1 255 ;## # FRAME AUTO ( __TMP1) size 1, offset -2 256 ;## # FRAME AUTO ( count) size 1, offset -12 257 ;## # FRAME ARG ( data) size 4, offset 8 258 ;## # REGISTER ARG ( dtqid) size 2, REGISTER R0 259 ;## # ARG Size(4) Auto Size(12) Context Size(8) 260 261 .align 262 ;## # C_SRC : { 263 .glb $psnd_dtq 264 000074 $psnd_dtq: 265 000074 EC0C enter #0cH 266 000076 8F78 pushm R1,R2,R3,A0 267 000078 31F4 S mov.w R0,-12[FB] ; dtqid dtqid 268 ;## # C_SRC : return (intnest > 0); 269 00007A E6D00000r Q cmp.b #00H,__kernel_intnest:16 270 00007E 8B04 jleu L403 271 000080 F9A1 Q mov.w #0001H,R0 272 000082 4A S jmp L405 273 000083 L403: 274 000083 03 Z mov.w #0000H,R0 275 000084 L405: 276 ;## # C_SRC : CHECK_TSKCTX_UNL(); 277 000084 E990 Q cmp.w #0000H,R0 278 000086 9A06 jne L489 279 ;## # C_SRC : return lock_flag; 280 000088 190000r S mov.w __kernel_lock_flag:16,R0 281 ;## # C_SRC : CHECK_TSKCTX_UNL(); 282 00008B DA08 jeq L393 283 00008D L489: 284 00008D 35F6E7FF S mov.w #0ffe7H,-10[FB] ; ercd 285 000091 CEB100 W jmp L483 286 000094 L393: 287 ;## # C_SRC : CHECK_DTQID(dtqid); 288 000094 E3D1F4 Q cmp.w #0001H,-12[FB] ; dtqid 289 000097 FA09 jlt L501 290 000099 B3E6000000rF4 cmp.w __kernel_tmax_dtqid,-12[FB] ; dtqid 291 00009F EB08 jle L419 292 0000A1 L501: 293 0000A1 35F6EEFF S mov.w #0ffeeH,-10[FB] ; ercd 294 0000A5 CE9D00 W jmp L483 295 0000A8 L419: 296 ;## # C_SRC : Asm(" stc flg, $$[FB]", ipl); 297 ;#### ASM START 298 0000A8 01D3DAF8 stc flg, -8[FB] 299 ;#### ASM END 300 ;## # C_SRC : return ipl; 301 0000AC 39F8 S mov.w -8[FB],R0 ; ipl 302 ;## # C_SRC : { 303 0000AE 883F8F and.b #8fH,R0H 304 0000B1 882F50 or.b #50H,R0H 305 0000B4 31FA S mov.w R0,-6[FB] ; ipl 306 ;## # C_SRC : uint16_t flg_reg = ipl; 307 0000B6 93FBFAFC mov.w -6[FB],-4[FB] ; ipl flg_reg 308 ;## # C_SRC : Asm(" ldc $$[FB], flg", flg_reg); 309 ;#### ASM START 310 0000BA 01D3CAFC ldc -4[FB], flg * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 006 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 311 ;#### ASM END 312 ;## # C_SRC : lock_flag = true; 313 0000BE F7E10000r Q mov.w #0001H,__kernel_lock_flag:16 314 ;## # C_SRC : index = INDEX_DTQ(dtqid); 315 0000C2 39F4 S mov.w -12[FB],R0 ; dtqid 316 0000C4 E9BF Q add.w #-1,R0 317 0000C6 31FA S mov.w R0,-6[FB] ; index 318 ;## # C_SRC : if (!data_full(dtqcb_count[index] , dtqinib_size[index])) 319 0000C8 39FA S mov.w -6[FB],R0 ; index 320 0000CA C99E exts.w R0 321 0000CC C1A3 mov.l R2R0,A0 322 0000CE B2CB000000rFE mov.b __kernel_dtqinib_size[A0],-2[FB] ; __TMP1 323 ;## # C_SRC : { 324 0000D4 39FA S mov.w -6[FB],R0 ; index 325 0000D6 C99E exts.w R0 326 0000D8 C1A3 mov.l R2R0,A0 327 0000DA A2CB0000rF4 mov.b __kernel_dtqcb_count:16[A0],-12[FB] ; count 328 ;## # C_SRC : return (count >= size)? true : false; 329 0000DF 92F6FEF4 cmp.b -2[FB],-12[FB] ; __TMP1 count 330 0000E3 8A04 jltu L471 331 0000E5 F9A1 Q mov.w #0001H,R0 332 0000E7 4A S jmp L473 333 0000E8 L471: 334 0000E8 03 Z mov.w #0000H,R0 335 0000E9 L473: 336 ;## # C_SRC : if (!data_full(dtqcb_count[index] , dtqinib_size[index])) 337 0000E9 E990 Q cmp.w #0000H,R0 338 0000EB 9A4E jne L457 339 ;## # C_SRC : dtqinib_size[index] , data); 340 0000ED A2C108 push.l 8[FB] ; data 341 0000F0 39FA S mov.w -6[FB],R0 ; index 342 0000F2 C99E exts.w R0 343 0000F4 88B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_size),R2R0 344 0000FA C1A3 mov.l R2R0,A0 345 0000FC C00E push.b [A0] 346 0000FE 39FA S mov.w -6[FB],R0 ; index 347 000100 C99E exts.w R0 348 000102 88B100000000r add.l #(0FFFFFFH & __kernel_dtqcb_tail),R2R0 349 000108 A881 push.l R2R0 350 00010A 39FA S mov.w -6[FB],R0 ; index 351 00010C C99E exts.w R0 352 00010E C1A3 mov.l R2R0,A0 353 000110 80A102 shlnc.l #2,A0 354 000113 80B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_data),A0 355 000119 A001 push.l [A0] 356 00011B CF08FF W jsr _enqueue_data 357 00011E B6030E S add.l #0eH,SP 358 ;## # C_SRC : dtqcb_count[index]++; 359 000121 39FA S mov.w -6[FB],R0 ; index 360 000123 C99E exts.w R0 361 000125 7FFA S mov.w -6[FB],R1 ; index 362 000127 C9DE exts.w R1 363 000129 C1A3 mov.l R2R0,A0 364 00012B A88B0000r mov.b __kernel_dtqcb_count:16[A0],R0L 365 00012F E8B1 Q add.b #01H,R0L 366 000131 C1B3 mov.l R3R1,A0 367 000133 C42B0000r mov.b R0L,__kernel_dtqcb_count:16[A0] 368 ;## # C_SRC : ercd = E_OK; 369 000137 33F6 Z mov.w #0000H,-10[FB] ; ercd 370 ;## # C_SRC : } 371 000139 5B S jmp L459 372 ;## # C_SRC : else { * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 007 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 373 00013A L457: 374 ;## # C_SRC : ercd = E_TMOUT; 375 00013A 35F6CEFF S mov.w #0ffceH,-10[FB] ; ercd 376 ;## # C_SRC : } 377 00013E L459: 378 ;## # C_SRC : lock_flag = false; 379 00013E 130000r Z mov.w #0000H,__kernel_lock_flag:16 380 ;## # C_SRC : Asm(" ldipl #0"); 381 ;#### ASM START 382 000141 D5E8 ldipl #0 383 ;#### ASM END 384 ;## # C_SRC : } 385 000143 L483: 386 ;## # C_SRC : return(ercd); 387 000143 39F6 S mov.w -10[FB],R0 ; ercd 388 000145 8E1E popm R1,R2,R3,A0 389 000147 FC exitd 390 000148 E4: 391 000148 M4: 392 393 394 ;## # FUNCTION ipsnd_dtq 395 ;## # FRAME AUTO ( dtqid) size 2, offset -18 396 ;## # FRAME AUTO ( ercd) size 2, offset -16 397 ;## # FRAME AUTO ( ipl) size 2, offset -14 398 ;## # FRAME AUTO ( ipl) size 2, offset -12 399 ;## # FRAME AUTO ( ipl) size 2, offset -10 400 ;## # FRAME AUTO ( flg_reg) size 2, offset -8 401 ;## # FRAME AUTO ( index) size 2, offset -10 402 ;## # FRAME AUTO ( ipl) size 2, offset -6 403 ;## # FRAME AUTO ( ipl) size 2, offset -10 404 ;## # FRAME AUTO ( flg_reg) size 2, offset -4 405 ;## # FRAME AUTO ( __PAD2) size 1, offset -1 406 ;## # FRAME AUTO ( __TMP2) size 1, offset -2 407 ;## # FRAME AUTO ( count) size 1, offset -12 408 ;## # FRAME ARG ( data) size 4, offset 8 409 ;## # REGISTER ARG ( dtqid) size 2, REGISTER R0 410 ;## # ARG Size(4) Auto Size(18) Context Size(8) 411 412 .align 413 ;## # C_SRC : { 414 .glb $ipsnd_dtq 415 000148 $ipsnd_dtq: 416 000148 EC12 enter #012H 417 00014A 8F78 pushm R1,R2,R3,A0 418 00014C 31EE S mov.w R0,-18[FB] ; dtqid dtqid 419 ;## # C_SRC : return (intnest > 0); 420 00014E E6D00000r Q cmp.b #00H,__kernel_intnest:16 421 000152 8B04 jleu L521 422 000154 F9A1 Q mov.w #0001H,R0 423 000156 4A S jmp L523 424 000157 L521: 425 000157 03 Z mov.w #0000H,R0 426 000158 L523: 427 ;## # C_SRC : CHECK_INTCTX_UNL(); 428 000158 E990 Q cmp.w #0000H,R0 429 00015A DA06 jeq L625 430 ;## # C_SRC : return lock_flag; 431 00015C 190000r S mov.w __kernel_lock_flag:16,R0 432 ;## # C_SRC : CHECK_INTCTX_UNL(); 433 00015F DA08 jeq L511 434 000161 L625: * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 008 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 435 000161 35F0E7FF S mov.w #0ffe7H,-16[FB] ; ercd 436 000165 CEDA00 W jmp L617 437 000168 L511: 438 ;## # C_SRC : CHECK_DTQID(dtqid); 439 000168 E3D1EE Q cmp.w #0001H,-18[FB] ; dtqid 440 00016B FA09 jlt L637 441 00016D B3E6000000rEE cmp.w __kernel_tmax_dtqid,-18[FB] ; dtqid 442 000173 EB08 jle L541 443 000175 L637: 444 000175 35F0EEFF S mov.w #0ffeeH,-16[FB] ; ercd 445 000179 CEC600 W jmp L617 446 00017C L541: 447 ;## # C_SRC : Asm(" stc flg, $$[FB]", ipl); 448 ;#### ASM START 449 00017C 01D3DAF2 stc flg, -14[FB] 450 ;#### ASM END 451 ;## # C_SRC : return ipl; 452 000180 39F2 S mov.w -14[FB],R0 ; ipl 453 ;## # C_SRC : ipl = get_flgreg(); 454 000182 31F4 S mov.w R0,-12[FB] ; ipl 455 ;## # C_SRC : if (IPL_LOCK > ipl) { 456 000184 77F40050 S cmp.w #5000H,-12[FB] ; ipl 457 000188 CA13 jgeu L581 458 ;## # C_SRC : { 459 00018A 39F4 S mov.w -12[FB],R0 ; ipl 460 00018C 883F8F and.b #8fH,R0H 461 00018F 882F50 or.b #50H,R0H 462 000192 31F6 S mov.w R0,-10[FB] ; ipl 463 ;## # C_SRC : uint16_t flg_reg = ipl; 464 000194 93FBF6F8 mov.w -10[FB],-8[FB] ; ipl flg_reg 465 ;## # C_SRC : Asm(" ldc $$[FB], flg", flg_reg); 466 ;#### ASM START 467 000198 01D3CAF8 ldc -8[FB], flg 468 ;#### ASM END 469 00019C L581: 470 ;## # C_SRC : saved_ipl = ipl; 471 00019C 97FBF40000r mov.w -12[FB],__kernel_saved_ipl:16 ; ipl 472 ;## # C_SRC : lock_flag = true; 473 0001A1 F7E10000r Q mov.w #0001H,__kernel_lock_flag:16 474 ;## # C_SRC : index = INDEX_DTQ(dtqid); 475 0001A5 39EE S mov.w -18[FB],R0 ; dtqid 476 0001A7 E9BF Q add.w #-1,R0 477 0001A9 31F6 S mov.w R0,-10[FB] ; index 478 ;## # C_SRC : if (!data_full(dtqcb_count[index] , dtqinib_size[index])) 479 0001AB 39F6 S mov.w -10[FB],R0 ; index 480 0001AD C99E exts.w R0 481 0001AF C1A3 mov.l R2R0,A0 482 0001B1 B2CB000000rFE mov.b __kernel_dtqinib_size[A0],-2[FB] ; __TMP2 483 ;## # C_SRC : { 484 0001B7 39F6 S mov.w -10[FB],R0 ; index 485 0001B9 C99E exts.w R0 486 0001BB C1A3 mov.l R2R0,A0 487 0001BD A2CB0000rF4 mov.b __kernel_dtqcb_count:16[A0],-12[FB] ; count 488 ;## # C_SRC : return (count >= size)? true : false; 489 0001C2 92F6FEF4 cmp.b -2[FB],-12[FB] ; __TMP2 count 490 0001C6 8A04 jltu L603 491 0001C8 F9A1 Q mov.w #0001H,R0 492 0001CA 4A S jmp L605 493 0001CB L603: 494 0001CB 03 Z mov.w #0000H,R0 495 0001CC L605: 496 ;## # C_SRC : if (!data_full(dtqcb_count[index] , dtqinib_size[index])) * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 009 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 497 0001CC E990 Q cmp.w #0000H,R0 498 0001CE 9A4E jne L589 499 ;## # C_SRC : dtqinib_size[index] , data); 500 0001D0 A2C108 push.l 8[FB] ; data 501 0001D3 39F6 S mov.w -10[FB],R0 ; index 502 0001D5 C99E exts.w R0 503 0001D7 88B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_size),R2R0 504 0001DD C1A3 mov.l R2R0,A0 505 0001DF C00E push.b [A0] 506 0001E1 39F6 S mov.w -10[FB],R0 ; index 507 0001E3 C99E exts.w R0 508 0001E5 88B100000000r add.l #(0FFFFFFH & __kernel_dtqcb_tail),R2R0 509 0001EB A881 push.l R2R0 510 0001ED 39F6 S mov.w -10[FB],R0 ; index 511 0001EF C99E exts.w R0 512 0001F1 C1A3 mov.l R2R0,A0 513 0001F3 80A102 shlnc.l #2,A0 514 0001F6 80B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_data),A0 515 0001FC A001 push.l [A0] 516 0001FE CF25FE W jsr _enqueue_data 517 000201 B6030E S add.l #0eH,SP 518 ;## # C_SRC : dtqcb_count[index]++; 519 000204 39F6 S mov.w -10[FB],R0 ; index 520 000206 C99E exts.w R0 521 000208 7FF6 S mov.w -10[FB],R1 ; index 522 00020A C9DE exts.w R1 523 00020C C1A3 mov.l R2R0,A0 524 00020E A88B0000r mov.b __kernel_dtqcb_count:16[A0],R0L 525 000212 E8B1 Q add.b #01H,R0L 526 000214 C1B3 mov.l R3R1,A0 527 000216 C42B0000r mov.b R0L,__kernel_dtqcb_count:16[A0] 528 ;## # C_SRC : ercd = E_OK; 529 00021A 33F0 Z mov.w #0000H,-16[FB] ; ercd 530 ;## # C_SRC : } 531 00021C 5B S jmp L591 532 ;## # C_SRC : else { 533 00021D L589: 534 ;## # C_SRC : ercd = E_TMOUT; 535 00021D 35F0CEFF S mov.w #0ffceH,-16[FB] ; ercd 536 ;## # C_SRC : } 537 000221 L591: 538 ;## # C_SRC : lock_flag = false; 539 000221 130000r Z mov.w #0000H,__kernel_lock_flag:16 540 ;## # C_SRC : Asm(" stc flg, $$[FB]", ipl); 541 ;#### ASM START 542 000224 01D3DAFA stc flg, -6[FB] 543 ;#### ASM END 544 ;## # C_SRC : return ipl; 545 000228 39FA S mov.w -6[FB],R0 ; ipl 546 ;## # C_SRC : { 547 00022A 5F0000r S mov.w __kernel_saved_ipl:16,R1 548 00022D 89FF0070 and.w #7000H,R1 549 000231 883F8F and.b #8fH,R0H 550 000234 C9B5 or.w R1,R0 551 000236 31F6 S mov.w R0,-10[FB] ; ipl 552 ;## # C_SRC : uint16_t flg_reg = ipl; 553 000238 93FBF6FC mov.w -10[FB],-4[FB] ; ipl flg_reg 554 ;## # C_SRC : Asm(" ldc $$[FB], flg", flg_reg); 555 ;#### ASM START 556 00023C 01D3CAFC ldc -4[FB], flg 557 ;#### ASM END 558 ;## # C_SRC : } * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 010 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 559 000240 L617: 560 ;## # C_SRC : return(ercd); 561 000240 39F0 S mov.w -16[FB],R0 ; ercd 562 000242 8E1E popm R1,R2,R3,A0 563 000244 FC exitd 564 000245 E5: 565 000245 M5: 566 567 568 ;## # FUNCTION prcv_dtq 569 ;## # FRAME AUTO ( dtqid) size 2, offset -10 570 ;## # FRAME AUTO ( ercd) size 2, offset -8 571 ;## # FRAME AUTO ( ipl) size 2, offset -6 572 ;## # FRAME AUTO ( ipl) size 2, offset -4 573 ;## # FRAME AUTO ( flg_reg) size 2, offset -2 574 ;## # FRAME AUTO ( index) size 2, offset -4 575 ;## # FRAME AUTO ( count) size 1, offset -10 576 ;## # FRAME ARG ( p_data) size 4, offset 8 577 ;## # REGISTER ARG ( dtqid) size 2, REGISTER R0 578 ;## # ARG Size(4) Auto Size(10) Context Size(8) 579 580 000245 DE .align 581 ;## # C_SRC : { 582 .glb $prcv_dtq 583 000246 $prcv_dtq: 584 000246 EC0A enter #0aH 585 000248 8F78 pushm R1,R2,R3,A0 586 00024A 31F6 S mov.w R0,-10[FB] ; dtqid dtqid 587 ;## # C_SRC : return (intnest > 0); 588 00024C E6D00000r Q cmp.b #00H,__kernel_intnest:16 589 000250 8B04 jleu L659 590 000252 F9A1 Q mov.w #0001H,R0 591 000254 4A S jmp L661 592 000255 L659: 593 000255 03 Z mov.w #0000H,R0 594 000256 L661: 595 ;## # C_SRC : CHECK_TSKCTX_UNL(); 596 000256 E990 Q cmp.w #0000H,R0 597 000258 9A06 jne L745 598 ;## # C_SRC : return lock_flag; 599 00025A 190000r S mov.w __kernel_lock_flag:16,R0 600 ;## # C_SRC : CHECK_TSKCTX_UNL(); 601 00025D DA08 jeq L649 602 00025F L745: 603 00025F 35F8E7FF S mov.w #0ffe7H,-8[FB] ; ercd 604 000263 CE9D00 W jmp L739 605 000266 L649: 606 ;## # C_SRC : CHECK_DTQID(dtqid); 607 000266 E3D1F6 Q cmp.w #0001H,-10[FB] ; dtqid 608 000269 FA09 jlt L757 609 00026B B3E6000000rF6 cmp.w __kernel_tmax_dtqid,-10[FB] ; dtqid 610 000271 EB08 jle L675 611 000273 L757: 612 000273 35F8EEFF S mov.w #0ffeeH,-8[FB] ; ercd 613 000277 CE8900 W jmp L739 614 00027A L675: 615 ;## # C_SRC : Asm(" stc flg, $$[FB]", ipl); 616 ;#### ASM START 617 00027A 01D3DAFA stc flg, -6[FB] 618 ;#### ASM END 619 ;## # C_SRC : return ipl; 620 00027E 39FA S mov.w -6[FB],R0 ; ipl * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 011 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 621 ;## # C_SRC : { 622 000280 883F8F and.b #8fH,R0H 623 000283 882F50 or.b #50H,R0H 624 000286 31FC S mov.w R0,-4[FB] ; ipl 625 ;## # C_SRC : uint16_t flg_reg = ipl; 626 000288 93FBFCFE mov.w -4[FB],-2[FB] ; ipl flg_reg 627 ;## # C_SRC : Asm(" ldc $$[FB], flg", flg_reg); 628 ;#### ASM START 629 00028C 01D3CAFE ldc -2[FB], flg 630 ;#### ASM END 631 ;## # C_SRC : lock_flag = true; 632 000290 F7E10000r Q mov.w #0001H,__kernel_lock_flag:16 633 ;## # C_SRC : index = INDEX_DTQ(dtqid); 634 000294 39F6 S mov.w -10[FB],R0 ; dtqid 635 000296 E9BF Q add.w #-1,R0 636 000298 31FC S mov.w R0,-4[FB] ; index 637 ;## # C_SRC : { 638 00029A 39FC S mov.w -4[FB],R0 ; index 639 00029C C99E exts.w R0 640 00029E C1A3 mov.l R2R0,A0 641 0002A0 A2CB0000rF6 mov.b __kernel_dtqcb_count:16[A0],-10[FB] ; count 642 ;## # C_SRC : return (count == 0)? true : false; 643 0002A5 D9BA scz R0 644 ;## # C_SRC : if (!data_empty(dtqcb_count[index])) 645 0002A7 E990 Q cmp.w #0000H,R0 646 0002A9 9A4E jne L713 647 ;## # C_SRC : dtqinib_size[index] , p_data); 648 0002AB A2C108 push.l 8[FB] ; p_data 649 0002AE 39FC S mov.w -4[FB],R0 ; index 650 0002B0 C99E exts.w R0 651 0002B2 88B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_size),R2R0 652 0002B8 C1A3 mov.l R2R0,A0 653 0002BA C00E push.b [A0] 654 0002BC 39FC S mov.w -4[FB],R0 ; index 655 0002BE C99E exts.w R0 656 0002C0 88B100000000r add.l #(0FFFFFFH & __kernel_dtqcb_head),R2R0 657 0002C6 A881 push.l R2R0 658 0002C8 39FC S mov.w -4[FB],R0 ; index 659 0002CA C99E exts.w R0 660 0002CC C1A3 mov.l R2R0,A0 661 0002CE 80A102 shlnc.l #2,A0 662 0002D1 80B100000000r add.l #(0FFFFFFH & __kernel_dtqinib_data),A0 663 0002D7 A001 push.l [A0] 664 0002D9 CF72FD W jsr _dequeue_data 665 0002DC B6030E S add.l #0eH,SP 666 ;## # C_SRC : dtqcb_count[index]--; 667 0002DF 39FC S mov.w -4[FB],R0 ; index 668 0002E1 C99E exts.w R0 669 0002E3 7FFC S mov.w -4[FB],R1 ; index 670 0002E5 C9DE exts.w R1 671 0002E7 C1A3 mov.l R2R0,A0 672 0002E9 A88B0000r mov.b __kernel_dtqcb_count:16[A0],R0L 673 0002ED 0E01 S sub.b #01H,R0L 674 0002EF C1B3 mov.l R3R1,A0 675 0002F1 C42B0000r mov.b R0L,__kernel_dtqcb_count:16[A0] 676 ;## # C_SRC : ercd = E_OK; 677 0002F5 33F8 Z mov.w #0000H,-8[FB] ; ercd 678 ;## # C_SRC : } 679 0002F7 5B S jmp L715 680 ;## # C_SRC : else { 681 0002F8 L713: 682 ;## # C_SRC : ercd = E_TMOUT; * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 012 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 683 0002F8 35F8CEFF S mov.w #0ffceH,-8[FB] ; ercd 684 ;## # C_SRC : } 685 0002FC L715: 686 ;## # C_SRC : lock_flag = false; 687 0002FC 130000r Z mov.w #0000H,__kernel_lock_flag:16 688 ;## # C_SRC : Asm(" ldipl #0"); 689 ;#### ASM START 690 0002FF D5E8 ldipl #0 691 ;#### ASM END 692 ;## # C_SRC : } 693 000301 L739: 694 ;## # C_SRC : return(ercd); 695 000301 39F8 S mov.w -8[FB],R0 ; ercd 696 000303 8E1E popm R1,R2,R3,A0 697 000305 FC exitd 698 000306 E6: 699 000306 M7: 700 701 .glb $act_tsk 702 .glb $iact_tsk 703 .glb $set_flg 704 .glb $iset_flg 705 .glb $clr_flg 706 .glb $pol_flg 707 .glb _loc_cpu 708 .glb _iloc_cpu 709 .glb _unl_cpu 710 .glb _iunl_cpu 711 .glb _dis_dsp 712 .glb _ena_dsp 713 .glb _sns_ctx 714 .glb _sns_loc 715 .glb _sns_dsp 716 .glb _sns_dpn 717 .glb _sns_ker 718 .glb _ext_ker 719 .glb $dis_int 720 .glb $ena_int 721 .glb $sta_cyc 722 .glb $stp_cyc 723 .glb $sta_alm 724 .glb $stp_alm 725 .glb _get_tim 726 .glb $syslog_wri_log 727 .glb _syslog_printf 728 .glb _syslog_print 729 .glb $syslog_lostmsg 730 .glb _syslog 731 .glb _sil_dly_nse 732 .glb $target_fput_log 733 .glb _sio_initialize 734 .glb $sio_opn_por 735 .glb _sio_cls_por 736 .glb _sio_isr_rcv 737 .glb _sio_isr_snd 738 .glb _sio_snd_chr 739 .glb _sio_rcv_chr 740 .glb _sio_ena_cbr 741 .glb _sio_dis_cbr 742 .glb _sio_irdy_snd 743 .glb _sio_irdy_rcv 744 .glb $sio_pol_snd_chr * M32C SERIES ASSEMBLER * SOURCE LIST Fri Jun 27 17:36:29 2014 PAGE 013 SEQ. LOC. OBJ. 0XMSDA .*....*....SOURCE STATEMENT....8....*....9....*....0....*....1....*....2....*....3....*....4....*....5....*....6....*....7....*....8....*....9....*....0 745 .glb __kernel_target_initialize 746 .glb __kernel_target_exit 747 .glb __kernel_intnest 748 .glb __kernel_lock_flag 749 .glb __kernel_saved_ipl 750 .glb __kernel_intc_reg 751 .glb __kernel_intpri_table 752 .glb $_kernel_x_config_int 753 .glb __kernel_prc_initialize 754 .glb __kernel_start_dispatch 755 .glb __kernel_call_exit_kernel 756 .glb __kernel_prc_terminate 757 .glb __kernel_initialize_object 758 .glb __kernel_call_inirtn 759 .glb __kernel_call_terrtn 760 .glb _istksz 761 .glb _istk 762 .glb __kernel_kerflg 763 .glb _sta_ker 764 .glb __kernel_exit_kernel 765 .glb __kernel_dtqinib_atr 766 .glb __kernel_dtqinib_data 767 .glb __kernel_dtqinib_size 768 .glb __kernel_dtqcb_count 769 .glb __kernel_dtqcb_head 770 .glb __kernel_dtqcb_tail 771 .glb __kernel_tmax_dtqid 772 ;################################# 773 ;### STATIC DATA INFORMATION ### 774 ;################################# 775 ;################################# 776 ;################################# 777 ;################################# 778 779 .END Information List TOTAL ERROR(S) 00000 TOTAL WARNING(S) 00000 TOTAL LINE(S) 00779 LINES Section List Attr Size Name CODE 00000774(000306H) program