?? delay.lst
字號:
GAS LISTING /tmp/ccqM27O3.s page 1 1 .section .mdebug.abi32 2 .previous 3 .section .debug_abbrev,"",@progbits 4 $Ldebug_abbrev0: 5 .section .debug_info,"",@progbits 6 $Ldebug_info0: 7 .section .debug_line,"",@progbits 8 $Ldebug_line0: 9 0000 F8000000 .text 9 0200A400 9 00000101 9 FB0E0A00 9 01010101 10 $Ltext0: 11 .align 2 12 .globl usdelay 13 .ent usdelay 14 .type usdelay, @function 15 usdelay: 16 $LFB2: 17 .file 1 "/mnt/hgfs/boot/booter/source/delay.c" 1:/mnt/hgfs/boot/booter/source/delay.c **** /* 2:/mnt/hgfs/boot/booter/source/delay.c **** * Busy delay loop 3:/mnt/hgfs/boot/booter/source/delay.c **** */ 4:/mnt/hgfs/boot/booter/source/delay.c **** 5:/mnt/hgfs/boot/booter/source/delay.c **** #include "example.h" 6:/mnt/hgfs/boot/booter/source/delay.c **** 7:/mnt/hgfs/boot/booter/source/delay.c **** static AU1X00_SYS * const sys = (AU1X00_SYS *)KSEG1(SYS_PHYS_ADDR); 8:/mnt/hgfs/boot/booter/source/delay.c **** 9:/mnt/hgfs/boot/booter/source/delay.c **** /********************************************************************/ 10:/mnt/hgfs/boot/booter/source/delay.c **** void 11:/mnt/hgfs/boot/booter/source/delay.c **** usdelay(int us) 12:/mnt/hgfs/boot/booter/source/delay.c **** { 18 .loc 1 12 0 19 .frame $sp,40,$31 # vars= 0, regs= 5/0, args= 16, gp= 0 20 .mask 0x800f0000,-8 21 .fmask 0x00000000,0 22 .set noreorder 23 .set nomacro 24 25 0000 D8FFBD27 addiu $sp,$sp,-40 26 $LCFI0: 27 0004 1C00B3AF sw $19,28($sp) 28 $LCFI1: 29 0008 1400B1AF sw $17,20($sp) 30 $LCFI2: 31 000c 2000BFAF sw $31,32($sp) 32 $LCFI3: 33 0010 1800B2AF sw $18,24($sp) 34 $LCFI4: 35 0014 1000B0AF sw $16,16($sp) 36 $LCFI5: 13:/mnt/hgfs/boot/booter/source/delay.c **** /* 14:/mnt/hgfs/boot/booter/source/delay.c **** * Use CP0 Count which counts 1:1 with core frequency. 15:/mnt/hgfs/boot/booter/source/delay.c **** */ 16:/mnt/hgfs/boot/booter/source/delay.c **** uint32 now, later, cpupll; 17:/mnt/hgfs/boot/booter/source/delay.c **** int i;GAS LISTING /tmp/ccqM27O3.s page 2 18:/mnt/hgfs/boot/booter/source/delay.c **** 19:/mnt/hgfs/boot/booter/source/delay.c **** us /= 2; 20:/mnt/hgfs/boot/booter/source/delay.c **** 21:/mnt/hgfs/boot/booter/source/delay.c **** cpupll = sys->cpupll & 0x3F; 37 .loc 1 21 0 38 0018 90B1023C li $2,-1315962880 # 0xffffffffb1900000 39 001c 6000458C lw $5,96($2) 40 .loc 1 19 0 41 0020 C21F0400 srl $3,$4,31 42 0024 21186400 addu $3,$3,$4 43 0028 43980300 sra $19,$3,1 44 .loc 1 21 0 45 002c 3F00A530 andi $5,$5,0x3f 22:/mnt/hgfs/boot/booter/source/delay.c **** 23:/mnt/hgfs/boot/booter/source/delay.c **** for (i = 0; i < us; ++i) 46 .loc 1 23 0 47 0030 1800601A blez $19,$L15 48 0034 21880000 move $17,$0 49 50 0038 B700023C li $2,11993088 # 0xb70000 51 003c 001B4234 ori $2,$2,0x1b00 52 0040 0210A270 mul $2,$5,$2 53 0044 1B43033C li $3,1125842944 # 0x431b0000 54 0048 83DE6334 ori $3,$3,0xde83 55 004c 19004300 multu $2,$3 56 0050 10100000 mfhi $2 57 0054 82940200 srl $18,$2,18 58 $L13: 59 $LBB2: 24:/mnt/hgfs/boot/booter/source/delay.c **** { 25:/mnt/hgfs/boot/booter/source/delay.c **** now = cp0RdCount(); 60 .loc 1 25 0 61 0058 0000000C jal cp0RdCount 62 005c 00000000 nop 63 26:/mnt/hgfs/boot/booter/source/delay.c **** later = now + ( (12000000 * cpupll) / 1000000); 64 .loc 1 26 0 65 0060 21804202 addu $16,$18,$2 27:/mnt/hgfs/boot/booter/source/delay.c **** 28:/mnt/hgfs/boot/booter/source/delay.c **** if (now < later) 66 .loc 1 28 0 67 0064 2B105000 sltu $2,$2,$16 68 0068 11004010 beq $2,$0,$L9 69 006c 00000000 nop 70 71 $L6: 29:/mnt/hgfs/boot/booter/source/delay.c **** { 30:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() < later) 72 .loc 1 30 0 73 0070 0000000C jal cp0RdCount 74 0074 00000000 nop 75 76 0078 2B105000 sltu $2,$2,$16 77 007c FCFF4014 bne $2,$0,$L6 78 0080 00000000 nop 79 80 $L4:GAS LISTING /tmp/ccqM27O3.s page 3 81 $LBE2: 82 .loc 1 23 0 83 0084 01003126 addiu $17,$17,1 84 $L18: 85 0088 2A103302 slt $2,$17,$19 86 008c F2FF4014 bne $2,$0,$L13 87 0090 00000000 nop 88 89 $L15: 90 0094 2000BF8F lw $31,32($sp) 91 0098 1C00B38F lw $19,28($sp) 92 009c 1800B28F lw $18,24($sp) 93 00a0 1400B18F lw $17,20($sp) 94 00a4 1000B08F lw $16,16($sp) 95 00a8 0800E003 j $31 96 00ac 2800BD27 addiu $sp,$sp,40 97 98 $L9: 99 $LBB3: 31:/mnt/hgfs/boot/booter/source/delay.c **** ; 32:/mnt/hgfs/boot/booter/source/delay.c **** } 33:/mnt/hgfs/boot/booter/source/delay.c **** else 34:/mnt/hgfs/boot/booter/source/delay.c **** { 35:/mnt/hgfs/boot/booter/source/delay.c **** /* Count must rollover */ 36:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() > later) 100 .loc 1 36 0 101 00b0 0000000C jal cp0RdCount 102 00b4 00000000 nop 103 104 00b8 2B100202 sltu $2,$16,$2 105 00bc FCFF4014 bne $2,$0,$L9 106 00c0 00000000 nop 107 108 $L11: 37:/mnt/hgfs/boot/booter/source/delay.c **** ; 38:/mnt/hgfs/boot/booter/source/delay.c **** 39:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() < later) 109 .loc 1 39 0 110 00c4 0000000C jal cp0RdCount 111 00c8 00000000 nop 112 113 00cc 2B105000 sltu $2,$2,$16 114 00d0 ECFF4010 beq $2,$0,$L4 115 00d4 00000000 nop 116 117 00d8 0000000C jal cp0RdCount 118 00dc 00000000 nop 119 120 00e0 2B105000 sltu $2,$2,$16 121 00e4 F7FF4014 bne $2,$0,$L11 122 00e8 00000000 nop 123 124 .loc 1 23 0 125 00ec 22000008 j $L18 126 00f0 01003126 addiu $17,$17,1 127 128 $LBE3:GAS LISTING /tmp/ccqM27O3.s page 4 129 .set macro 130 .set reorder 131 $LFE2: 132 .end usdelay 133 .align 2 134 .globl msdelay 135 .ent msdelay 136 .type msdelay, @function 137 msdelay: 138 $LFB3: 40:/mnt/hgfs/boot/booter/source/delay.c **** ; 41:/mnt/hgfs/boot/booter/source/delay.c **** } 42:/mnt/hgfs/boot/booter/source/delay.c **** } 43:/mnt/hgfs/boot/booter/source/delay.c **** } 44:/mnt/hgfs/boot/booter/source/delay.c **** 45:/mnt/hgfs/boot/booter/source/delay.c **** void 46:/mnt/hgfs/boot/booter/source/delay.c **** msdelay (int ms) 47:/mnt/hgfs/boot/booter/source/delay.c **** { 139 .loc 1 47 0 140 .frame $sp,40,$31 # vars= 0, regs= 5/0, args= 16, gp= 0 141 .mask 0x800f0000,-8 142 .fmask 0x00000000,0 143 .set noreorder 144 .set nomacro 145 146 00f4 D8FFBD27 addiu $sp,$sp,-40 147 $LCFI6: 148 00f8 1C00B3AF sw $19,28($sp) 149 $LCFI7: 150 00fc 1400B1AF sw $17,20($sp) 151 $LCFI8: 152 0100 2000BFAF sw $31,32($sp) 153 $LCFI9: 154 0104 1800B2AF sw $18,24($sp) 155 $LCFI10: 156 0108 1000B0AF sw $16,16($sp) 157 $LCFI11: 48:/mnt/hgfs/boot/booter/source/delay.c **** 49:/mnt/hgfs/boot/booter/source/delay.c **** /* 50:/mnt/hgfs/boot/booter/source/delay.c **** * Use CP0 Count which counts 1:1 with core frequency. 51:/mnt/hgfs/boot/booter/source/delay.c **** */ 52:/mnt/hgfs/boot/booter/source/delay.c **** uint32 now, later, cpupll; 53:/mnt/hgfs/boot/booter/source/delay.c **** int i; 54:/mnt/hgfs/boot/booter/source/delay.c **** 55:/mnt/hgfs/boot/booter/source/delay.c **** cpupll = sys->cpupll & 0x3F; 158 .loc 1 55 0 159 010c 90B1023C li $2,-1315962880 # 0xffffffffb1900000 160 0110 6000438C lw $3,96($2) 161 .loc 1 47 0 162 0114 21988000 move $19,$4 56:/mnt/hgfs/boot/booter/source/delay.c **** 57:/mnt/hgfs/boot/booter/source/delay.c **** for (i = 0; i < ms; ++i) 163 .loc 1 57 0 164 0118 21880000 move $17,$0 165 .loc 1 55 0 166 .loc 1 57 0 167 011c 18008018 blez $4,$L33GAS LISTING /tmp/ccqM27O3.s page 5 168 0120 3F006330 andi $3,$3,0x3f 169 170 0124 B700023C li $2,11993088 # 0xb70000 171 0128 001B4234 ori $2,$2,0x1b00 172 012c 02106270 mul $2,$3,$2 173 0130 6210033C li $3,274857984 # 0x10620000 174 0134 D34D6334 ori $3,$3,0x4dd3 175 0138 19004300 multu $2,$3 176 013c 10100000 mfhi $2 177 0140 82910200 srl $18,$2,6 178 $L31: 179 $LBB4: 58:/mnt/hgfs/boot/booter/source/delay.c **** { 59:/mnt/hgfs/boot/booter/source/delay.c **** now = cp0RdCount(); 180 .loc 1 59 0 181 0144 0000000C jal cp0RdCount 182 0148 00000000 nop 183 60:/mnt/hgfs/boot/booter/source/delay.c **** later = now + ((12000000 * cpupll) / 1000); 184 .loc 1 60 0 185 014c 21804202 addu $16,$18,$2 61:/mnt/hgfs/boot/booter/source/delay.c **** 62:/mnt/hgfs/boot/booter/source/delay.c **** if (now < later) 186 .loc 1 62 0 187 0150 2B105000 sltu $2,$2,$16 188 0154 11004010 beq $2,$0,$L27 189 0158 00000000 nop 190 191 $L24: 63:/mnt/hgfs/boot/booter/source/delay.c **** { 64:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() < later) 192 .loc 1 64 0 193 015c 0000000C jal cp0RdCount 194 0160 00000000 nop 195 196 0164 2B105000 sltu $2,$2,$16 197 0168 FCFF4014 bne $2,$0,$L24 198 016c 00000000 nop 199 200 $L22: 201 $LBE4: 202 .loc 1 57 0 203 0170 01003126 addiu $17,$17,1 204 $L35: 205 0174 2A103302 slt $2,$17,$19 206 0178 F2FF4014 bne $2,$0,$L31 207 017c 00000000 nop 208 209 $L33: 210 0180 2000BF8F lw $31,32($sp) 211 0184 1C00B38F lw $19,28($sp) 212 0188 1800B28F lw $18,24($sp) 213 018c 1400B18F lw $17,20($sp) 214 0190 1000B08F lw $16,16($sp) 215 0194 0800E003 j $31 216 0198 2800BD27 addiu $sp,$sp,40 217 GAS LISTING /tmp/ccqM27O3.s page 6 218 $L27: 219 $LBB5: 65:/mnt/hgfs/boot/booter/source/delay.c **** ; 66:/mnt/hgfs/boot/booter/source/delay.c **** } 67:/mnt/hgfs/boot/booter/source/delay.c **** else 68:/mnt/hgfs/boot/booter/source/delay.c **** { 69:/mnt/hgfs/boot/booter/source/delay.c **** /* Count must rollover */ 70:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() > later) 220 .loc 1 70 0 221 019c 0000000C jal cp0RdCount 222 01a0 00000000 nop 223 224 01a4 2B100202 sltu $2,$16,$2 225 01a8 FCFF4014 bne $2,$0,$L27 226 01ac 00000000 nop 227 228 $L29: 71:/mnt/hgfs/boot/booter/source/delay.c **** ; 72:/mnt/hgfs/boot/booter/source/delay.c **** 73:/mnt/hgfs/boot/booter/source/delay.c **** while (cp0RdCount() < later) 229 .loc 1 73 0 230 01b0 0000000C jal cp0RdCount 231 01b4 00000000 nop 232 233 01b8 2B105000 sltu $2,$2,$16 234 01bc ECFF4010 beq $2,$0,$L22 235 01c0 00000000 nop 236 237 01c4 0000000C jal cp0RdCount 238 01c8 00000000 nop 239 240 01cc 2B105000 sltu $2,$2,$16 241 01d0 F7FF4014 bne $2,$0,$L29 242 01d4 00000000 nop 243 244 .loc 1 57 0 245 01d8 5D000008 j $L35 246 01dc 01003126 addiu $17,$17,1 247 248 $LBE5: 249 .set macro 250 .set reorder 251 $LFE3: 252 .end msdelay 253 .section .debug_frame,"",@progbits 254 $Lframe0: 255 0000 0C000000 .4byte $LECIE0-$LSCIE0 256 $LSCIE0: 257 0004 FFFFFFFF .4byte 0xffffffff 258 0008 01 .byte 0x1 259 0009 00 .ascii "\000" 260 000a 01 .uleb128 0x1 261 000b 04 .sleb128 4 262 000c 1F .byte 0x1f 263 000d 0C .byte 0xc 264 000e 1D .uleb128 0x1d 265 000f 00 .uleb128 0x0GAS LISTING /tmp/ccqM27O3.s page 7 266 .align 2 267 $LECIE0: 268 $LSFDE0: 269 0010 20000000 .4byte $LEFDE0-$LASFDE0 270 $LASFDE0: 271 0014 00000000 .4byte $Lframe0 272 0018 00000000 .4byte $LFB2 273 001c F4000000 .4byte $LFE2-$LFB2 274 0020 44 .byte 0x4 275 .4byte $LCFI0-$LFB2 276 0021 0E .byte 0xe 277 0022 28 .uleb128 0x28 278 0023 54 .byte 0x4 279 .4byte $LCFI5-$LCFI0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -