OpenCores
URL https://opencores.org/ocsvn/altor32/altor32/trunk

Subversion Repositories altor32

[/] [altor32/] [trunk/] [rtl/] [sim_icarus/] [test_image.lst] - Blame information for rev 37

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 ultra_embe
 
2
firmware.elf:     file format elf32-or1k
3
 
4
Sections:
5
Idx Name          Size      VMA       LMA       File off  Algn
6
 
7
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
8
  1 .data         00000008  10002fd8  10002fd8  00004fd8  2**2
9
                  CONTENTS, ALLOC, LOAD, DATA
10
  2 .bss          00001030  10002fe0  10002fe0  00004fe0  2**2
11
                  ALLOC
12
  3 .debug_info   00002151  00000000  00000000  00004fe0  2**0
13
                  CONTENTS, READONLY, DEBUGGING
14
  4 .debug_abbrev 00000b63  00000000  00000000  00007131  2**0
15
                  CONTENTS, READONLY, DEBUGGING
16
  5 .debug_loc    00000fc6  00000000  00000000  00007c94  2**0
17
                  CONTENTS, READONLY, DEBUGGING
18
  6 .debug_aranges 00000140  00000000  00000000  00008c5a  2**0
19
                  CONTENTS, READONLY, DEBUGGING
20
  7 .debug_ranges 000000b8  00000000  00000000  00008d9a  2**0
21
                  CONTENTS, READONLY, DEBUGGING
22
  8 .debug_line   00000ad7  00000000  00000000  00008e52  2**0
23
                  CONTENTS, READONLY, DEBUGGING
24
  9 .debug_str    000006d5  00000000  00000000  00009929  2**0
25
                  CONTENTS, READONLY, DEBUGGING
26
 10 .comment      00000029  00000000  00000000  00009ffe  2**0
27
                  CONTENTS, READONLY
28
 11 .debug_frame  0000039c  00000000  00000000  0000a028  2**2
29
                  CONTENTS, READONLY, DEBUGGING
30
 
31
Disassembly of section .text:
32
 
33
10000000 <_start-0x100>:
34
        ...
35
 
36
10000100 <_start>:
37
10000100:       18 80 10 00     l.movhi r4,0x1000
38
10000104:       a8 24 40 00     l.ori r1,r4,0x4000
39
10000108:       18 80 10 00     l.movhi r4,0x1000
40
1000010c:       a8 84 2f e0     l.ori r4,r4,0x2fe0
41
10000110:       18 a0 10 00     l.movhi r5,0x1000
42
10000114:       a8 a5 40 10     l.ori r5,r5,0x4010
43
 
44
10000118 :
45
10000118:       d4 04 00 00     l.sw 0(r4),r0
46
1000011c:       e4 a4 28 00     l.sfleu r4,r5
47
10000120:       9c 84 00 04     l.addi r4,r4,4
48
10000124:       13 ff ff fd     l.bf 10000118 
49
10000128:       15 00 00 00     l.nop 0x0
50
1000012c:       04 00 03 b5     l.jal 10001000 
51
10000130:       15 00 00 00     l.nop 0x0
52
        ...
53
 
54
10000400 :
55
10000400:       24 00 00 00     l.rfe
56
10000404:       15 00 00 00     l.nop 0x0
57
        ...
58
10000ffc:       15 00 00 00     l.nop 0x0
59
 
60
10001000 
:
61
int main(void)
62
{
63
    int res;
64
 
65
    // Setup printf to serial port
66
        printf_register(serial_putchar);
67
10001000:       18 60 10 00     l.movhi r3,0x1000
68
 
69
//-----------------------------------------------------------------
70
// main:
71
//-----------------------------------------------------------------
72
int main(void)
73
{
74
10001004:       d7 e1 4f fc     l.sw -4(r1),r9
75
10001008:       d7 e1 0f f8     l.sw -8(r1),r1
76
    int res;
77
 
78
    // Setup printf to serial port
79
        printf_register(serial_putchar);
80
1000100c:       a8 63 1a 54     l.ori r3,r3,0x1a54
81
 
82
//-----------------------------------------------------------------
83
// main:
84
//-----------------------------------------------------------------
85
int main(void)
86
{
87
10001010:       9c 21 ff f8     l.addi r1,r1,-8
88
    int res;
89
 
90
    // Setup printf to serial port
91
        printf_register(serial_putchar);
92
10001014:       04 00 01 32     l.jal 100014dc 
93
 
94
    // Run test
95
    res = test();
96
10001018:       04 00 03 35     l.jal 10001cec 
97
static inline void exit(unsigned exit_code)
98
{
99
    volatile register char  t1 asm ("r1") = exit_code;
100
 
101
    // No error?
102
    if (exit_code == 0)
103
1000101c:       bc 2b 00 00     l.sfnei r11,0
104
 
105
}
106
 
107
static inline void exit(unsigned exit_code)
108
{
109
    volatile register char  t1 asm ("r1") = exit_code;
110
10001020:       a5 6b 00 ff     l.andi r11,r11,0xff
111
10001024:       a8 2b 00 00     l.ori r1,r11,0x0
112
 
113
    // No error?
114
    if (exit_code == 0)
115
10001028:       0c 00 00 06     l.bnf 10001040 
116
            __asm__ __volatile__ ( "\t l.trap 0 ");
117
    }
118
    else
119
    {
120
        // Invalid instruction!
121
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
122
1000102c:       c8 00 00 00     lf.add.s r0,r0,r0
123
 
124
    // Exit with result
125
    exit(res);
126
}
127
10001030:       9c 21 00 08     l.addi r1,r1,8
128
10001034:       85 21 ff fc     l.lwz r9,-4(r1)
129
10001038:       84 21 ff f8     l.lwz r1,-8(r1)
130
1000103c:       44 00 48 00     l.jr r9
131
 
132
    // No error?
133
    if (exit_code == 0)
134
    {
135
        // Trap instruction
136
            __asm__ __volatile__ ( "\t l.trap 0 ");
137
10001040:       21 00 00 00     l.trap 0x0
138
10001044:       03 ff ff fb     l.j 10001030 
139
 
140
10001048 :
141
static volatile int in_interrupt = 0;
142
 
143
//-----------------------------------------------------------------
144
// exception_register:
145
//-----------------------------------------------------------------
146
void exception_register_fault_handler(void (*func)(void))       { func_fault = func; }
147
10001048:       18 80 10 00     l.movhi r4,0x1000
148
1000104c:       d7 e1 0f fc     l.sw -4(r1),r1
149
10001050:       a8 84 2f f0     l.ori r4,r4,0x2ff0
150
10001054:       9c 21 ff fc     l.addi r1,r1,-4
151
10001058:       d4 04 18 00     l.sw 0(r4),r3
152
1000105c:       9c 21 00 04     l.addi r1,r1,4
153
10001060:       84 21 ff fc     l.lwz r1,-4(r1)
154
10001064:       44 00 48 00     l.jr r9
155
 
156
10001068 :
157
void exception_register_break_handler(void (*func)(void))       { func_break = func; }
158
10001068:       18 80 10 00     l.movhi r4,0x1000
159
1000106c:       d7 e1 0f fc     l.sw -4(r1),r1
160
10001070:       a8 84 2f ec     l.ori r4,r4,0x2fec
161
10001074:       9c 21 ff fc     l.addi r1,r1,-4
162
10001078:       d4 04 18 00     l.sw 0(r4),r3
163
1000107c:       9c 21 00 04     l.addi r1,r1,4
164
10001080:       84 21 ff fc     l.lwz r1,-4(r1)
165
10001084:       44 00 48 00     l.jr r9
166
 
167
10001088 :
168
void exception_register_extint_handler(void (*func)(void))      { func_extint = func; }
169
10001088:       18 80 10 00     l.movhi r4,0x1000
170
1000108c:       d7 e1 0f fc     l.sw -4(r1),r1
171
10001090:       a8 84 2f e8     l.ori r4,r4,0x2fe8
172
10001094:       9c 21 ff fc     l.addi r1,r1,-4
173
10001098:       d4 04 18 00     l.sw 0(r4),r3
174
1000109c:       9c 21 00 04     l.addi r1,r1,4
175
100010a0:       84 21 ff fc     l.lwz r1,-4(r1)
176
100010a4:       44 00 48 00     l.jr r9
177
 
178
100010a8 :
179
void exception_register_syscall_handler(void (*func)(void))     { func_syscall = func; }
180
100010a8:       18 80 10 00     l.movhi r4,0x1000
181
100010ac:       d7 e1 0f fc     l.sw -4(r1),r1
182
100010b0:       a8 84 2f e4     l.ori r4,r4,0x2fe4
183
100010b4:       9c 21 ff fc     l.addi r1,r1,-4
184
100010b8:       d4 04 18 00     l.sw 0(r4),r3
185
100010bc:       9c 21 00 04     l.addi r1,r1,4
186
100010c0:       84 21 ff fc     l.lwz r1,-4(r1)
187
100010c4:       44 00 48 00     l.jr r9
188
 
189
100010c8 :
190
 
191
//-----------------------------------------------------------------
192
// cpu_handle_irq:
193
//-----------------------------------------------------------------
194
void cpu_handle_irq(unsigned cause)
195
{
196
100010c8:       d7 e1 17 f4     l.sw -12(r1),r2
197
    int recursive_int = (in_interrupt != 0);
198
100010cc:       18 40 10 00     l.movhi r2,0x1000
199
 
200
    in_interrupt = 1;
201
100010d0:       9c 80 00 01     l.addi r4,r0,1
202
//-----------------------------------------------------------------
203
// cpu_handle_irq:
204
//-----------------------------------------------------------------
205
void cpu_handle_irq(unsigned cause)
206
{
207
    int recursive_int = (in_interrupt != 0);
208
100010d4:       a8 42 2f e0     l.ori r2,r2,0x2fe0
209
 
210
//-----------------------------------------------------------------
211
// cpu_handle_irq:
212
//-----------------------------------------------------------------
213
void cpu_handle_irq(unsigned cause)
214
{
215
100010d8:       d7 e1 77 f8     l.sw -8(r1),r14
216
100010dc:       d7 e1 4f fc     l.sw -4(r1),r9
217
100010e0:       d7 e1 0f f0     l.sw -16(r1),r1
218
    int recursive_int = (in_interrupt != 0);
219
100010e4:       85 c2 00 00     l.lwz r14,0(r2)
220
 
221
    in_interrupt = 1;
222
 
223
    switch (cause)
224
100010e8:       bc 43 00 08     l.sfgtui r3,8
225
//-----------------------------------------------------------------
226
void cpu_handle_irq(unsigned cause)
227
{
228
    int recursive_int = (in_interrupt != 0);
229
 
230
    in_interrupt = 1;
231
100010ec:       d4 02 20 00     l.sw 0(r2),r4
232
 
233
//-----------------------------------------------------------------
234
// cpu_handle_irq:
235
//-----------------------------------------------------------------
236
void cpu_handle_irq(unsigned cause)
237
{
238
100010f0:       9c 21 ff e4     l.addi r1,r1,-28
239
    int recursive_int = (in_interrupt != 0);
240
 
241
    in_interrupt = 1;
242
 
243
    switch (cause)
244
100010f4:       10 00 00 71     l.bf 100012b8 
245
100010f8:       18 80 10 00     l.movhi r4,0x1000
246
100010fc:       b8 63 00 02     l.slli r3,r3,0x2
247
10001100:       a8 84 2b 00     l.ori r4,r4,0x2b00
248
10001104:       e0 63 20 00     l.add r3,r3,r4
249
10001108:       84 63 00 00     l.lwz r3,0(r3)
250
1000110c:       44 00 18 00     l.jr r3
251
    case EXCEPTION_DIV:
252
        panic("DIV!");
253
        break;
254
 
255
    case EXCEPTION_UDIV:
256
        panic("UDIV!");
257
10001110:       18 60 10 00     l.movhi r3,0x1000
258
10001114:       a8 63 2c e4     l.ori r3,r3,0x2ce4
259
10001118:       d4 01 18 00     l.sw 0(r1),r3
260
1000111c:       18 60 10 00     l.movhi r3,0x1000
261
10001120:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
262
10001124:       d4 01 18 04     l.sw 4(r1),r3
263
10001128:       9c 60 00 6e     l.addi r3,r0,110
264
        break;
265
 
266
    default:
267
        panic("UNKNOWN");
268
1000112c:       d4 01 18 08     l.sw 8(r1),r3
269
10001130:       18 60 10 00     l.movhi r3,0x1000
270
10001134:       a8 63 2c 74     l.ori r3,r3,0x2c74
271
10001138:       04 00 02 2b     l.jal 100019e4 
272
 
273
}
274
 
275
static inline void exit(unsigned exit_code)
276
{
277
    volatile register char  t1 asm ("r1") = exit_code;
278
1000113c:       9c 20 00 01     l.addi r1,r0,1
279
            __asm__ __volatile__ ( "\t l.trap 0 ");
280
    }
281
    else
282
    {
283
        // Invalid instruction!
284
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
285
10001140:       c8 00 00 00     lf.add.s r0,r0,r0
286
        break;
287
    }
288
 
289
    assert(recursive_int == 0);
290
10001144:       bc 0e 00 00     l.sfeqi r14,0
291
10001148:       10 00 00 0e     l.bf 10001180 
292
1000114c:       18 60 10 00     l.movhi r3,0x1000
293
10001150:       a8 63 2c f6     l.ori r3,r3,0x2cf6
294
10001154:       d4 01 18 00     l.sw 0(r1),r3
295
10001158:       18 60 10 00     l.movhi r3,0x1000
296
1000115c:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
297
10001160:       d4 01 18 04     l.sw 4(r1),r3
298
10001164:       9c 60 00 76     l.addi r3,r0,118
299
10001168:       d4 01 18 08     l.sw 8(r1),r3
300
1000116c:       18 60 10 00     l.movhi r3,0x1000
301
10001170:       a8 63 2c 74     l.ori r3,r3,0x2c74
302
10001174:       04 00 02 1c     l.jal 100019e4 
303
 
304
}
305
 
306
static inline void exit(unsigned exit_code)
307
{
308
    volatile register char  t1 asm ("r1") = exit_code;
309
10001178:       9c 20 00 01     l.addi r1,r0,1
310
            __asm__ __volatile__ ( "\t l.trap 0 ");
311
    }
312
    else
313
    {
314
        // Invalid instruction!
315
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
316
1000117c:       c8 00 00 00     lf.add.s r0,r0,r0
317
 
318
    in_interrupt = 0;
319
10001180:       9c 60 00 00     l.addi r3,r0,0
320
10001184:       d4 02 18 00     l.sw 0(r2),r3
321
}
322
10001188:       9c 21 00 1c     l.addi r1,r1,28
323
1000118c:       85 21 ff fc     l.lwz r9,-4(r1)
324
10001190:       84 21 ff f0     l.lwz r1,-16(r1)
325
10001194:       84 41 ff f4     l.lwz r2,-12(r1)
326
10001198:       85 c1 ff f8     l.lwz r14,-8(r1)
327
1000119c:       44 00 48 00     l.jr r9
328
    in_interrupt = 1;
329
 
330
    switch (cause)
331
    {
332
    case EXCEPTION_SYSCALL:
333
        if (func_syscall)
334
100011a0:       18 60 10 00     l.movhi r3,0x1000
335
100011a4:       a8 63 2f e4     l.ori r3,r3,0x2fe4
336
100011a8:       84 63 00 00     l.lwz r3,0(r3)
337
100011ac:       bc 03 00 00     l.sfeqi r3,0
338
100011b0:       10 00 00 4a     l.bf 100012d8 
339
            panic("EXT_INT!");
340
        break;
341
 
342
    case EXCEPTION_FAULT:
343
        if (func_fault)
344
            func_fault();
345
100011b4:       48 00 18 00     l.jalr r3
346
100011b8:       03 ff ff e3     l.j 10001144 
347
        else
348
            panic("SYSCALL!");
349
        break;
350
 
351
    case EXCEPTION_BREAK:
352
        if (func_break)
353
100011bc:       18 60 10 00     l.movhi r3,0x1000
354
100011c0:       a8 63 2f ec     l.ori r3,r3,0x2fec
355
100011c4:       84 63 00 00     l.lwz r3,0(r3)
356
100011c8:       bc 03 00 00     l.sfeqi r3,0
357
100011cc:       0f ff ff fa     l.bnf 100011b4 
358
            func_break();
359
        else
360
            panic("BREAK!");
361
100011d0:       18 60 10 00     l.movhi r3,0x1000
362
100011d4:       a8 63 2c b0     l.ori r3,r3,0x2cb0
363
100011d8:       d4 01 18 00     l.sw 0(r1),r3
364
100011dc:       18 60 10 00     l.movhi r3,0x1000
365
100011e0:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
366
100011e4:       d4 01 18 04     l.sw 4(r1),r3
367
100011e8:       9c 60 00 50     l.addi r3,r0,80
368
100011ec:       03 ff ff d0     l.j 1000112c 
369
        break;
370
 
371
    case EXCEPTION_EXTINT:
372
        if (func_extint)
373
100011f0:       18 60 10 00     l.movhi r3,0x1000
374
100011f4:       a8 63 2f e8     l.ori r3,r3,0x2fe8
375
100011f8:       84 63 00 00     l.lwz r3,0(r3)
376
100011fc:       bc 03 00 00     l.sfeqi r3,0
377
10001200:       0f ff ff ed     l.bnf 100011b4 
378
            func_extint();
379
        else
380
            panic("EXT_INT!");
381
10001204:       18 60 10 00     l.movhi r3,0x1000
382
10001208:       a8 63 2c b9     l.ori r3,r3,0x2cb9
383
1000120c:       d4 01 18 00     l.sw 0(r1),r3
384
10001210:       18 60 10 00     l.movhi r3,0x1000
385
10001214:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
386
10001218:       d4 01 18 04     l.sw 4(r1),r3
387
1000121c:       9c 60 00 57     l.addi r3,r0,87
388
10001220:       03 ff ff c3     l.j 1000112c 
389
        break;
390
 
391
    case EXCEPTION_FAULT:
392
        if (func_fault)
393
10001224:       18 60 10 00     l.movhi r3,0x1000
394
10001228:       a8 63 2f f0     l.ori r3,r3,0x2ff0
395
1000122c:       84 63 00 00     l.lwz r3,0(r3)
396
10001230:       bc 03 00 00     l.sfeqi r3,0
397
10001234:       0f ff ff e0     l.bnf 100011b4 
398
            func_fault();
399
        else
400
            panic("FAULT");
401
10001238:       18 60 10 00     l.movhi r3,0x1000
402
1000123c:       a8 63 2c c4     l.ori r3,r3,0x2cc4
403
10001240:       d4 01 18 00     l.sw 0(r1),r3
404
10001244:       18 60 10 00     l.movhi r3,0x1000
405
10001248:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
406
1000124c:       d4 01 18 04     l.sw 4(r1),r3
407
10001250:       9c 60 00 5e     l.addi r3,r0,94
408
10001254:       03 ff ff b6     l.j 1000112c 
409
        break;
410
 
411
    case EXCEPTION_MULT:
412
        panic("MULT!");
413
10001258:       18 60 10 00     l.movhi r3,0x1000
414
1000125c:       a8 63 2c cc     l.ori r3,r3,0x2ccc
415
10001260:       d4 01 18 00     l.sw 0(r1),r3
416
10001264:       18 60 10 00     l.movhi r3,0x1000
417
10001268:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
418
1000126c:       d4 01 18 04     l.sw 4(r1),r3
419
10001270:       9c 60 00 62     l.addi r3,r0,98
420
10001274:       03 ff ff ae     l.j 1000112c 
421
        break;
422
 
423
    case EXCEPTION_UMULT:
424
        panic("UMULT!");
425
10001278:       18 60 10 00     l.movhi r3,0x1000
426
1000127c:       a8 63 2c d4     l.ori r3,r3,0x2cd4
427
10001280:       d4 01 18 00     l.sw 0(r1),r3
428
10001284:       18 60 10 00     l.movhi r3,0x1000
429
10001288:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
430
1000128c:       d4 01 18 04     l.sw 4(r1),r3
431
10001290:       9c 60 00 66     l.addi r3,r0,102
432
10001294:       03 ff ff a6     l.j 1000112c 
433
        break;
434
 
435
    case EXCEPTION_DIV:
436
        panic("DIV!");
437
10001298:       18 60 10 00     l.movhi r3,0x1000
438
1000129c:       a8 63 2c dd     l.ori r3,r3,0x2cdd
439
100012a0:       d4 01 18 00     l.sw 0(r1),r3
440
100012a4:       18 60 10 00     l.movhi r3,0x1000
441
100012a8:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
442
100012ac:       d4 01 18 04     l.sw 4(r1),r3
443
100012b0:       9c 60 00 6a     l.addi r3,r0,106
444
100012b4:       03 ff ff 9e     l.j 1000112c 
445
    case EXCEPTION_UDIV:
446
        panic("UDIV!");
447
        break;
448
 
449
    default:
450
        panic("UNKNOWN");
451
100012b8:       18 60 10 00     l.movhi r3,0x1000
452
100012bc:       a8 63 2c ec     l.ori r3,r3,0x2cec
453
100012c0:       d4 01 18 00     l.sw 0(r1),r3
454
100012c4:       18 60 10 00     l.movhi r3,0x1000
455
100012c8:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
456
100012cc:       d4 01 18 04     l.sw 4(r1),r3
457
100012d0:       9c 60 00 72     l.addi r3,r0,114
458
100012d4:       03 ff ff 96     l.j 1000112c 
459
    {
460
    case EXCEPTION_SYSCALL:
461
        if (func_syscall)
462
            func_syscall();
463
        else
464
            panic("SYSCALL!");
465
100012d8:       18 60 10 00     l.movhi r3,0x1000
466
100012dc:       a8 63 2c 8f     l.ori r3,r3,0x2c8f
467
100012e0:       d4 01 18 00     l.sw 0(r1),r3
468
100012e4:       18 60 10 00     l.movhi r3,0x1000
469
100012e8:       a8 63 2c 9a     l.ori r3,r3,0x2c9a
470
100012ec:       d4 01 18 04     l.sw 4(r1),r3
471
100012f0:       9c 60 00 49     l.addi r3,r0,73
472
100012f4:       03 ff ff 8e     l.j 1000112c 
473
 
474
100012f8 :
475
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
476
{
477
    char* cp;
478
    int negative;
479
    char outbuf[32];
480
        const char udigits[] = "0123456789ABCDEF";
481
100012f8:       18 e0 38 39     l.movhi r7,0x3839
482
/* This routine moves a number to the output buffer  */
483
/* as directed by the padding and positioning flags. */
484
/*                                                   */
485
//----------------------------------------------------
486
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
487
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
488
100012fc:       d7 e1 17 dc     l.sw -36(r1),r2
489
{
490
    char* cp;
491
    int negative;
492
    char outbuf[32];
493
        const char udigits[] = "0123456789ABCDEF";
494
10001300:       a9 07 41 42     l.ori r8,r7,0x4142
495
/* This routine moves a number to the output buffer  */
496
/* as directed by the padding and positioning flags. */
497
/*                                                   */
498
//----------------------------------------------------
499
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
500
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
501
10001304:       d7 e1 a7 e8     l.sw -24(r1),r20
502
10001308:       d7 e1 b7 ec     l.sw -20(r1),r22
503
1000130c:       d7 e1 4f fc     l.sw -4(r1),r9
504
10001310:       d7 e1 0f d8     l.sw -40(r1),r1
505
10001314:       d7 e1 77 e0     l.sw -32(r1),r14
506
10001318:       d7 e1 97 e4     l.sw -28(r1),r18
507
1000131c:       d7 e1 c7 f0     l.sw -16(r1),r24
508
10001320:       d7 e1 d7 f4     l.sw -12(r1),r26
509
10001324:       d7 e1 e7 f8     l.sw -8(r1),r28
510
{
511
    char* cp;
512
    int negative;
513
    char outbuf[32];
514
        const char udigits[] = "0123456789ABCDEF";
515
10001328:       18 40 34 35     l.movhi r2,0x3435
516
/* This routine moves a number to the output buffer  */
517
/* as directed by the padding and positioning flags. */
518
/*                                                   */
519
//----------------------------------------------------
520
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
521
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
522
1000132c:       9c 21 ff 90     l.addi r1,r1,-112
523
        const char *digits;
524
    unsigned long num;
525
        int count;
526
 
527
    /* Check if number is negative                   */
528
    if (base == 10 && n < 0L) {
529
10001330:       ac c4 00 0a     l.xori r6,r4,10
530
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
531
{
532
    char* cp;
533
    int negative;
534
    char outbuf[32];
535
        const char udigits[] = "0123456789ABCDEF";
536
10001334:       a8 42 36 37     l.ori r2,r2,0x3637
537
10001338:       d4 01 40 08     l.sw 8(r1),r8
538
1000133c:       19 00 43 44     l.movhi r8,0x4344
539
/* This routine moves a number to the output buffer  */
540
/* as directed by the padding and positioning flags. */
541
/*                                                   */
542
//----------------------------------------------------
543
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
544
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
545
10001340:       aa 84 00 00     l.ori r20,r4,0x0
546
{
547
    char* cp;
548
    int negative;
549
    char outbuf[32];
550
        const char udigits[] = "0123456789ABCDEF";
551
10001344:       a9 08 45 46     l.ori r8,r8,0x4546
552
        const char *digits;
553
    unsigned long num;
554
        int count;
555
 
556
    /* Check if number is negative                   */
557
    if (base == 10 && n < 0L) {
558
10001348:       e1 60 30 02     l.sub r11,r0,r6
559
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
560
{
561
    char* cp;
562
    int negative;
563
    char outbuf[32];
564
        const char udigits[] = "0123456789ABCDEF";
565
1000134c:       18 80 30 31     l.movhi r4,0x3031
566
10001350:       d4 01 10 04     l.sw 4(r1),r2
567
        const char ldigits[] = "0123456789abcdef";
568
10001354:       d4 01 10 18     l.sw 24(r1),r2
569
10001358:       18 40 63 64     l.movhi r2,0x6364
570
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
571
{
572
    char* cp;
573
    int negative;
574
    char outbuf[32];
575
        const char udigits[] = "0123456789ABCDEF";
576
1000135c:       a8 84 32 33     l.ori r4,r4,0x3233
577
        const char ldigits[] = "0123456789abcdef";
578
10001360:       a8 e7 61 62     l.ori r7,r7,0x6162
579
        const char *digits;
580
    unsigned long num;
581
        int count;
582
 
583
    /* Check if number is negative                   */
584
    if (base == 10 && n < 0L) {
585
10001364:       e0 cb 30 04     l.or r6,r11,r6
586
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
587
{
588
    char* cp;
589
    int negative;
590
    char outbuf[32];
591
        const char udigits[] = "0123456789ABCDEF";
592
10001368:       d4 01 40 0c     l.sw 12(r1),r8
593
        const char ldigits[] = "0123456789abcdef";
594
1000136c:       a8 42 65 66     l.ori r2,r2,0x6566
595
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
596
{
597
    char* cp;
598
    int negative;
599
    char outbuf[32];
600
        const char udigits[] = "0123456789ABCDEF";
601
10001370:       9d 00 00 00     l.addi r8,r0,0
602
10001374:       d4 01 20 00     l.sw 0(r1),r4
603
10001378:       d8 01 40 10     l.sb 16(r1),r8
604
        const char ldigits[] = "0123456789abcdef";
605
1000137c:       d4 01 20 14     l.sw 20(r1),r4
606
10001380:       d4 01 38 1c     l.sw 28(r1),r7
607
10001384:       d4 01 10 20     l.sw 32(r1),r2
608
10001388:       d8 01 40 24     l.sb 36(r1),r8
609
        const char *digits;
610
    unsigned long num;
611
        int count;
612
 
613
    /* Check if number is negative                   */
614
    if (base == 10 && n < 0L) {
615
1000138c:       bd 86 00 00     l.sfltsi r6,0
616
/* This routine moves a number to the output buffer  */
617
/* as directed by the padding and positioning flags. */
618
/*                                                   */
619
//----------------------------------------------------
620
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
621
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
622
10001390:       aa c5 00 00     l.ori r22,r5,0x0
623
        const char *digits;
624
    unsigned long num;
625
        int count;
626
 
627
    /* Check if number is negative                   */
628
    if (base == 10 && n < 0L) {
629
10001394:       10 00 00 03     l.bf 100013a0 
630
10001398:       bd 63 00 00     l.sfgesi r3,0
631
1000139c:       0c 00 00 4d     l.bnf 100014d0 
632
        negative = 1;
633
        num = -(n);
634
    }
635
    else{
636
        num = (n);
637
100013a0:       a8 43 00 00     l.ori r2,r3,0x0
638
        negative = 0;
639
100013a4:       9f 80 00 00     l.addi r28,r0,0
640
    }
641
 
642
        if (par->uppercase)
643
100013a8:       84 76 00 18     l.lwz r3,24(r22)
644
                digits = udigits;
645
100013ac:       ab 41 00 00     l.ori r26,r1,0x0
646
    else{
647
        num = (n);
648
        negative = 0;
649
    }
650
 
651
        if (par->uppercase)
652
100013b0:       bc 03 00 00     l.sfeqi r3,0
653
100013b4:       0c 00 00 02     l.bnf 100013bc 
654
                digits = udigits;
655
        else
656
                digits = ldigits;
657
100013b8:       9f 41 00 14     l.addi r26,r1,20
658
100013bc:       9f 01 00 28     l.addi r24,r1,40
659
100013c0:       a9 d8 00 00     l.ori r14,r24,0x0
660
100013c4:       00 00 00 02     l.j 100013cc 
661
100013c8:       a9 d2 00 00     l.ori r14,r18,0x0
662
 
663
    /* Build number (backwards) in outbuf            */
664
    cp = outbuf;
665
    do {
666
        *cp++ = digits[(int)(num % base)];
667
100013cc:       a8 62 00 00     l.ori r3,r2,0x0
668
100013d0:       a8 94 00 00     l.ori r4,r20,0x0
669
/* This routine moves a number to the output buffer  */
670
/* as directed by the padding and positioning flags. */
671
/*                                                   */
672
//----------------------------------------------------
673
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
674
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
675
100013d4:       9e 4e 00 01     l.addi r18,r14,1
676
                digits = ldigits;
677
 
678
    /* Build number (backwards) in outbuf            */
679
    cp = outbuf;
680
    do {
681
        *cp++ = digits[(int)(num % base)];
682
100013d8:       04 00 05 52     l.jal 10002920 <__umodsi3>
683
100013dc:       e1 7a 58 00     l.add r11,r26,r11
684
    } while ((num /= base) > 0);
685
100013e0:       a8 62 00 00     l.ori r3,r2,0x0
686
                digits = ldigits;
687
 
688
    /* Build number (backwards) in outbuf            */
689
    cp = outbuf;
690
    do {
691
        *cp++ = digits[(int)(num % base)];
692
100013e4:       8d 6b 00 00     l.lbz r11,0(r11)
693
    } while ((num /= base) > 0);
694
100013e8:       a8 94 00 00     l.ori r4,r20,0x0
695
                digits = ldigits;
696
 
697
    /* Build number (backwards) in outbuf            */
698
    cp = outbuf;
699
    do {
700
        *cp++ = digits[(int)(num % base)];
701
100013ec:       d8 0e 58 00     l.sb 0(r14),r11
702
    } while ((num /= base) > 0);
703
100013f0:       04 00 05 43     l.jal 100028fc <__udivsi3>
704
100013f4:       bc 0b 00 00     l.sfeqi r11,0
705
100013f8:       a8 4b 00 00     l.ori r2,r11,0x0
706
100013fc:       0f ff ff f3     l.bnf 100013c8 
707
    if (negative)
708
10001400:       bc 1c 00 00     l.sfeqi r28,0
709
10001404:       10 00 00 04     l.bf 10001414 
710
        *cp++ = '-';
711
10001408:       9c 40 00 2d     l.addi r2,r0,45
712
1000140c:       9e 4e 00 02     l.addi r18,r14,2
713
10001410:       d8 0e 10 01     l.sb 1(r14),r2
714
    *cp-- = 0;
715
10001414:       9d 00 00 00     l.addi r8,r0,0
716
10001418:       9d d2 ff ff     l.addi r14,r18,-1
717
1000141c:       d8 12 40 00     l.sb 0(r18),r8
718
        const char * s;
719
 
720
        if(!str)
721
                return 0;
722
 
723
        for(s = str; *s; ++ s)
724
10001420:       90 81 00 28     l.lbs r4,40(r1)
725
10001424:       bc 04 00 00     l.sfeqi r4,0
726
10001428:       10 00 00 08     l.bf 10001448 
727
1000142c:       9c 41 00 29     l.addi r2,r1,41
728
10001430:       a8 82 00 00     l.ori r4,r2,0x0
729
10001434:       9c 42 00 01     l.addi r2,r2,1
730
10001438:       90 62 ff ff     l.lbs r3,-1(r2)
731
1000143c:       bc 03 00 00     l.sfeqi r3,0
732
10001440:       0f ff ff fc     l.bnf 10001430 
733
10001444:       e0 84 c0 02     l.sub r4,r4,r24
734
        *cp++ = '-';
735
    *cp-- = 0;
736
 
737
    /* Move the converted number to the buffer and   */
738
    /* add in the padding where needed.              */
739
    par->len = strlen(outbuf);
740
10001448:       d4 16 20 00     l.sw 0(r22),r4
741
#ifdef PRINTF_ENABLE_PADDING
742
    padding(buf, !(par->left_flag), par);
743
#endif
744
        count = 0;
745
    while (cp >= outbuf && count++ < par->max_len)
746
1000144c:       e4 6e c0 00     l.sfgeu r14,r24
747
10001450:       0c 00 00 14     l.bnf 100014a0 
748
10001454:       84 56 00 1c     l.lwz r2,28(r22)
749
10001458:       bd a2 00 00     l.sflesi r2,0
750
1000145c:       10 00 00 11     l.bf 100014a0 
751
10001460:       1a 80 10 00     l.movhi r20,0x1000
752
/* This routine moves a number to the output buffer  */
753
/* as directed by the padding and positioning flags. */
754
/*                                                   */
755
//----------------------------------------------------
756
#if defined PRINTF_DEC_PRINT || defined PRINTF_HEX_PRINT
757
static void outnum( struct vbuf *buf, const long n, const long base, params_t *par)
758
10001464:       e2 52 c0 02     l.sub r18,r18,r24
759
    par->len = strlen(outbuf);
760
#ifdef PRINTF_ENABLE_PADDING
761
    padding(buf, !(par->left_flag), par);
762
#endif
763
        count = 0;
764
    while (cp >= outbuf && count++ < par->max_len)
765
10001468:       9c 40 00 01     l.addi r2,r0,1
766
1000146c:       aa 94 2f f4     l.ori r20,r20,0x2ff4
767
10001470:       00 00 00 05     l.j 10001484 
768
10001474:       84 96 00 1c     l.lwz r4,28(r22)
769
10001478:       e5 a4 10 00     l.sfles r4,r2
770
1000147c:       a8 43 00 00     l.ori r2,r3,0x0
771
10001480:       10 00 00 08     l.bf 100014a0 
772
        vbuf_putchar(buf, *cp--);
773
10001484:       90 6e 00 00     l.lbs r3,0(r14)
774
10001488:       85 74 00 00     l.lwz r11,0(r20)
775
1000148c:       9d ce ff ff     l.addi r14,r14,-1
776
10001490:       48 00 58 00     l.jalr r11
777
    par->len = strlen(outbuf);
778
#ifdef PRINTF_ENABLE_PADDING
779
    padding(buf, !(par->left_flag), par);
780
#endif
781
        count = 0;
782
    while (cp >= outbuf && count++ < par->max_len)
783
10001494:       e4 02 90 00     l.sfeq r2,r18
784
10001498:       9c 62 00 01     l.addi r3,r2,1
785
1000149c:       0f ff ff f6     l.bnf 10001474 
786
        vbuf_putchar(buf, *cp--);
787
#ifdef PRINTF_ENABLE_PADDING
788
    padding(buf, par->left_flag, par);
789
#endif
790
}
791
100014a0:       9c 21 00 70     l.addi r1,r1,112
792
100014a4:       85 21 ff fc     l.lwz r9,-4(r1)
793
100014a8:       84 21 ff d8     l.lwz r1,-40(r1)
794
100014ac:       84 41 ff dc     l.lwz r2,-36(r1)
795
100014b0:       85 c1 ff e0     l.lwz r14,-32(r1)
796
100014b4:       86 41 ff e4     l.lwz r18,-28(r1)
797
100014b8:       86 81 ff e8     l.lwz r20,-24(r1)
798
100014bc:       86 c1 ff ec     l.lwz r22,-20(r1)
799
100014c0:       87 01 ff f0     l.lwz r24,-16(r1)
800
100014c4:       87 41 ff f4     l.lwz r26,-12(r1)
801
100014c8:       87 81 ff f8     l.lwz r28,-8(r1)
802
100014cc:       44 00 48 00     l.jr r9
803
        int count;
804
 
805
    /* Check if number is negative                   */
806
    if (base == 10 && n < 0L) {
807
        negative = 1;
808
        num = -(n);
809
100014d0:       e0 40 18 02     l.sub r2,r0,r3
810
    unsigned long num;
811
        int count;
812
 
813
    /* Check if number is negative                   */
814
    if (base == 10 && n < 0L) {
815
        negative = 1;
816
100014d4:       9f 80 00 01     l.addi r28,r0,1
817
100014d8:       03 ff ff b4     l.j 100013a8 
818
 
819
100014dc :
820
//----------------------------------------------------
821
// printf_register: Assign printf output function
822
//----------------------------------------------------
823
void printf_register(FP_OUTCHAR f)
824
{
825
        _stdout = f;
826
100014dc:       18 80 10 00     l.movhi r4,0x1000
827
}
828
//----------------------------------------------------
829
// printf_register: Assign printf output function
830
//----------------------------------------------------
831
void printf_register(FP_OUTCHAR f)
832
{
833
100014e0:       d7 e1 0f fc     l.sw -4(r1),r1
834
        _stdout = f;
835
100014e4:       a8 84 2f f4     l.ori r4,r4,0x2ff4
836
}
837
//----------------------------------------------------
838
// printf_register: Assign printf output function
839
//----------------------------------------------------
840
void printf_register(FP_OUTCHAR f)
841
{
842
100014e8:       9c 21 ff fc     l.addi r1,r1,-4
843
        _stdout = f;
844
100014ec:       d4 04 18 00     l.sw 0(r4),r3
845
}
846
100014f0:       9c 21 00 04     l.addi r1,r1,4
847
100014f4:       84 21 ff fc     l.lwz r1,-4(r1)
848
100014f8:       44 00 48 00     l.jr r9
849
 
850
100014fc :
851
#endif
852
//----------------------------------------------------
853
// puts:
854
//----------------------------------------------------
855
int puts( const char * str )
856
{
857
100014fc:       d7 e1 77 f8     l.sw -8(r1),r14
858
        if (!_stdout)
859
10001500:       19 c0 10 00     l.movhi r14,0x1000
860
#endif
861
//----------------------------------------------------
862
// puts:
863
//----------------------------------------------------
864
int puts( const char * str )
865
{
866
10001504:       d7 e1 17 f4     l.sw -12(r1),r2
867
        if (!_stdout)
868
10001508:       a9 ce 2f f4     l.ori r14,r14,0x2ff4
869
#endif
870
//----------------------------------------------------
871
// puts:
872
//----------------------------------------------------
873
int puts( const char * str )
874
{
875
1000150c:       d7 e1 4f fc     l.sw -4(r1),r9
876
        if (!_stdout)
877
10001510:       85 6e 00 00     l.lwz r11,0(r14)
878
#endif
879
//----------------------------------------------------
880
// puts:
881
//----------------------------------------------------
882
int puts( const char * str )
883
{
884
10001514:       d7 e1 0f f0     l.sw -16(r1),r1
885
        if (!_stdout)
886
10001518:       bc 0b 00 00     l.sfeqi r11,0
887
#endif
888
//----------------------------------------------------
889
// puts:
890
//----------------------------------------------------
891
int puts( const char * str )
892
{
893
1000151c:       9c 21 ff f0     l.addi r1,r1,-16
894
10001520:       a8 43 00 00     l.ori r2,r3,0x0
895
        if (!_stdout)
896
10001524:       10 00 00 12     l.bf 1000156c 
897
                return -1;
898
 
899
        while (*str)
900
10001528:       90 63 00 00     l.lbs r3,0(r3)
901
1000152c:       bc 03 00 00     l.sfeqi r3,0
902
10001530:       10 00 00 07     l.bf 1000154c 
903
                _stdout(*str++);
904
10001534:       9c 42 00 01     l.addi r2,r2,1
905
10001538:       48 00 58 00     l.jalr r11
906
int puts( const char * str )
907
{
908
        if (!_stdout)
909
                return -1;
910
 
911
        while (*str)
912
1000153c:       90 62 00 00     l.lbs r3,0(r2)
913
10001540:       bc 03 00 00     l.sfeqi r3,0
914
10001544:       85 6e 00 00     l.lwz r11,0(r14)
915
10001548:       0f ff ff fb     l.bnf 10001534 
916
                _stdout(*str++);
917
 
918
        return _stdout('\n');
919
1000154c:       9c 60 00 0a     l.addi r3,r0,10
920
10001550:       48 00 58 00     l.jalr r11
921
}
922
10001554:       9c 21 00 10     l.addi r1,r1,16
923
10001558:       85 21 ff fc     l.lwz r9,-4(r1)
924
1000155c:       84 21 ff f0     l.lwz r1,-16(r1)
925
10001560:       84 41 ff f4     l.lwz r2,-12(r1)
926
10001564:       85 c1 ff f8     l.lwz r14,-8(r1)
927
10001568:       44 00 48 00     l.jr r9
928
// puts:
929
//----------------------------------------------------
930
int puts( const char * str )
931
{
932
        if (!_stdout)
933
                return -1;
934
1000156c:       9d 60 ff ff     l.addi r11,r0,-1
935
10001570:       03 ff ff f9     l.j 10001554 
936
 
937
10001574 :
938
}
939
//----------------------------------------------------
940
// putchar:
941
//----------------------------------------------------
942
int putchar( int c )
943
{
944
10001574:       d7 e1 17 f8     l.sw -8(r1),r2
945
10001578:       a8 43 00 00     l.ori r2,r3,0x0
946
        if (!_stdout)
947
1000157c:       18 60 10 00     l.movhi r3,0x1000
948
}
949
//----------------------------------------------------
950
// putchar:
951
//----------------------------------------------------
952
int putchar( int c )
953
{
954
10001580:       d7 e1 4f fc     l.sw -4(r1),r9
955
        if (!_stdout)
956
10001584:       a8 63 2f f4     l.ori r3,r3,0x2ff4
957
}
958
//----------------------------------------------------
959
// putchar:
960
//----------------------------------------------------
961
int putchar( int c )
962
{
963
10001588:       d7 e1 0f f4     l.sw -12(r1),r1
964
        if (!_stdout)
965
1000158c:       85 63 00 00     l.lwz r11,0(r3)
966
}
967
//----------------------------------------------------
968
// putchar:
969
//----------------------------------------------------
970
int putchar( int c )
971
{
972
10001590:       9c 21 ff f4     l.addi r1,r1,-12
973
        if (!_stdout)
974
10001594:       bc 0b 00 00     l.sfeqi r11,0
975
10001598:       10 00 00 0a     l.bf 100015c0 
976
                return -1;
977
 
978
        _stdout((char)c);
979
1000159c:       b8 62 00 18     l.slli r3,r2,0x18
980
100015a0:       b8 63 00 98     l.srai r3,r3,0x18
981
100015a4:       48 00 58 00     l.jalr r11
982
 
983
        return c;
984
100015a8:       a9 62 00 00     l.ori r11,r2,0x0
985
}
986
100015ac:       9c 21 00 0c     l.addi r1,r1,12
987
100015b0:       85 21 ff fc     l.lwz r9,-4(r1)
988
100015b4:       84 21 ff f4     l.lwz r1,-12(r1)
989
100015b8:       84 41 ff f8     l.lwz r2,-8(r1)
990
100015bc:       44 00 48 00     l.jr r9
991
// putchar:
992
//----------------------------------------------------
993
int putchar( int c )
994
{
995
        if (!_stdout)
996
                return -1;
997
100015c0:       9d 60 ff ff     l.addi r11,r0,-1
998
100015c4:       03 ff ff fa     l.j 100015ac 
999
 
1000
100015c8 :
1001
/* added easily by following the examples shown for  */
1002
/* the supported formats.                            */
1003
/*                                                   */
1004
//----------------------------------------------------
1005
int vbuf_printf(struct vbuf *buf, const char* ctrl1, va_list argp)
1006
{
1007
100015c8:       d7 e1 97 e0     l.sw -32(r1),r18
1008
100015cc:       d7 e1 f7 f8     l.sw -8(r1),r30
1009
100015d0:       d7 e1 4f fc     l.sw -4(r1),r9
1010
100015d4:       d7 e1 0f d4     l.sw -44(r1),r1
1011
100015d8:       d7 e1 17 d8     l.sw -40(r1),r2
1012
100015dc:       d7 e1 77 dc     l.sw -36(r1),r14
1013
100015e0:       d7 e1 a7 e4     l.sw -28(r1),r20
1014
100015e4:       d7 e1 b7 e8     l.sw -24(r1),r22
1015
100015e8:       d7 e1 c7 ec     l.sw -20(r1),r24
1016
100015ec:       d7 e1 d7 f0     l.sw -16(r1),r26
1017
100015f0:       d7 e1 e7 f4     l.sw -12(r1),r28
1018
100015f4:       ab c4 00 00     l.ori r30,r4,0x0
1019
    params_t par;
1020
 
1021
    char ch;
1022
    char* ctrl = (char*)ctrl1;
1023
 
1024
    for ( ; *ctrl; ctrl++)
1025
100015f8:       90 64 00 00     l.lbs r3,0(r4)
1026
100015fc:       bc 23 00 00     l.sfnei r3,0
1027
/* added easily by following the examples shown for  */
1028
/* the supported formats.                            */
1029
/*                                                   */
1030
//----------------------------------------------------
1031
int vbuf_printf(struct vbuf *buf, const char* ctrl1, va_list argp)
1032
{
1033
10001600:       9c 21 ff b4     l.addi r1,r1,-76
1034
10001604:       aa 45 00 00     l.ori r18,r5,0x0
1035
    params_t par;
1036
 
1037
    char ch;
1038
    char* ctrl = (char*)ctrl1;
1039
 
1040
    for ( ; *ctrl; ctrl++)
1041
10001608:       0c 00 00 77     l.bnf 100017e4 
1042
        {
1043
        /* move format string chars to buffer until a  */
1044
        /* format control is found.                    */
1045
        if (*ctrl != '%')
1046
                {
1047
                        vbuf_putchar(buf, *ctrl);
1048
1000160c:       19 c0 10 00     l.movhi r14,0x1000
1049
        }
1050
 
1051
        /* initialize all the flags for this format.   */
1052
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1053
        par.pad_character = ' ';
1054
        par.num2=32767;
1055
10001610:       9f 40 7f ff     l.addi r26,r0,32767
1056
        {
1057
        /* move format string chars to buffer until a  */
1058
        /* format control is found.                    */
1059
        if (*ctrl != '%')
1060
                {
1061
                        vbuf_putchar(buf, *ctrl);
1062
10001614:       a9 ce 2f f4     l.ori r14,r14,0x2ff4
1063
 
1064
        /* initialize all the flags for this format.   */
1065
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1066
        par.pad_character = ' ';
1067
        par.num2=32767;
1068
                par.max_len = 10;
1069
10001618:       9f 00 00 0a     l.addi r24,r0,10
1070
1000161c:       00 00 00 08     l.j 1000163c 
1071
        {
1072
        /* move format string chars to buffer until a  */
1073
        /* format control is found.                    */
1074
        if (*ctrl != '%')
1075
                {
1076
                        vbuf_putchar(buf, *ctrl);
1077
10001620:       85 6e 00 00     l.lwz r11,0(r14)
1078
            continue;
1079
10001624:       ab 9e 00 00     l.ori r28,r30,0x0
1080
        {
1081
        /* move format string chars to buffer until a  */
1082
        /* format control is found.                    */
1083
        if (*ctrl != '%')
1084
                {
1085
                        vbuf_putchar(buf, *ctrl);
1086
10001628:       48 00 58 00     l.jalr r11
1087
    params_t par;
1088
 
1089
    char ch;
1090
    char* ctrl = (char*)ctrl1;
1091
 
1092
    for ( ; *ctrl; ctrl++)
1093
1000162c:       90 7c 00 01     l.lbs r3,1(r28)
1094
10001630:       bc 03 00 00     l.sfeqi r3,0
1095
10001634:       9f dc 00 01     l.addi r30,r28,1
1096
10001638:       10 00 00 6b     l.bf 100017e4 
1097
        {
1098
        /* move format string chars to buffer until a  */
1099
        /* format control is found.                    */
1100
        if (*ctrl != '%')
1101
1000163c:       bc 03 00 25     l.sfeqi r3,37
1102
10001640:       0f ff ff f8     l.bnf 10001620 
1103
 
1104
        /* initialize all the flags for this format.   */
1105
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1106
        par.pad_character = ' ';
1107
        par.num2=32767;
1108
                par.max_len = 10;
1109
10001644:       90 be 00 01     l.lbs r5,1(r30)
1110
            continue;
1111
        }
1112
 
1113
        /* initialize all the flags for this format.   */
1114
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1115
        par.pad_character = ' ';
1116
10001648:       9c 60 00 20     l.addi r3,r0,32
1117
                        vbuf_putchar(buf, *ctrl);
1118
            continue;
1119
        }
1120
 
1121
        /* initialize all the flags for this format.   */
1122
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1123
1000164c:       9c 40 00 00     l.addi r2,r0,0
1124
        par.pad_character = ' ';
1125
10001650:       d8 01 18 0c     l.sb 12(r1),r3
1126
                par.max_len = 10;
1127
 
1128
 try_next:
1129
        ch = *(++ctrl);
1130
 
1131
        if ((ch >= '0' && ch <= '9'))
1132
10001654:       a4 65 00 ff     l.andi r3,r5,0xff
1133
                        vbuf_putchar(buf, *ctrl);
1134
            continue;
1135
        }
1136
 
1137
        /* initialize all the flags for this format.   */
1138
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1139
10001658:       d4 01 10 10     l.sw 16(r1),r2
1140
                par.max_len = 10;
1141
 
1142
 try_next:
1143
        ch = *(++ctrl);
1144
 
1145
        if ((ch >= '0' && ch <= '9'))
1146
1000165c:       9c 83 ff d0     l.addi r4,r3,-48
1147
                        vbuf_putchar(buf, *ctrl);
1148
            continue;
1149
        }
1150
 
1151
        /* initialize all the flags for this format.   */
1152
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1153
10001660:       d4 01 10 14     l.sw 20(r1),r2
1154
                par.max_len = 10;
1155
 
1156
 try_next:
1157
        ch = *(++ctrl);
1158
 
1159
        if ((ch >= '0' && ch <= '9'))
1160
10001664:       a4 84 00 ff     l.andi r4,r4,0xff
1161
        }
1162
 
1163
        /* initialize all the flags for this format.   */
1164
        dot_flag   = long_flag = par.left_flag = par.do_padding = 0;
1165
        par.pad_character = ' ';
1166
        par.num2=32767;
1167
10001668:       d4 01 d0 08     l.sw 8(r1),r26
1168
                par.max_len = 10;
1169
1000166c:       d4 01 c0 1c     l.sw 28(r1),r24
1170
 
1171
 try_next:
1172
        ch = *(++ctrl);
1173
 
1174
        if ((ch >= '0' && ch <= '9'))
1175
10001670:       bc 44 00 09     l.sfgtui r4,9
1176
10001674:       9f 9e 00 01     l.addi r28,r30,1
1177
            }
1178
            ctrl--;
1179
            goto try_next;
1180
        }
1181
 
1182
                par.uppercase = (ch >= 'A' && ch <= 'Z') ? 1 : 0;
1183
10001678:       9e 80 00 01     l.addi r20,r0,1
1184
                par.max_len = 10;
1185
 
1186
 try_next:
1187
        ch = *(++ctrl);
1188
 
1189
        if ((ch >= '0' && ch <= '9'))
1190
1000167c:       10 00 00 1a     l.bf 100016e4 
1191
                {
1192
            if (dot_flag)
1193
10001680:       bc 02 00 00     l.sfeqi r2,0
1194
10001684:       10 00 00 9a     l.bf 100018ec 
1195
10001688:       9c c0 00 00     l.addi r6,r0,0
1196
1000168c:       9c 85 ff d0     l.addi r4,r5,-48
1197
10001690:       00 00 00 02     l.j 10001698 
1198
    char* cp;
1199
 
1200
    n = 0;
1201
    cp = *linep;
1202
    while (((*cp) >= '0' && (*cp) <= '9'))
1203
        n = n*10 + ((*cp++) - '0');
1204
10001694:       ab 83 00 00     l.ori r28,r3,0x0
1205
10001698:       b8 e6 00 03     l.slli r7,r6,0x3
1206
1000169c:       9c 7c 00 01     l.addi r3,r28,1
1207
100016a0:       e0 c6 30 00     l.add r6,r6,r6
1208
    long n;
1209
    char* cp;
1210
 
1211
    n = 0;
1212
    cp = *linep;
1213
    while (((*cp) >= '0' && (*cp) <= '9'))
1214
100016a4:       90 a3 00 00     l.lbs r5,0(r3)
1215
        n = n*10 + ((*cp++) - '0');
1216
100016a8:       e0 c6 38 00     l.add r6,r6,r7
1217
100016ac:       e0 c6 20 00     l.add r6,r6,r4
1218
    long n;
1219
    char* cp;
1220
 
1221
    n = 0;
1222
    cp = *linep;
1223
    while (((*cp) >= '0' && (*cp) <= '9'))
1224
100016b0:       9c 85 ff d0     l.addi r4,r5,-48
1225
100016b4:       a4 e4 00 ff     l.andi r7,r4,0xff
1226
100016b8:       bc 47 00 09     l.sfgtui r7,9
1227
100016bc:       0f ff ff f6     l.bnf 10001694 
1228
100016c0:       a8 83 00 00     l.ori r4,r3,0x0
1229
        ch = *(++ctrl);
1230
 
1231
        if ((ch >= '0' && ch <= '9'))
1232
                {
1233
            if (dot_flag)
1234
                par.num2 = getnum(&ctrl);
1235
100016c4:       d4 01 30 08     l.sw 8(r1),r6
1236
                    par.pad_character = '0';
1237
 
1238
                par.num1 = getnum(&ctrl);
1239
                par.do_padding = 1;
1240
            }
1241
            ctrl--;
1242
100016c8:       9f c3 ff ff     l.addi r30,r3,-1
1243
100016cc:       ab 84 00 00     l.ori r28,r4,0x0
1244
                par.max_len = 10;
1245
 
1246
 try_next:
1247
        ch = *(++ctrl);
1248
 
1249
        if ((ch >= '0' && ch <= '9'))
1250
100016d0:       a4 65 00 ff     l.andi r3,r5,0xff
1251
100016d4:       9c 83 ff d0     l.addi r4,r3,-48
1252
100016d8:       a4 84 00 ff     l.andi r4,r4,0xff
1253
100016dc:       bc 44 00 09     l.sfgtui r4,9
1254
100016e0:       0f ff ff e8     l.bnf 10001680 
1255
            }
1256
            ctrl--;
1257
            goto try_next;
1258
        }
1259
 
1260
                par.uppercase = (ch >= 'A' && ch <= 'Z') ? 1 : 0;
1261
100016e4:       9c 63 ff bf     l.addi r3,r3,-65
1262
100016e8:       9c 80 00 01     l.addi r4,r0,1
1263
100016ec:       a4 63 00 ff     l.andi r3,r3,0xff
1264
100016f0:       bc a3 00 19     l.sfleui r3,25
1265
100016f4:       10 00 00 02     l.bf 100016fc 
1266
100016f8:       9c 80 00 00     l.addi r4,r0,0
1267
100016fc:       d4 01 20 18     l.sw 24(r1),r4
1268
 
1269
        switch ((par.uppercase ? ch + 32: ch))
1270
10001700:       bc 04 00 00     l.sfeqi r4,0
1271
10001704:       a8 65 00 00     l.ori r3,r5,0x0
1272
10001708:       10 00 00 02     l.bf 10001710 
1273
1000170c:       9c 65 00 20     l.addi r3,r5,32
1274
10001710:       9c 63 ff db     l.addi r3,r3,-37
1275
10001714:       bc 43 00 53     l.sfgtui r3,83
1276
10001718:       13 ff ff c5     l.bf 1000162c 
1277
1000171c:       18 80 10 00     l.movhi r4,0x1000
1278
10001720:       b8 63 00 02     l.slli r3,r3,0x2
1279
10001724:       a8 84 2b 24     l.ori r4,r4,0x2b24
1280
10001728:       e0 63 20 00     l.add r3,r3,r4
1281
1000172c:       84 63 00 00     l.lwz r3,0(r3)
1282
10001730:       44 00 18 00     l.jr r3
1283
                                }
1284
                continue;
1285
#endif
1286
#ifdef PRINTF_STR_PRINT
1287
            case 's':
1288
                outs(buf, va_arg( argp, char*), &par);
1289
10001734:       86 d2 00 00     l.lwz r22,0(r18)
1290
10001738:       9e 52 00 04     l.addi r18,r18,4
1291
//----------------------------------------------------
1292
static int strlen(const char * str)
1293
{
1294
        const char * s;
1295
 
1296
        if(!str)
1297
1000173c:       bc 16 00 00     l.sfeqi r22,0
1298
10001740:       10 00 00 a4     l.bf 100019d0 
1299
                return 0;
1300
 
1301
        for(s = str; *s; ++ s)
1302
10001744:       90 56 00 00     l.lbs r2,0(r22)
1303
10001748:       bc 02 00 00     l.sfeqi r2,0
1304
1000174c:       10 00 00 07     l.bf 10001768 
1305
10001750:       a8 56 00 00     l.ori r2,r22,0x0
1306
10001754:       9c 42 00 01     l.addi r2,r2,1
1307
10001758:       90 62 00 00     l.lbs r3,0(r2)
1308
1000175c:       bc 03 00 00     l.sfeqi r3,0
1309
10001760:       0f ff ff fd     l.bnf 10001754 
1310
10001764:       e0 42 b0 02     l.sub r2,r2,r22
1311
//----------------------------------------------------
1312
#ifdef PRINTF_STR_PRINT
1313
static void outs( struct vbuf *buf, char* lp, params_t *par)
1314
{
1315
    /* pad on left if needed                         */
1316
    par->len = strlen( lp);
1317
10001768:       d4 01 10 00     l.sw 0(r1),r2
1318
#ifdef PRINTF_ENABLE_PADDING
1319
    padding(buf, !(par->left_flag), par);
1320
#endif
1321
 
1322
    /* Move string to the buffer                     */
1323
    while (*lp && (par->num2)--)
1324
1000176c:       90 56 00 00     l.lbs r2,0(r22)
1325
10001770:       bc 02 00 00     l.sfeqi r2,0
1326
10001774:       10 00 00 16     l.bf 100017cc 
1327
10001778:       84 41 00 08     l.lwz r2,8(r1)
1328
1000177c:       aa 96 00 00     l.ori r20,r22,0x0
1329
10001780:       9c 62 ff ff     l.addi r3,r2,-1
1330
10001784:       bc 22 00 00     l.sfnei r2,0
1331
10001788:       d4 01 18 08     l.sw 8(r1),r3
1332
1000178c:       10 00 00 09     l.bf 100017b0 
1333
10001790:       00 00 00 92     l.j 100019d8 
1334
10001794:       84 61 00 08     l.lwz r3,8(r1)
1335
10001798:       9e 94 00 01     l.addi r20,r20,1
1336
1000179c:       9c 83 ff ff     l.addi r4,r3,-1
1337
100017a0:       bc 03 00 00     l.sfeqi r3,0
1338
100017a4:       d4 01 20 08     l.sw 8(r1),r4
1339
100017a8:       10 00 00 72     l.bf 10001970 
1340
        vbuf_putchar(buf, *lp++);
1341
100017ac:       aa c2 00 00     l.ori r22,r2,0x0
1342
100017b0:       90 74 00 00     l.lbs r3,0(r20)
1343
100017b4:       85 6e 00 00     l.lwz r11,0(r14)
1344
100017b8:       9c 56 00 01     l.addi r2,r22,1
1345
100017bc:       48 00 58 00     l.jalr r11
1346
#ifdef PRINTF_ENABLE_PADDING
1347
    padding(buf, !(par->left_flag), par);
1348
#endif
1349
 
1350
    /* Move string to the buffer                     */
1351
    while (*lp && (par->num2)--)
1352
100017c0:       90 62 00 00     l.lbs r3,0(r2)
1353
100017c4:       bc 03 00 00     l.sfeqi r3,0
1354
100017c8:       0f ff ff f3     l.bnf 10001794 
1355
        const char * s;
1356
 
1357
        if(!str)
1358
                return 0;
1359
 
1360
        for(s = str; *s; ++ s)
1361
100017cc:       9c 60 00 00     l.addi r3,r0,0
1362
    /* Move string to the buffer                     */
1363
    while (*lp && (par->num2)--)
1364
        vbuf_putchar(buf, *lp++);
1365
 
1366
    /* Pad on right if needed                        */
1367
    par->len = strlen( lp);
1368
100017d0:       d4 01 18 00     l.sw 0(r1),r3
1369
    params_t par;
1370
 
1371
    char ch;
1372
    char* ctrl = (char*)ctrl1;
1373
 
1374
    for ( ; *ctrl; ctrl++)
1375
100017d4:       90 7c 00 01     l.lbs r3,1(r28)
1376
100017d8:       bc 03 00 00     l.sfeqi r3,0
1377
100017dc:       9f dc 00 01     l.addi r30,r28,1
1378
100017e0:       0f ff ff 97     l.bnf 1000163c 
1379
        }
1380
        goto try_next;
1381
    }
1382
 
1383
        return res;
1384
}
1385
100017e4:       9c 21 00 4c     l.addi r1,r1,76
1386
100017e8:       9d 60 00 00     l.addi r11,r0,0
1387
100017ec:       85 21 ff fc     l.lwz r9,-4(r1)
1388
100017f0:       84 21 ff d4     l.lwz r1,-44(r1)
1389
100017f4:       84 41 ff d8     l.lwz r2,-40(r1)
1390
100017f8:       85 c1 ff dc     l.lwz r14,-36(r1)
1391
100017fc:       86 41 ff e0     l.lwz r18,-32(r1)
1392
10001800:       86 81 ff e4     l.lwz r20,-28(r1)
1393
10001804:       86 c1 ff e8     l.lwz r22,-24(r1)
1394
10001808:       87 01 ff ec     l.lwz r24,-20(r1)
1395
1000180c:       87 41 ff f0     l.lwz r26,-16(r1)
1396
10001810:       87 81 ff f4     l.lwz r28,-12(r1)
1397
10001814:       87 c1 ff f8     l.lwz r30,-8(r1)
1398
10001818:       44 00 48 00     l.jr r9
1399
            case 'x':
1400
                        case 'p':
1401
                                if (long_flag || ch == 'D')
1402
                                {
1403
                                        par.max_len = sizeof(long) * 2;
1404
                                        outnum(buf, (long)va_arg(argp, long), 16L, &par);
1405
1000181c:       84 72 00 00     l.lwz r3,0(r18)
1406
#ifdef PRINTF_HEX_PRINT
1407
            case 'x':
1408
                        case 'p':
1409
                                if (long_flag || ch == 'D')
1410
                                {
1411
                                        par.max_len = sizeof(long) * 2;
1412
10001820:       9c 40 00 08     l.addi r2,r0,8
1413
                                        outnum(buf, (long)va_arg(argp, long), 16L, &par);
1414
10001824:       9c 80 00 10     l.addi r4,r0,16
1415
10001828:       a8 a1 00 00     l.ori r5,r1,0x0
1416
1000182c:       9e 52 00 04     l.addi r18,r18,4
1417
#ifdef PRINTF_HEX_PRINT
1418
            case 'x':
1419
                        case 'p':
1420
                                if (long_flag || ch == 'D')
1421
                                {
1422
                                        par.max_len = sizeof(long) * 2;
1423
10001830:       d4 01 10 1c     l.sw 28(r1),r2
1424
                                        outnum(buf, (long)va_arg(argp, long), 16L, &par);
1425
10001834:       07 ff fe b1     l.jal 100012f8 
1426
10001838:       03 ff ff 7d     l.j 1000162c 
1427
1000183c:       9c 9e 00 02     l.addi r4,r30,2
1428
10001840:       90 be 00 02     l.lbs r5,2(r30)
1429
        par.pad_character = ' ';
1430
        par.num2=32767;
1431
                par.max_len = 10;
1432
 
1433
 try_next:
1434
        ch = *(++ctrl);
1435
10001844:       ab dc 00 00     l.ori r30,r28,0x0
1436
10001848:       ab 84 00 00     l.ori r28,r4,0x0
1437
1000184c:       03 ff ff a1     l.j 100016d0 
1438
                                {
1439
                    outnum(buf, va_arg(argp, long), 10L, &par);
1440
                    continue;
1441
                }
1442
                else {
1443
                    outnum(buf, va_arg(argp, int), 10L, &par);
1444
10001850:       84 72 00 00     l.lwz r3,0(r18)
1445
10001854:       9c 80 00 0a     l.addi r4,r0,10
1446
10001858:       a8 a1 00 00     l.ori r5,r1,0x0
1447
1000185c:       9e 52 00 04     l.addi r18,r18,4
1448
            case 'x':
1449
                        case 'p':
1450
                                if (long_flag || ch == 'D')
1451
                                {
1452
                                        par.max_len = sizeof(long) * 2;
1453
                                        outnum(buf, (long)va_arg(argp, long), 16L, &par);
1454
10001860:       07 ff fe a6     l.jal 100012f8 
1455
10001864:       03 ff ff 72     l.j 1000162c 
1456
                outs(buf, va_arg( argp, char*), &par);
1457
                continue;
1458
#endif
1459
#ifdef PRINTF_CHR_PRINT
1460
            case 'c':
1461
                                vbuf_putchar(buf, va_arg( argp, int));
1462
10001868:       90 72 00 03     l.lbs r3,3(r18)
1463
1000186c:       85 6e 00 00     l.lwz r11,0(r14)
1464
10001870:       9e 52 00 04     l.addi r18,r18,4
1465
10001874:       48 00 58 00     l.jalr r11
1466
                continue;
1467
10001878:       03 ff ff 6d     l.j 1000162c 
1468
#endif
1469
            case '\\':
1470
                switch (*ctrl) {
1471
1000187c:       bc 05 00 68     l.sfeqi r5,104
1472
10001880:       10 00 00 50     l.bf 100019c0 
1473
10001884:       bd 45 00 68     l.sfgtsi r5,104
1474
10001888:       0c 00 00 30     l.bnf 10001948 
1475
1000188c:       bc 05 00 6e     l.sfeqi r5,110
1476
10001890:       10 00 00 48     l.bf 100019b0 
1477
10001894:       bc 05 00 72     l.sfeqi r5,114
1478
10001898:       0c 00 00 42     l.bnf 100019a0 
1479
                        break;
1480
                    case 'h':
1481
                        vbuf_putchar(buf, 0x08);
1482
                        break;
1483
                    case 'r':
1484
                        vbuf_putchar(buf, 0x0D);
1485
1000189c:       85 6e 00 00     l.lwz r11,0(r14)
1486
100018a0:       9c 60 00 0d     l.addi r3,r0,13
1487
100018a4:       48 00 58 00     l.jalr r11
1488
                        break;
1489
100018a8:       00 00 00 2d     l.j 1000195c 
1490
100018ac:       9c 9e 00 02     l.addi r4,r30,2
1491
100018b0:       90 be 00 02     l.lbs r5,2(r30)
1492
            case '-':
1493
                par.left_flag = 1;
1494
                break;
1495
 
1496
            case '.':
1497
                dot_flag = 1;
1498
100018b4:       9c 40 00 01     l.addi r2,r0,1
1499
        par.pad_character = ' ';
1500
        par.num2=32767;
1501
                par.max_len = 10;
1502
 
1503
 try_next:
1504
        ch = *(++ctrl);
1505
100018b8:       ab dc 00 00     l.ori r30,r28,0x0
1506
100018bc:       ab 84 00 00     l.ori r28,r4,0x0
1507
100018c0:       03 ff ff 84     l.j 100016d0 
1508
100018c4:       9c 9e 00 02     l.addi r4,r30,2
1509
100018c8:       90 be 00 02     l.lbs r5,2(r30)
1510
            case '%':
1511
                                vbuf_putchar(buf, '%');
1512
                continue;
1513
 
1514
            case '-':
1515
                par.left_flag = 1;
1516
100018cc:       d4 01 a0 14     l.sw 20(r1),r20
1517
        par.pad_character = ' ';
1518
        par.num2=32767;
1519
                par.max_len = 10;
1520
 
1521
 try_next:
1522
        ch = *(++ctrl);
1523
100018d0:       ab dc 00 00     l.ori r30,r28,0x0
1524
100018d4:       ab 84 00 00     l.ori r28,r4,0x0
1525
100018d8:       03 ff ff 7e     l.j 100016d0 
1526
                par.uppercase = (ch >= 'A' && ch <= 'Z') ? 1 : 0;
1527
 
1528
        switch ((par.uppercase ? ch + 32: ch))
1529
                {
1530
            case '%':
1531
                                vbuf_putchar(buf, '%');
1532
100018dc:       85 6e 00 00     l.lwz r11,0(r14)
1533
100018e0:       9c 60 00 25     l.addi r3,r0,37
1534
100018e4:       48 00 58 00     l.jalr r11
1535
                continue;
1536
100018e8:       03 ff ff 51     l.j 1000162c 
1537
        if ((ch >= '0' && ch <= '9'))
1538
                {
1539
            if (dot_flag)
1540
                par.num2 = getnum(&ctrl);
1541
            else {
1542
                if (ch == '0')
1543
100018ec:       bc 25 00 30     l.sfnei r5,48
1544
100018f0:       0c 00 00 14     l.bnf 10001940 
1545
static long getnum( char** linep)
1546
{
1547
    long n;
1548
    char* cp;
1549
 
1550
    n = 0;
1551
100018f4:       9c c0 00 00     l.addi r6,r0,0
1552
100018f8:       9c 85 ff d0     l.addi r4,r5,-48
1553
100018fc:       00 00 00 02     l.j 10001904 
1554
    cp = *linep;
1555
    while (((*cp) >= '0' && (*cp) <= '9'))
1556
        n = n*10 + ((*cp++) - '0');
1557
10001900:       ab 83 00 00     l.ori r28,r3,0x0
1558
10001904:       b8 e6 00 03     l.slli r7,r6,0x3
1559
10001908:       9c 7c 00 01     l.addi r3,r28,1
1560
1000190c:       e0 c6 30 00     l.add r6,r6,r6
1561
    long n;
1562
    char* cp;
1563
 
1564
    n = 0;
1565
    cp = *linep;
1566
    while (((*cp) >= '0' && (*cp) <= '9'))
1567
10001910:       90 a3 00 00     l.lbs r5,0(r3)
1568
        n = n*10 + ((*cp++) - '0');
1569
10001914:       e0 c6 38 00     l.add r6,r6,r7
1570
10001918:       e0 c6 20 00     l.add r6,r6,r4
1571
    long n;
1572
    char* cp;
1573
 
1574
    n = 0;
1575
    cp = *linep;
1576
    while (((*cp) >= '0' && (*cp) <= '9'))
1577
1000191c:       9c 85 ff d0     l.addi r4,r5,-48
1578
10001920:       a4 e4 00 ff     l.andi r7,r4,0xff
1579
10001924:       bc 47 00 09     l.sfgtui r7,9
1580
10001928:       0f ff ff f6     l.bnf 10001900 
1581
1000192c:       a8 83 00 00     l.ori r4,r3,0x0
1582
                par.num2 = getnum(&ctrl);
1583
            else {
1584
                if (ch == '0')
1585
                    par.pad_character = '0';
1586
 
1587
                par.num1 = getnum(&ctrl);
1588
10001930:       d4 01 30 04     l.sw 4(r1),r6
1589
                par.do_padding = 1;
1590
10001934:       d4 01 a0 10     l.sw 16(r1),r20
1591
            }
1592
            ctrl--;
1593
10001938:       9f c3 ff ff     l.addi r30,r3,-1
1594
1000193c:       03 ff ff 64     l.j 100016cc 
1595
                {
1596
            if (dot_flag)
1597
                par.num2 = getnum(&ctrl);
1598
            else {
1599
                if (ch == '0')
1600
                    par.pad_character = '0';
1601
10001940:       d8 01 28 0c     l.sb 12(r1),r5
1602
10001944:       03 ff ff ec     l.j 100018f4 
1603
            case 'c':
1604
                                vbuf_putchar(buf, va_arg( argp, int));
1605
                continue;
1606
#endif
1607
            case '\\':
1608
                switch (*ctrl) {
1609
10001948:       bc 05 00 61     l.sfeqi r5,97
1610
1000194c:       0c 00 00 15     l.bnf 100019a0 
1611
                    case 'a':
1612
                        vbuf_putchar(buf, 0x07);
1613
10001950:       85 6e 00 00     l.lwz r11,0(r14)
1614
10001954:       9c 60 00 07     l.addi r3,r0,7
1615
10001958:       48 00 58 00     l.jalr r11
1616
1000195c:       9c 9e 00 03     l.addi r4,r30,3
1617
10001960:       90 be 00 03     l.lbs r5,3(r30)
1618
10001964:       ab 84 00 00     l.ori r28,r4,0x0
1619
                        break;
1620
                    default:
1621
                        vbuf_putchar(buf, *ctrl);
1622
                        break;
1623
                }
1624
                ctrl++;
1625
10001968:       9f de 00 02     l.addi r30,r30,2
1626
1000196c:       03 ff ff 59     l.j 100016d0 
1627
10001970:       90 76 00 01     l.lbs r3,1(r22)
1628
        const char * s;
1629
 
1630
        if(!str)
1631
                return 0;
1632
 
1633
        for(s = str; *s; ++ s)
1634
10001974:       bc 03 00 00     l.sfeqi r3,0
1635
10001978:       9c 60 00 00     l.addi r3,r0,0
1636
1000197c:       13 ff ff 95     l.bf 100017d0 
1637
10001980:       a8 62 00 00     l.ori r3,r2,0x0
1638
10001984:       9c 63 00 01     l.addi r3,r3,1
1639
10001988:       90 83 00 00     l.lbs r4,0(r3)
1640
1000198c:       bc 04 00 00     l.sfeqi r4,0
1641
10001990:       0f ff ff fd     l.bnf 10001984 
1642
10001994:       e0 63 10 02     l.sub r3,r3,r2
1643
    /* Move string to the buffer                     */
1644
    while (*lp && (par->num2)--)
1645
        vbuf_putchar(buf, *lp++);
1646
 
1647
    /* Pad on right if needed                        */
1648
    par->len = strlen( lp);
1649
10001998:       d4 01 18 00     l.sw 0(r1),r3
1650
1000199c:       03 ff ff 8e     l.j 100017d4 
1651
                        break;
1652
                    case 'n':
1653
                        vbuf_putchar(buf, 0x0A);
1654
                        break;
1655
                    default:
1656
                        vbuf_putchar(buf, *ctrl);
1657
100019a0:       90 7e 00 01     l.lbs r3,1(r30)
1658
100019a4:       85 6e 00 00     l.lwz r11,0(r14)
1659
100019a8:       48 00 58 00     l.jalr r11
1660
                        break;
1661
100019ac:       03 ff ff ec     l.j 1000195c 
1662
                        break;
1663
                    case 'r':
1664
                        vbuf_putchar(buf, 0x0D);
1665
                        break;
1666
                    case 'n':
1667
                        vbuf_putchar(buf, 0x0A);
1668
100019b0:       85 6e 00 00     l.lwz r11,0(r14)
1669
100019b4:       9c 60 00 0a     l.addi r3,r0,10
1670
100019b8:       48 00 58 00     l.jalr r11
1671
                        break;
1672
100019bc:       03 ff ff e8     l.j 1000195c 
1673
                switch (*ctrl) {
1674
                    case 'a':
1675
                        vbuf_putchar(buf, 0x07);
1676
                        break;
1677
                    case 'h':
1678
                        vbuf_putchar(buf, 0x08);
1679
100019c0:       85 6e 00 00     l.lwz r11,0(r14)
1680
100019c4:       9c 60 00 08     l.addi r3,r0,8
1681
100019c8:       48 00 58 00     l.jalr r11
1682
                        break;
1683
100019cc:       03 ff ff e4     l.j 1000195c 
1684
static int strlen(const char * str)
1685
{
1686
        const char * s;
1687
 
1688
        if(!str)
1689
                return 0;
1690
100019d0:       a8 56 00 00     l.ori r2,r22,0x0
1691
100019d4:       03 ff ff 65     l.j 10001768 
1692
100019d8:       90 76 00 00     l.lbs r3,0(r22)
1693
#ifdef PRINTF_ENABLE_PADDING
1694
    padding(buf, !(par->left_flag), par);
1695
#endif
1696
 
1697
    /* Move string to the buffer                     */
1698
    while (*lp && (par->num2)--)
1699
100019dc:       a8 56 00 00     l.ori r2,r22,0x0
1700
100019e0:       03 ff ff e5     l.j 10001974 
1701
 
1702
100019e4 :
1703
{
1704
        int res = 0;
1705
        va_list argp;
1706
        struct vbuf buf;
1707
 
1708
        if (_stdout && ctrl1)
1709
100019e4:       18 a0 10 00     l.movhi r5,0x1000
1710
}
1711
//----------------------------------------------------
1712
// printf: Console based printf
1713
//----------------------------------------------------
1714
int printf( const char* ctrl1, ... )
1715
{
1716
100019e8:       d7 e1 4f fc     l.sw -4(r1),r9
1717
        int res = 0;
1718
        va_list argp;
1719
        struct vbuf buf;
1720
 
1721
        if (_stdout && ctrl1)
1722
100019ec:       a8 a5 2f f4     l.ori r5,r5,0x2ff4
1723
}
1724
//----------------------------------------------------
1725
// printf: Console based printf
1726
//----------------------------------------------------
1727
int printf( const char* ctrl1, ... )
1728
{
1729
100019f0:       d7 e1 0f f4     l.sw -12(r1),r1
1730
        int res = 0;
1731
        va_list argp;
1732
        struct vbuf buf;
1733
 
1734
        if (_stdout && ctrl1)
1735
100019f4:       85 65 00 00     l.lwz r11,0(r5)
1736
}
1737
//----------------------------------------------------
1738
// printf: Console based printf
1739
//----------------------------------------------------
1740
int printf( const char* ctrl1, ... )
1741
{
1742
100019f8:       d7 e1 17 f8     l.sw -8(r1),r2
1743
        int res = 0;
1744
        va_list argp;
1745
        struct vbuf buf;
1746
 
1747
        if (_stdout && ctrl1)
1748
100019fc:       bc 0b 00 00     l.sfeqi r11,0
1749
}
1750
//----------------------------------------------------
1751
// printf: Console based printf
1752
//----------------------------------------------------
1753
int printf( const char* ctrl1, ... )
1754
{
1755
10001a00:       9c 21 ff e4     l.addi r1,r1,-28
1756
10001a04:       a8 83 00 00     l.ori r4,r3,0x0
1757
        int res = 0;
1758
        va_list argp;
1759
        struct vbuf buf;
1760
 
1761
        if (_stdout && ctrl1)
1762
10001a08:       10 00 00 09     l.bf 10001a2c 
1763
        {
1764
                va_start( argp, ctrl1);
1765
 
1766
                // Setup target to be stdout function
1767
                buf.function = _stdout;
1768
                buf.buffer = 0;
1769
10001a0c:       9c 40 00 00     l.addi r2,r0,0
1770
                buf.offset = 0;
1771
                buf.max_length = 0;
1772
 
1773
                res = vbuf_printf(&buf, ctrl1, argp);
1774
10001a10:       a8 61 00 00     l.ori r3,r1,0x0
1775
10001a14:       9c a1 00 1c     l.addi r5,r1,28
1776
        if (_stdout && ctrl1)
1777
        {
1778
                va_start( argp, ctrl1);
1779
 
1780
                // Setup target to be stdout function
1781
                buf.function = _stdout;
1782
10001a18:       d4 01 58 00     l.sw 0(r1),r11
1783
                buf.buffer = 0;
1784
10001a1c:       d4 01 10 04     l.sw 4(r1),r2
1785
                buf.offset = 0;
1786
10001a20:       d4 01 10 08     l.sw 8(r1),r2
1787
                buf.max_length = 0;
1788
10001a24:       d4 01 10 0c     l.sw 12(r1),r2
1789
 
1790
                res = vbuf_printf(&buf, ctrl1, argp);
1791
10001a28:       07 ff fe e8     l.jal 100015c8 
1792
 
1793
                va_end( argp);
1794
        }
1795
 
1796
        return res;
1797
}
1798
10001a2c:       9c 21 00 1c     l.addi r1,r1,28
1799
10001a30:       85 21 ff fc     l.lwz r9,-4(r1)
1800
10001a34:       84 21 ff f4     l.lwz r1,-12(r1)
1801
10001a38:       84 41 ff f8     l.lwz r2,-8(r1)
1802
10001a3c:       44 00 48 00     l.jr r9
1803
 
1804
10001a40 :
1805
 
1806
//-------------------------------------------------------------
1807
// serial_init:
1808
//-------------------------------------------------------------
1809
void serial_init (void)
1810
{
1811
10001a40:       d7 e1 0f fc     l.sw -4(r1),r1
1812
10001a44:       9c 21 ff fc     l.addi r1,r1,-4
1813
 
1814
}
1815
10001a48:       9c 21 00 04     l.addi r1,r1,4
1816
10001a4c:       84 21 ff fc     l.lwz r1,-4(r1)
1817
10001a50:       44 00 48 00     l.jr r9
1818
 
1819
10001a54 :
1820
//-------------------------------------------------------------
1821
// serial_putchar: Write character to Serial Port (used by printf)
1822
//-------------------------------------------------------------
1823
int serial_putchar(char ch)
1824
{
1825
10001a54:       b8 63 00 18     l.slli r3,r3,0x18
1826
10001a58:       d7 e1 17 f8     l.sw -8(r1),r2
1827
10001a5c:       d7 e1 4f fc     l.sw -4(r1),r9
1828
10001a60:       b8 43 00 98     l.srai r2,r3,0x18
1829
10001a64:       d7 e1 0f f4     l.sw -12(r1),r1
1830
10001a68:       9c 21 ff f4     l.addi r1,r1,-12
1831
        if (ch == '\n')
1832
10001a6c:       bc 22 00 0a     l.sfnei r2,10
1833
10001a70:       0c 00 00 10     l.bnf 10001ab0 
1834
                serial_putchar('\r');
1835
 
1836
    {
1837
        register char  t1 asm ("r3") = ch;
1838
10001a74:       a8 62 00 00     l.ori r3,r2,0x0
1839
        asm volatile ("\tl.nop\t%0" : : "K" (0x0004), "r" (t1));
1840
10001a78:       15 00 00 04     l.nop 0x4
1841
    }
1842
 
1843
        UART_UDR = ch;
1844
10001a7c:       18 60 12 00     l.movhi r3,0x1200
1845
10001a80:       a8 83 00 08     l.ori r4,r3,0x8
1846
        while (UART_USR & UART_TX_BUSY);
1847
10001a84:       a8 63 00 04     l.ori r3,r3,0x4
1848
    {
1849
        register char  t1 asm ("r3") = ch;
1850
        asm volatile ("\tl.nop\t%0" : : "K" (0x0004), "r" (t1));
1851
    }
1852
 
1853
        UART_UDR = ch;
1854
10001a88:       d4 04 10 00     l.sw 0(r4),r2
1855
        while (UART_USR & UART_TX_BUSY);
1856
10001a8c:       85 63 00 00     l.lwz r11,0(r3)
1857
10001a90:       a5 6b 00 08     l.andi r11,r11,0x8
1858
10001a94:       bc 0b 00 00     l.sfeqi r11,0
1859
10001a98:       0f ff ff fd     l.bnf 10001a8c 
1860
 
1861
        return 0;
1862
}
1863
10001a9c:       9c 21 00 0c     l.addi r1,r1,12
1864
10001aa0:       85 21 ff fc     l.lwz r9,-4(r1)
1865
10001aa4:       84 21 ff f4     l.lwz r1,-12(r1)
1866
10001aa8:       84 41 ff f8     l.lwz r2,-8(r1)
1867
10001aac:       44 00 48 00     l.jr r9
1868
// serial_putchar: Write character to Serial Port (used by printf)
1869
//-------------------------------------------------------------
1870
int serial_putchar(char ch)
1871
{
1872
        if (ch == '\n')
1873
                serial_putchar('\r');
1874
10001ab0:       9c 60 00 0d     l.addi r3,r0,13
1875
10001ab4:       07 ff ff e8     l.jal 10001a54 
1876
10001ab8:       03 ff ff ef     l.j 10001a74 
1877
 
1878
10001abc :
1879
// serial_haschar:
1880
//-------------------------------------------------------------
1881
int serial_haschar()
1882
{
1883
#ifndef USE_NOP_PUTC
1884
        return (UART_USR & UART_RX_AVAIL);
1885
10001abc:       18 60 12 00     l.movhi r3,0x1200
1886
}
1887
//-------------------------------------------------------------
1888
// serial_getchar: Read character from Serial Port
1889
//-------------------------------------------------------------
1890
int serial_getchar (void)
1891
{
1892
10001ac0:       d7 e1 0f fc     l.sw -4(r1),r1
1893
// serial_haschar:
1894
//-------------------------------------------------------------
1895
int serial_haschar()
1896
{
1897
#ifndef USE_NOP_PUTC
1898
        return (UART_USR & UART_RX_AVAIL);
1899
10001ac4:       a8 83 00 04     l.ori r4,r3,0x4
1900
}
1901
//-------------------------------------------------------------
1902
// serial_getchar: Read character from Serial Port
1903
//-------------------------------------------------------------
1904
int serial_getchar (void)
1905
{
1906
10001ac8:       9c 21 ff fc     l.addi r1,r1,-4
1907
// serial_haschar:
1908
//-------------------------------------------------------------
1909
int serial_haschar()
1910
{
1911
#ifndef USE_NOP_PUTC
1912
        return (UART_USR & UART_RX_AVAIL);
1913
10001acc:       84 84 00 00     l.lwz r4,0(r4)
1914
10001ad0:       a4 84 00 01     l.andi r4,r4,0x1
1915
//-------------------------------------------------------------
1916
int serial_getchar (void)
1917
{
1918
        // Read character in from UART0 Recieve Buffer and return
1919
#ifndef USE_NOP_PUTC
1920
        if (serial_haschar())
1921
10001ad4:       bc 04 00 00     l.sfeqi r4,0
1922
10001ad8:       10 00 00 06     l.bf 10001af0 
1923
                return UART_UDR;
1924
10001adc:       a8 63 00 08     l.ori r3,r3,0x8
1925
10001ae0:       85 63 00 00     l.lwz r11,0(r3)
1926
        else
1927
#endif
1928
                return -1;
1929
}
1930
10001ae4:       9c 21 00 04     l.addi r1,r1,4
1931
10001ae8:       84 21 ff fc     l.lwz r1,-4(r1)
1932
10001aec:       44 00 48 00     l.jr r9
1933
#ifndef USE_NOP_PUTC
1934
        if (serial_haschar())
1935
                return UART_UDR;
1936
        else
1937
#endif
1938
                return -1;
1939
10001af0:       9d 60 ff ff     l.addi r11,r0,-1
1940
10001af4:       03 ff ff fc     l.j 10001ae4 
1941
 
1942
10001af8 :
1943
// serial_haschar:
1944
//-------------------------------------------------------------
1945
int serial_haschar()
1946
{
1947
#ifndef USE_NOP_PUTC
1948
        return (UART_USR & UART_RX_AVAIL);
1949
10001af8:       18 60 12 00     l.movhi r3,0x1200
1950
}
1951
//-------------------------------------------------------------
1952
// serial_haschar:
1953
//-------------------------------------------------------------
1954
int serial_haschar()
1955
{
1956
10001afc:       d7 e1 0f fc     l.sw -4(r1),r1
1957
#ifndef USE_NOP_PUTC
1958
        return (UART_USR & UART_RX_AVAIL);
1959
10001b00:       a8 63 00 04     l.ori r3,r3,0x4
1960
}
1961
//-------------------------------------------------------------
1962
// serial_haschar:
1963
//-------------------------------------------------------------
1964
int serial_haschar()
1965
{
1966
10001b04:       9c 21 ff fc     l.addi r1,r1,-4
1967
#ifndef USE_NOP_PUTC
1968
        return (UART_USR & UART_RX_AVAIL);
1969
10001b08:       85 63 00 00     l.lwz r11,0(r3)
1970
#else
1971
    return 0;
1972
#endif
1973
}
1974
10001b0c:       9c 21 00 04     l.addi r1,r1,4
1975
10001b10:       a5 6b 00 01     l.andi r11,r11,0x1
1976
10001b14:       84 21 ff fc     l.lwz r1,-4(r1)
1977
10001b18:       44 00 48 00     l.jr r9
1978
 
1979
10001b1c :
1980
//-------------------------------------------------------------
1981
// serial_putstr:
1982
//-------------------------------------------------------------
1983
void serial_putstr(char *str)
1984
{
1985
10001b1c:       d7 e1 17 f8     l.sw -8(r1),r2
1986
10001b20:       d7 e1 4f fc     l.sw -4(r1),r9
1987
10001b24:       d7 e1 0f f4     l.sw -12(r1),r1
1988
10001b28:       a8 43 00 00     l.ori r2,r3,0x0
1989
        while (*str)
1990
10001b2c:       90 63 00 00     l.lbs r3,0(r3)
1991
10001b30:       bc 23 00 00     l.sfnei r3,0
1992
}
1993
//-------------------------------------------------------------
1994
// serial_putstr:
1995
//-------------------------------------------------------------
1996
void serial_putstr(char *str)
1997
{
1998
10001b34:       9c 21 ff f4     l.addi r1,r1,-12
1999
        while (*str)
2000
10001b38:       0c 00 00 06     l.bnf 10001b50 
2001
                serial_putchar(*str++);
2002
10001b3c:       9c 42 00 01     l.addi r2,r2,1
2003
10001b40:       07 ff ff c5     l.jal 10001a54 
2004
//-------------------------------------------------------------
2005
// serial_putstr:
2006
//-------------------------------------------------------------
2007
void serial_putstr(char *str)
2008
{
2009
        while (*str)
2010
10001b44:       90 62 00 00     l.lbs r3,0(r2)
2011
10001b48:       bc 03 00 00     l.sfeqi r3,0
2012
10001b4c:       0f ff ff fc     l.bnf 10001b3c 
2013
                serial_putchar(*str++);
2014
}
2015
10001b50:       9c 21 00 0c     l.addi r1,r1,12
2016
10001b54:       85 21 ff fc     l.lwz r9,-4(r1)
2017
10001b58:       84 21 ff f4     l.lwz r1,-12(r1)
2018
10001b5c:       84 41 ff f8     l.lwz r2,-8(r1)
2019
10001b60:       44 00 48 00     l.jr r9
2020
 
2021
10001b64 :
2022
//-------------------------------------------------------------
2023
// serial_putnum:
2024
//-------------------------------------------------------------
2025
void serial_putnum( int n )
2026
{
2027
10001b64:       d7 e1 17 e8     l.sw -24(r1),r2
2028
    char* cp;
2029
    int negative;
2030
    char outbuf[32];
2031
    const char digits[] = "0123456789ABCDEF";
2032
10001b68:       18 40 30 31     l.movhi r2,0x3031
2033
}
2034
//-------------------------------------------------------------
2035
// serial_putnum:
2036
//-------------------------------------------------------------
2037
void serial_putnum( int n )
2038
{
2039
10001b6c:       d7 e1 4f fc     l.sw -4(r1),r9
2040
    char* cp;
2041
    int negative;
2042
    char outbuf[32];
2043
    const char digits[] = "0123456789ABCDEF";
2044
10001b70:       a8 42 32 33     l.ori r2,r2,0x3233
2045
}
2046
//-------------------------------------------------------------
2047
// serial_putnum:
2048
//-------------------------------------------------------------
2049
void serial_putnum( int n )
2050
{
2051
10001b74:       d7 e1 0f e4     l.sw -28(r1),r1
2052
10001b78:       d7 e1 77 ec     l.sw -20(r1),r14
2053
10001b7c:       d7 e1 97 f0     l.sw -16(r1),r18
2054
10001b80:       d7 e1 a7 f4     l.sw -12(r1),r20
2055
10001b84:       d7 e1 b7 f8     l.sw -8(r1),r22
2056
10001b88:       9c 21 ff b0     l.addi r1,r1,-80
2057
    char outbuf[32];
2058
    const char digits[] = "0123456789ABCDEF";
2059
    unsigned long num;
2060
 
2061
   /* Check if number is negative                   */
2062
    if (n < 0L) {
2063
10001b8c:       bd 63 00 00     l.sfgesi r3,0
2064
void serial_putnum( int n )
2065
{
2066
    char* cp;
2067
    int negative;
2068
    char outbuf[32];
2069
    const char digits[] = "0123456789ABCDEF";
2070
10001b90:       d4 01 10 00     l.sw 0(r1),r2
2071
10001b94:       18 40 34 35     l.movhi r2,0x3435
2072
10001b98:       a8 42 36 37     l.ori r2,r2,0x3637
2073
10001b9c:       d4 01 10 04     l.sw 4(r1),r2
2074
10001ba0:       18 40 38 39     l.movhi r2,0x3839
2075
10001ba4:       a8 42 41 42     l.ori r2,r2,0x4142
2076
10001ba8:       d4 01 10 08     l.sw 8(r1),r2
2077
10001bac:       18 40 43 44     l.movhi r2,0x4344
2078
10001bb0:       a8 42 45 46     l.ori r2,r2,0x4546
2079
10001bb4:       d4 01 10 0c     l.sw 12(r1),r2
2080
10001bb8:       9c 40 00 00     l.addi r2,r0,0
2081
10001bbc:       d8 01 10 10     l.sb 16(r1),r2
2082
    unsigned long num;
2083
 
2084
   /* Check if number is negative                   */
2085
    if (n < 0L) {
2086
10001bc0:       0c 00 00 2e     l.bnf 10001c78 
2087
        negative = 1;
2088
        num = -(n);
2089
    }
2090
    else{
2091
        num = (n);
2092
10001bc4:       a8 43 00 00     l.ori r2,r3,0x0
2093
        negative = 0;
2094
10001bc8:       9e c0 00 00     l.addi r22,r0,0
2095
10001bcc:       9e 81 00 14     l.addi r20,r1,20
2096
10001bd0:       a9 d4 00 00     l.ori r14,r20,0x0
2097
10001bd4:       00 00 00 02     l.j 10001bdc 
2098
10001bd8:       a9 d2 00 00     l.ori r14,r18,0x0
2099
    }
2100
 
2101
    /* Build number (backwards) in outbuf            */
2102
    cp = outbuf;
2103
    do {
2104
        *cp++ = digits[(int)(num % 10)];
2105
10001bdc:       a8 62 00 00     l.ori r3,r2,0x0
2106
10001be0:       9c 80 00 0a     l.addi r4,r0,10
2107
                serial_putchar(*str++);
2108
}
2109
//-------------------------------------------------------------
2110
// serial_putnum:
2111
//-------------------------------------------------------------
2112
void serial_putnum( int n )
2113
10001be4:       9e 4e 00 01     l.addi r18,r14,1
2114
    }
2115
 
2116
    /* Build number (backwards) in outbuf            */
2117
    cp = outbuf;
2118
    do {
2119
        *cp++ = digits[(int)(num % 10)];
2120
10001be8:       04 00 03 4e     l.jal 10002920 <__umodsi3>
2121
10001bec:       9c 61 00 00     l.addi r3,r1,0
2122
    } while ((num /= 10) > 0);
2123
10001bf0:       9c 80 00 0a     l.addi r4,r0,10
2124
    }
2125
 
2126
    /* Build number (backwards) in outbuf            */
2127
    cp = outbuf;
2128
    do {
2129
        *cp++ = digits[(int)(num % 10)];
2130
10001bf4:       e1 63 58 00     l.add r11,r3,r11
2131
    } while ((num /= 10) > 0);
2132
10001bf8:       a8 62 00 00     l.ori r3,r2,0x0
2133
    }
2134
 
2135
    /* Build number (backwards) in outbuf            */
2136
    cp = outbuf;
2137
    do {
2138
        *cp++ = digits[(int)(num % 10)];
2139
10001bfc:       8d 6b 00 00     l.lbz r11,0(r11)
2140
10001c00:       d8 0e 58 00     l.sb 0(r14),r11
2141
    } while ((num /= 10) > 0);
2142
10001c04:       04 00 03 3e     l.jal 100028fc <__udivsi3>
2143
10001c08:       bc 0b 00 00     l.sfeqi r11,0
2144
10001c0c:       a8 4b 00 00     l.ori r2,r11,0x0
2145
10001c10:       0f ff ff f2     l.bnf 10001bd8 
2146
    if (negative)
2147
10001c14:       bc 16 00 00     l.sfeqi r22,0
2148
10001c18:       10 00 00 04     l.bf 10001c28 
2149
        *cp++ = '-';
2150
10001c1c:       9c 40 00 2d     l.addi r2,r0,45
2151
10001c20:       9e 4e 00 02     l.addi r18,r14,2
2152
10001c24:       d8 0e 10 01     l.sb 1(r14),r2
2153
    *cp-- = 0;
2154
10001c28:       9c 52 ff ff     l.addi r2,r18,-1
2155
10001c2c:       9c 60 00 00     l.addi r3,r0,0
2156
 
2157
    while (cp >= outbuf)
2158
10001c30:       e4 62 a0 00     l.sfgeu r2,r20
2159
    do {
2160
        *cp++ = digits[(int)(num % 10)];
2161
    } while ((num /= 10) > 0);
2162
    if (negative)
2163
        *cp++ = '-';
2164
    *cp-- = 0;
2165
10001c34:       d8 12 18 00     l.sb 0(r18),r3
2166
 
2167
    while (cp >= outbuf)
2168
10001c38:       0c 00 00 07     l.bnf 10001c54 
2169
                serial_putchar(*str++);
2170
}
2171
//-------------------------------------------------------------
2172
// serial_putnum:
2173
//-------------------------------------------------------------
2174
void serial_putnum( int n )
2175
10001c3c:       9d d4 ff ff     l.addi r14,r20,-1
2176
    if (negative)
2177
        *cp++ = '-';
2178
    *cp-- = 0;
2179
 
2180
    while (cp >= outbuf)
2181
        serial_putchar(*cp--);
2182
10001c40:       90 62 00 00     l.lbs r3,0(r2)
2183
10001c44:       9c 42 ff ff     l.addi r2,r2,-1
2184
10001c48:       07 ff ff 83     l.jal 10001a54 
2185
    } while ((num /= 10) > 0);
2186
    if (negative)
2187
        *cp++ = '-';
2188
    *cp-- = 0;
2189
 
2190
    while (cp >= outbuf)
2191
10001c4c:       e4 02 70 00     l.sfeq r2,r14
2192
10001c50:       0f ff ff fc     l.bnf 10001c40 
2193
        serial_putchar(*cp--);
2194
}
2195
10001c54:       9c 21 00 50     l.addi r1,r1,80
2196
10001c58:       85 21 ff fc     l.lwz r9,-4(r1)
2197
10001c5c:       84 21 ff e4     l.lwz r1,-28(r1)
2198
10001c60:       84 41 ff e8     l.lwz r2,-24(r1)
2199
10001c64:       85 c1 ff ec     l.lwz r14,-20(r1)
2200
10001c68:       86 41 ff f0     l.lwz r18,-16(r1)
2201
10001c6c:       86 81 ff f4     l.lwz r20,-12(r1)
2202
10001c70:       86 c1 ff f8     l.lwz r22,-8(r1)
2203
10001c74:       44 00 48 00     l.jr r9
2204
    unsigned long num;
2205
 
2206
   /* Check if number is negative                   */
2207
    if (n < 0L) {
2208
        negative = 1;
2209
        num = -(n);
2210
10001c78:       e0 40 18 02     l.sub r2,r0,r3
2211
    const char digits[] = "0123456789ABCDEF";
2212
    unsigned long num;
2213
 
2214
   /* Check if number is negative                   */
2215
    if (n < 0L) {
2216
        negative = 1;
2217
10001c7c:       9e c0 00 01     l.addi r22,r0,1
2218
10001c80:       03 ff ff d3     l.j 10001bcc 
2219
 
2220
10001c84 :
2221
 
2222
//--------------------------------------------------------------------------
2223
// timer_init:
2224
//--------------------------------------------------------------------------
2225
void timer_init(void)
2226
{
2227
10001c84:       d7 e1 0f fc     l.sw -4(r1),r1
2228
10001c88:       9c 21 ff fc     l.addi r1,r1,-4
2229
 
2230
}
2231
10001c8c:       9c 21 00 04     l.addi r1,r1,4
2232
10001c90:       84 21 ff fc     l.lwz r1,-4(r1)
2233
10001c94:       44 00 48 00     l.jr r9
2234
 
2235
10001c98 :
2236
// Prototypes:
2237
//-----------------------------------------------------------------
2238
 
2239
// General timer
2240
void                    timer_init(void);
2241
static t_time   timer_now(void) { return TIMER_VAL; }
2242
10001c98:       18 a0 12 00     l.movhi r5,0x1200
2243
//--------------------------------------------------------------------------
2244
// timer_sleep:
2245
//--------------------------------------------------------------------------
2246
void timer_sleep(int timeMs)
2247
{
2248
10001c9c:       d7 e1 0f fc     l.sw -4(r1),r1
2249
10001ca0:       a8 a5 01 00     l.ori r5,r5,0x100
2250
10001ca4:       9c 21 ff fc     l.addi r1,r1,-4
2251
10001ca8:       84 c5 00 00     l.lwz r6,0(r5)
2252
10001cac:       84 85 00 00     l.lwz r4,0(r5)
2253
static long             timer_diff(t_time a, t_time b) { return (long)(a - b); }
2254
10001cb0:       e0 84 30 02     l.sub r4,r4,r6
2255
        t_time t = timer_now();
2256
 
2257
        while (timer_diff(timer_now(), t) < timeMs)
2258
10001cb4:       e5 a3 20 00     l.sfles r3,r4
2259
10001cb8:       0f ff ff fd     l.bnf 10001cac 
2260
                ;
2261
}
2262
10001cbc:       9c 21 00 04     l.addi r1,r1,4
2263
10001cc0:       84 21 ff fc     l.lwz r1,-4(r1)
2264
10001cc4:       44 00 48 00     l.jr r9
2265
 
2266
10001cc8 :
2267
volatile int syscall_done = 0;
2268
 
2269
//-----------------------------------------------------------------
2270
// Syscall handling:
2271
//-----------------------------------------------------------------
2272
void empty_syscall(void) { syscall_done = 1; }
2273
10001cc8:       18 60 10 00     l.movhi r3,0x1000
2274
10001ccc:       9c 80 00 01     l.addi r4,r0,1
2275
10001cd0:       a8 63 2f f8     l.ori r3,r3,0x2ff8
2276
10001cd4:       d7 e1 0f fc     l.sw -4(r1),r1
2277
10001cd8:       9c 21 ff fc     l.addi r1,r1,-4
2278
10001cdc:       d4 03 20 00     l.sw 0(r3),r4
2279
10001ce0:       9c 21 00 04     l.addi r1,r1,4
2280
10001ce4:       84 21 ff fc     l.lwz r1,-4(r1)
2281
10001ce8:       44 00 48 00     l.jr r9
2282
 
2283
10001cec :
2284
        unsigned short sw;
2285
        unsigned short *psw;
2286
        unsigned char sb;
2287
        unsigned char *psb;
2288
 
2289
        serial_putstr("\nTest:\n");
2290
10001cec:       18 60 10 00     l.movhi r3,0x1000
2291
 
2292
//-----------------------------------------------------------------
2293
// main:
2294
//-----------------------------------------------------------------
2295
int test(void)
2296
{
2297
10001cf0:       d7 e1 4f fc     l.sw -4(r1),r9
2298
10001cf4:       d7 e1 17 f0     l.sw -16(r1),r2
2299
10001cf8:       d7 e1 0f ec     l.sw -20(r1),r1
2300
10001cfc:       d7 e1 77 f4     l.sw -12(r1),r14
2301
10001d00:       d7 e1 97 f8     l.sw -8(r1),r18
2302
        unsigned short sw;
2303
        unsigned short *psw;
2304
        unsigned char sb;
2305
        unsigned char *psb;
2306
 
2307
        serial_putstr("\nTest:\n");
2308
10001d04:       a8 63 2d 09     l.ori r3,r3,0x2d09
2309
 
2310
//-----------------------------------------------------------------
2311
// main:
2312
//-----------------------------------------------------------------
2313
int test(void)
2314
{
2315
10001d08:       9c 21 ff e0     l.addi r1,r1,-32
2316
 
2317
        // Assign empty syscall handler
2318
        exception_register_syscall_handler(empty_syscall);
2319
 
2320
        serial_putstr("1. Initialised data\n");
2321
        assert(var == 0x1234);  // .text
2322
10001d0c:       18 40 10 00     l.movhi r2,0x1000
2323
        unsigned short sw;
2324
        unsigned short *psw;
2325
        unsigned char sb;
2326
        unsigned char *psb;
2327
 
2328
        serial_putstr("\nTest:\n");
2329
10001d10:       07 ff ff 83     l.jal 10001b1c 
2330
 
2331
        // Adjust ISR vector to match this app's vector offset
2332
        asm_set_isr_vector(asm_save_context);
2333
 
2334
        // Assign empty syscall handler
2335
        exception_register_syscall_handler(empty_syscall);
2336
10001d14:       18 60 10 00     l.movhi r3,0x1000
2337
 
2338
        serial_putstr("1. Initialised data\n");
2339
        assert(var == 0x1234);  // .text
2340
10001d18:       a8 42 2f d8     l.ori r2,r2,0x2fd8
2341
 
2342
        // Adjust ISR vector to match this app's vector offset
2343
        asm_set_isr_vector(asm_save_context);
2344
 
2345
        // Assign empty syscall handler
2346
        exception_register_syscall_handler(empty_syscall);
2347
10001d1c:       a8 63 1c c8     l.ori r3,r3,0x1cc8
2348
10001d20:       07 ff fc e2     l.jal 100010a8 
2349
 
2350
        serial_putstr("1. Initialised data\n");
2351
10001d24:       18 60 10 00     l.movhi r3,0x1000
2352
10001d28:       a8 63 2d 11     l.ori r3,r3,0x2d11
2353
10001d2c:       07 ff ff 7c     l.jal 10001b1c 
2354
        assert(var == 0x1234);  // .text
2355
10001d30:       84 62 00 00     l.lwz r3,0(r2)
2356
10001d34:       bc 03 12 34     l.sfeqi r3,4660
2357
10001d38:       10 00 00 0e     l.bf 10001d70 
2358
10001d3c:       18 60 10 00     l.movhi r3,0x1000
2359
10001d40:       a8 63 2d 26     l.ori r3,r3,0x2d26
2360
10001d44:       d4 01 18 00     l.sw 0(r1),r3
2361
10001d48:       18 60 10 00     l.movhi r3,0x1000
2362
10001d4c:       a8 63 2d 34     l.ori r3,r3,0x2d34
2363
10001d50:       d4 01 18 04     l.sw 4(r1),r3
2364
10001d54:       9c 60 00 29     l.addi r3,r0,41
2365
10001d58:       d4 01 18 08     l.sw 8(r1),r3
2366
10001d5c:       18 60 10 00     l.movhi r3,0x1000
2367
10001d60:       a8 63 2c 74     l.ori r3,r3,0x2c74
2368
10001d64:       07 ff ff 20     l.jal 100019e4 
2369
 
2370
}
2371
 
2372
static inline void exit(unsigned exit_code)
2373
{
2374
    volatile register char  t1 asm ("r1") = exit_code;
2375
10001d68:       9c 20 00 01     l.addi r1,r0,1
2376
            __asm__ __volatile__ ( "\t l.trap 0 ");
2377
    }
2378
    else
2379
    {
2380
        // Invalid instruction!
2381
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2382
10001d6c:       c8 00 00 00     lf.add.s r0,r0,r0
2383
        assert(uvar == 0x0);    // .bss
2384
10001d70:       19 c0 10 00     l.movhi r14,0x1000
2385
10001d74:       a9 ce 30 04     l.ori r14,r14,0x3004
2386
10001d78:       84 6e 00 00     l.lwz r3,0(r14)
2387
10001d7c:       bc 03 00 00     l.sfeqi r3,0
2388
10001d80:       0c 00 02 d1     l.bnf 100028c4 
2389
 
2390
        serial_putstr("2. Multiply\n");
2391
10001d84:       18 60 10 00     l.movhi r3,0x1000
2392
10001d88:       a8 63 2d 47     l.ori r3,r3,0x2d47
2393
10001d8c:       07 ff ff 64     l.jal 10001b1c 
2394
        var = var * 3;
2395
10001d90:       84 62 00 00     l.lwz r3,0(r2)
2396
10001d94:       e0 83 18 00     l.add r4,r3,r3
2397
10001d98:       e0 64 18 00     l.add r3,r4,r3
2398
10001d9c:       d4 02 18 00     l.sw 0(r2),r3
2399
        assert(var == 13980);
2400
10001da0:       84 62 00 00     l.lwz r3,0(r2)
2401
10001da4:       bc 03 36 9c     l.sfeqi r3,13980
2402
10001da8:       10 00 00 0e     l.bf 10001de0 
2403
10001dac:       18 60 10 00     l.movhi r3,0x1000
2404
10001db0:       a8 63 2d 54     l.ori r3,r3,0x2d54
2405
10001db4:       d4 01 18 00     l.sw 0(r1),r3
2406
10001db8:       18 60 10 00     l.movhi r3,0x1000
2407
10001dbc:       a8 63 2d 34     l.ori r3,r3,0x2d34
2408
10001dc0:       d4 01 18 04     l.sw 4(r1),r3
2409
10001dc4:       9c 60 00 2e     l.addi r3,r0,46
2410
10001dc8:       d4 01 18 08     l.sw 8(r1),r3
2411
10001dcc:       18 60 10 00     l.movhi r3,0x1000
2412
10001dd0:       a8 63 2c 74     l.ori r3,r3,0x2c74
2413
10001dd4:       07 ff ff 04     l.jal 100019e4 
2414
 
2415
}
2416
 
2417
static inline void exit(unsigned exit_code)
2418
{
2419
    volatile register char  t1 asm ("r1") = exit_code;
2420
10001dd8:       9c 20 00 01     l.addi r1,r0,1
2421
            __asm__ __volatile__ ( "\t l.trap 0 ");
2422
    }
2423
    else
2424
    {
2425
        // Invalid instruction!
2426
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2427
10001ddc:       c8 00 00 00     lf.add.s r0,r0,r0
2428
        var = -1;
2429
10001de0:       9c 60 ff ff     l.addi r3,r0,-1
2430
10001de4:       d4 02 18 00     l.sw 0(r2),r3
2431
        var = var * 3;
2432
10001de8:       84 62 00 00     l.lwz r3,0(r2)
2433
10001dec:       e0 83 18 00     l.add r4,r3,r3
2434
10001df0:       e0 64 18 00     l.add r3,r4,r3
2435
10001df4:       d4 02 18 00     l.sw 0(r2),r3
2436
        assert(var == -3);
2437
10001df8:       84 62 00 00     l.lwz r3,0(r2)
2438
10001dfc:       bc 03 ff fd     l.sfeqi r3,-3
2439
10001e00:       10 00 00 0e     l.bf 10001e38 
2440
10001e04:       18 60 10 00     l.movhi r3,0x1000
2441
10001e08:       a8 63 2d 61     l.ori r3,r3,0x2d61
2442
10001e0c:       d4 01 18 00     l.sw 0(r1),r3
2443
10001e10:       18 60 10 00     l.movhi r3,0x1000
2444
10001e14:       a8 63 2d 34     l.ori r3,r3,0x2d34
2445
10001e18:       d4 01 18 04     l.sw 4(r1),r3
2446
10001e1c:       9c 60 00 31     l.addi r3,r0,49
2447
10001e20:       d4 01 18 08     l.sw 8(r1),r3
2448
10001e24:       18 60 10 00     l.movhi r3,0x1000
2449
10001e28:       a8 63 2c 74     l.ori r3,r3,0x2c74
2450
10001e2c:       07 ff fe ee     l.jal 100019e4 
2451
 
2452
}
2453
 
2454
static inline void exit(unsigned exit_code)
2455
{
2456
    volatile register char  t1 asm ("r1") = exit_code;
2457
10001e30:       9c 20 00 01     l.addi r1,r0,1
2458
            __asm__ __volatile__ ( "\t l.trap 0 ");
2459
    }
2460
    else
2461
    {
2462
        // Invalid instruction!
2463
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2464
10001e34:       c8 00 00 00     lf.add.s r0,r0,r0
2465
        var = -5;
2466
10001e38:       9c 60 ff fb     l.addi r3,r0,-5
2467
10001e3c:       d4 02 18 00     l.sw 0(r2),r3
2468
        var = var * 13;
2469
10001e40:       84 62 00 00     l.lwz r3,0(r2)
2470
10001e44:       e0 83 18 00     l.add r4,r3,r3
2471
10001e48:       e0 84 18 00     l.add r4,r4,r3
2472
10001e4c:       b8 84 00 02     l.slli r4,r4,0x2
2473
10001e50:       e0 64 18 00     l.add r3,r4,r3
2474
10001e54:       d4 02 18 00     l.sw 0(r2),r3
2475
        assert(var == -65);
2476
10001e58:       84 62 00 00     l.lwz r3,0(r2)
2477
10001e5c:       bc 03 ff bf     l.sfeqi r3,-65
2478
10001e60:       10 00 00 0e     l.bf 10001e98 
2479
10001e64:       18 60 10 00     l.movhi r3,0x1000
2480
10001e68:       a8 63 2d 6b     l.ori r3,r3,0x2d6b
2481
10001e6c:       d4 01 18 00     l.sw 0(r1),r3
2482
10001e70:       18 60 10 00     l.movhi r3,0x1000
2483
10001e74:       a8 63 2d 34     l.ori r3,r3,0x2d34
2484
10001e78:       d4 01 18 04     l.sw 4(r1),r3
2485
10001e7c:       9c 60 00 34     l.addi r3,r0,52
2486
10001e80:       d4 01 18 08     l.sw 8(r1),r3
2487
10001e84:       18 60 10 00     l.movhi r3,0x1000
2488
10001e88:       a8 63 2c 74     l.ori r3,r3,0x2c74
2489
10001e8c:       07 ff fe d6     l.jal 100019e4 
2490
 
2491
}
2492
 
2493
static inline void exit(unsigned exit_code)
2494
{
2495
    volatile register char  t1 asm ("r1") = exit_code;
2496
10001e90:       9c 20 00 01     l.addi r1,r0,1
2497
            __asm__ __volatile__ ( "\t l.trap 0 ");
2498
    }
2499
    else
2500
    {
2501
        // Invalid instruction!
2502
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2503
10001e94:       c8 00 00 00     lf.add.s r0,r0,r0
2504
        var = -5;
2505
10001e98:       9c 60 ff fb     l.addi r3,r0,-5
2506
        var = var * -13;
2507
10001e9c:       9c 80 ff f3     l.addi r4,r0,-13
2508
        var = var * 3;
2509
        assert(var == -3);
2510
        var = -5;
2511
        var = var * 13;
2512
        assert(var == -65);
2513
        var = -5;
2514
10001ea0:       d4 02 18 00     l.sw 0(r2),r3
2515
        var = var * -13;
2516
10001ea4:       84 62 00 00     l.lwz r3,0(r2)
2517
10001ea8:       04 00 03 04     l.jal 10002ab8 <__mulsi3>
2518
10001eac:       d4 02 58 00     l.sw 0(r2),r11
2519
        assert(var == (-5*-13));
2520
10001eb0:       84 62 00 00     l.lwz r3,0(r2)
2521
10001eb4:       bc 03 00 41     l.sfeqi r3,65
2522
10001eb8:       10 00 00 0e     l.bf 10001ef0 
2523
10001ebc:       18 60 10 00     l.movhi r3,0x1000
2524
10001ec0:       a8 63 2d 76     l.ori r3,r3,0x2d76
2525
10001ec4:       d4 01 18 00     l.sw 0(r1),r3
2526
10001ec8:       18 60 10 00     l.movhi r3,0x1000
2527
10001ecc:       a8 63 2d 34     l.ori r3,r3,0x2d34
2528
10001ed0:       d4 01 18 04     l.sw 4(r1),r3
2529
10001ed4:       9c 60 00 37     l.addi r3,r0,55
2530
10001ed8:       d4 01 18 08     l.sw 8(r1),r3
2531
10001edc:       18 60 10 00     l.movhi r3,0x1000
2532
10001ee0:       a8 63 2c 74     l.ori r3,r3,0x2c74
2533
10001ee4:       07 ff fe c0     l.jal 100019e4 
2534
 
2535
}
2536
 
2537
static inline void exit(unsigned exit_code)
2538
{
2539
    volatile register char  t1 asm ("r1") = exit_code;
2540
10001ee8:       9c 20 00 01     l.addi r1,r0,1
2541
            __asm__ __volatile__ ( "\t l.trap 0 ");
2542
    }
2543
    else
2544
    {
2545
        // Invalid instruction!
2546
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2547
10001eec:       c8 00 00 00     lf.add.s r0,r0,r0
2548
        var = -123123415;
2549
10001ef0:       18 60 f8 a9     l.movhi r3,0xf8a9
2550
        var = var * 9664563;
2551
10001ef4:       18 80 00 93     l.movhi r4,0x93
2552
        var = var * 13;
2553
        assert(var == -65);
2554
        var = -5;
2555
        var = var * -13;
2556
        assert(var == (-5*-13));
2557
        var = -123123415;
2558
10001ef8:       a8 63 49 29     l.ori r3,r3,0x4929
2559
        var = var * 9664563;
2560
10001efc:       a8 84 78 33     l.ori r4,r4,0x7833
2561
        var = var * 13;
2562
        assert(var == -65);
2563
        var = -5;
2564
        var = var * -13;
2565
        assert(var == (-5*-13));
2566
        var = -123123415;
2567
10001f00:       d4 02 18 00     l.sw 0(r2),r3
2568
        var = var * 9664563;
2569
10001f04:       84 62 00 00     l.lwz r3,0(r2)
2570
10001f08:       04 00 02 ec     l.jal 10002ab8 <__mulsi3>
2571
        assert(var == (-123123415*9664563));
2572
10001f0c:       18 80 e6 8f     l.movhi r4,0xe68f
2573
        assert(var == -65);
2574
        var = -5;
2575
        var = var * -13;
2576
        assert(var == (-5*-13));
2577
        var = -123123415;
2578
        var = var * 9664563;
2579
10001f10:       d4 02 58 00     l.sw 0(r2),r11
2580
        assert(var == (-123123415*9664563));
2581
10001f14:       a8 84 cb 2b     l.ori r4,r4,0xcb2b
2582
10001f18:       84 62 00 00     l.lwz r3,0(r2)
2583
10001f1c:       e4 03 20 00     l.sfeq r3,r4
2584
10001f20:       10 00 00 0e     l.bf 10001f58 
2585
10001f24:       18 60 10 00     l.movhi r3,0x1000
2586
10001f28:       a8 63 2d 86     l.ori r3,r3,0x2d86
2587
10001f2c:       d4 01 18 00     l.sw 0(r1),r3
2588
10001f30:       18 60 10 00     l.movhi r3,0x1000
2589
10001f34:       a8 63 2d 34     l.ori r3,r3,0x2d34
2590
10001f38:       d4 01 18 04     l.sw 4(r1),r3
2591
10001f3c:       9c 60 00 3a     l.addi r3,r0,58
2592
10001f40:       d4 01 18 08     l.sw 8(r1),r3
2593
10001f44:       18 60 10 00     l.movhi r3,0x1000
2594
10001f48:       a8 63 2c 74     l.ori r3,r3,0x2c74
2595
10001f4c:       07 ff fe a6     l.jal 100019e4 
2596
 
2597
}
2598
 
2599
static inline void exit(unsigned exit_code)
2600
{
2601
    volatile register char  t1 asm ("r1") = exit_code;
2602
10001f50:       9c 20 00 01     l.addi r1,r0,1
2603
            __asm__ __volatile__ ( "\t l.trap 0 ");
2604
    }
2605
    else
2606
    {
2607
        // Invalid instruction!
2608
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2609
10001f54:       c8 00 00 00     lf.add.s r0,r0,r0
2610
 
2611
        serial_putstr("3. Divide\n");
2612
10001f58:       18 60 10 00     l.movhi r3,0x1000
2613
10001f5c:       a8 63 2d a2     l.ori r3,r3,0x2da2
2614
10001f60:       07 ff fe ef     l.jal 10001b1c 
2615
        var = 13980;
2616
10001f64:       9c 60 36 9c     l.addi r3,r0,13980
2617
        var = var / 5;
2618
10001f68:       9c 80 00 05     l.addi r4,r0,5
2619
        var = -123123415;
2620
        var = var * 9664563;
2621
        assert(var == (-123123415*9664563));
2622
 
2623
        serial_putstr("3. Divide\n");
2624
        var = 13980;
2625
10001f6c:       d4 02 18 00     l.sw 0(r2),r3
2626
        var = var / 5;
2627
10001f70:       84 62 00 00     l.lwz r3,0(r2)
2628
10001f74:       04 00 02 74     l.jal 10002944 <__divsi3>
2629
10001f78:       d4 02 58 00     l.sw 0(r2),r11
2630
        assert(var == 2796);
2631
10001f7c:       84 62 00 00     l.lwz r3,0(r2)
2632
10001f80:       bc 03 0a ec     l.sfeqi r3,2796
2633
10001f84:       10 00 00 0e     l.bf 10001fbc 
2634
10001f88:       18 60 10 00     l.movhi r3,0x1000
2635
10001f8c:       a8 63 2d ad     l.ori r3,r3,0x2dad
2636
10001f90:       d4 01 18 00     l.sw 0(r1),r3
2637
10001f94:       18 60 10 00     l.movhi r3,0x1000
2638
10001f98:       a8 63 2d 34     l.ori r3,r3,0x2d34
2639
10001f9c:       d4 01 18 04     l.sw 4(r1),r3
2640
10001fa0:       9c 60 00 3f     l.addi r3,r0,63
2641
10001fa4:       d4 01 18 08     l.sw 8(r1),r3
2642
10001fa8:       18 60 10 00     l.movhi r3,0x1000
2643
10001fac:       a8 63 2c 74     l.ori r3,r3,0x2c74
2644
10001fb0:       07 ff fe 8d     l.jal 100019e4 
2645
 
2646
}
2647
 
2648
static inline void exit(unsigned exit_code)
2649
{
2650
    volatile register char  t1 asm ("r1") = exit_code;
2651
10001fb4:       9c 20 00 01     l.addi r1,r0,1
2652
            __asm__ __volatile__ ( "\t l.trap 0 ");
2653
    }
2654
    else
2655
    {
2656
        // Invalid instruction!
2657
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2658
10001fb8:       c8 00 00 00     lf.add.s r0,r0,r0
2659
        var = var % 100;
2660
10001fbc:       84 62 00 00     l.lwz r3,0(r2)
2661
10001fc0:       9c 80 00 64     l.addi r4,r0,100
2662
10001fc4:       04 00 02 7a     l.jal 100029ac <__modsi3>
2663
10001fc8:       d4 02 58 00     l.sw 0(r2),r11
2664
        assert(var == 96);
2665
10001fcc:       84 62 00 00     l.lwz r3,0(r2)
2666
10001fd0:       bc 03 00 60     l.sfeqi r3,96
2667
10001fd4:       10 00 00 0e     l.bf 1000200c 
2668
10001fd8:       18 60 10 00     l.movhi r3,0x1000
2669
10001fdc:       a8 63 2d b9     l.ori r3,r3,0x2db9
2670
10001fe0:       d4 01 18 00     l.sw 0(r1),r3
2671
10001fe4:       18 60 10 00     l.movhi r3,0x1000
2672
10001fe8:       a8 63 2d 34     l.ori r3,r3,0x2d34
2673
10001fec:       d4 01 18 04     l.sw 4(r1),r3
2674
10001ff0:       9c 60 00 41     l.addi r3,r0,65
2675
10001ff4:       d4 01 18 08     l.sw 8(r1),r3
2676
10001ff8:       18 60 10 00     l.movhi r3,0x1000
2677
10001ffc:       a8 63 2c 74     l.ori r3,r3,0x2c74
2678
10002000:       07 ff fe 79     l.jal 100019e4 
2679
 
2680
}
2681
 
2682
static inline void exit(unsigned exit_code)
2683
{
2684
    volatile register char  t1 asm ("r1") = exit_code;
2685
10002004:       9c 20 00 01     l.addi r1,r0,1
2686
            __asm__ __volatile__ ( "\t l.trap 0 ");
2687
    }
2688
    else
2689
    {
2690
        // Invalid instruction!
2691
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2692
10002008:       c8 00 00 00     lf.add.s r0,r0,r0
2693
        var = -1273;
2694
1000200c:       9c 60 fb 07     l.addi r3,r0,-1273
2695
        var = var / 19;
2696
10002010:       9c 80 00 13     l.addi r4,r0,19
2697
        var = 13980;
2698
        var = var / 5;
2699
        assert(var == 2796);
2700
        var = var % 100;
2701
        assert(var == 96);
2702
        var = -1273;
2703
10002014:       d4 02 18 00     l.sw 0(r2),r3
2704
        var = var / 19;
2705
10002018:       84 62 00 00     l.lwz r3,0(r2)
2706
1000201c:       04 00 02 4a     l.jal 10002944 <__divsi3>
2707
10002020:       d4 02 58 00     l.sw 0(r2),r11
2708
        assert(var == -67);
2709
10002024:       84 62 00 00     l.lwz r3,0(r2)
2710
10002028:       bc 03 ff bd     l.sfeqi r3,-67
2711
1000202c:       10 00 00 0e     l.bf 10002064 
2712
10002030:       18 60 10 00     l.movhi r3,0x1000
2713
10002034:       a8 63 2d c3     l.ori r3,r3,0x2dc3
2714
10002038:       d4 01 18 00     l.sw 0(r1),r3
2715
1000203c:       18 60 10 00     l.movhi r3,0x1000
2716
10002040:       a8 63 2d 34     l.ori r3,r3,0x2d34
2717
10002044:       d4 01 18 04     l.sw 4(r1),r3
2718
10002048:       9c 60 00 44     l.addi r3,r0,68
2719
1000204c:       d4 01 18 08     l.sw 8(r1),r3
2720
10002050:       18 60 10 00     l.movhi r3,0x1000
2721
10002054:       a8 63 2c 74     l.ori r3,r3,0x2c74
2722
10002058:       07 ff fe 63     l.jal 100019e4 
2723
 
2724
}
2725
 
2726
static inline void exit(unsigned exit_code)
2727
{
2728
    volatile register char  t1 asm ("r1") = exit_code;
2729
1000205c:       9c 20 00 01     l.addi r1,r0,1
2730
            __asm__ __volatile__ ( "\t l.trap 0 ");
2731
    }
2732
    else
2733
    {
2734
        // Invalid instruction!
2735
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2736
10002060:       c8 00 00 00     lf.add.s r0,r0,r0
2737
 
2738
        serial_putstr("4. Shift left\n");
2739
10002064:       18 60 10 00     l.movhi r3,0x1000
2740
        var = 0x1;
2741
10002068:       9e 40 00 01     l.addi r18,r0,1
2742
        assert(var == 96);
2743
        var = -1273;
2744
        var = var / 19;
2745
        assert(var == -67);
2746
 
2747
        serial_putstr("4. Shift left\n");
2748
1000206c:       a8 63 2d ce     l.ori r3,r3,0x2dce
2749
10002070:       07 ff fe ab     l.jal 10001b1c 
2750
        var = 0x1;
2751
10002074:       d4 02 90 00     l.sw 0(r2),r18
2752
        var <<= 31;
2753
        assert(var == 0x80000000);
2754
10002078:       18 80 80 00     l.movhi r4,0x8000
2755
        var = var / 19;
2756
        assert(var == -67);
2757
 
2758
        serial_putstr("4. Shift left\n");
2759
        var = 0x1;
2760
        var <<= 31;
2761
1000207c:       84 62 00 00     l.lwz r3,0(r2)
2762
10002080:       b8 63 00 1f     l.slli r3,r3,0x1f
2763
10002084:       d4 02 18 00     l.sw 0(r2),r3
2764
        assert(var == 0x80000000);
2765
10002088:       84 62 00 00     l.lwz r3,0(r2)
2766
1000208c:       e4 03 20 00     l.sfeq r3,r4
2767
10002090:       10 00 00 0e     l.bf 100020c8 
2768
10002094:       18 60 10 00     l.movhi r3,0x1000
2769
10002098:       a8 63 2d dd     l.ori r3,r3,0x2ddd
2770
1000209c:       d4 01 18 00     l.sw 0(r1),r3
2771
100020a0:       18 60 10 00     l.movhi r3,0x1000
2772
100020a4:       a8 63 2d 34     l.ori r3,r3,0x2d34
2773
100020a8:       d4 01 18 04     l.sw 4(r1),r3
2774
100020ac:       9c 60 00 49     l.addi r3,r0,73
2775
100020b0:       d4 01 18 08     l.sw 8(r1),r3
2776
100020b4:       18 60 10 00     l.movhi r3,0x1000
2777
100020b8:       a8 63 2c 74     l.ori r3,r3,0x2c74
2778
100020bc:       07 ff fe 4a     l.jal 100019e4 
2779
 
2780
}
2781
 
2782
static inline void exit(unsigned exit_code)
2783
{
2784
    volatile register char  t1 asm ("r1") = exit_code;
2785
100020c0:       a8 32 00 00     l.ori r1,r18,0x0
2786
            __asm__ __volatile__ ( "\t l.trap 0 ");
2787
    }
2788
    else
2789
    {
2790
        // Invalid instruction!
2791
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2792
100020c4:       c8 00 00 00     lf.add.s r0,r0,r0
2793
 
2794
        serial_putstr("5. Shift right\n");
2795
100020c8:       18 60 10 00     l.movhi r3,0x1000
2796
100020cc:       a8 63 2d ef     l.ori r3,r3,0x2def
2797
100020d0:       07 ff fe 93     l.jal 10001b1c 
2798
        uvar = 0x80000000;
2799
100020d4:       18 60 80 00     l.movhi r3,0x8000
2800
        uvar >>= 1;
2801
        assert(uvar == 0x40000000);
2802
100020d8:       18 80 40 00     l.movhi r4,0x4000
2803
        var = 0x1;
2804
        var <<= 31;
2805
        assert(var == 0x80000000);
2806
 
2807
        serial_putstr("5. Shift right\n");
2808
        uvar = 0x80000000;
2809
100020dc:       d4 0e 18 00     l.sw 0(r14),r3
2810
        uvar >>= 1;
2811
100020e0:       84 6e 00 00     l.lwz r3,0(r14)
2812
100020e4:       b8 63 00 41     l.srli r3,r3,0x1
2813
100020e8:       d4 0e 18 00     l.sw 0(r14),r3
2814
        assert(uvar == 0x40000000);
2815
100020ec:       84 6e 00 00     l.lwz r3,0(r14)
2816
100020f0:       e4 03 20 00     l.sfeq r3,r4
2817
100020f4:       10 00 00 0e     l.bf 1000212c 
2818
100020f8:       18 60 10 00     l.movhi r3,0x1000
2819
100020fc:       a8 63 2d ff     l.ori r3,r3,0x2dff
2820
10002100:       d4 01 18 00     l.sw 0(r1),r3
2821
10002104:       18 60 10 00     l.movhi r3,0x1000
2822
10002108:       a8 63 2d 34     l.ori r3,r3,0x2d34
2823
1000210c:       d4 01 18 04     l.sw 4(r1),r3
2824
10002110:       9c 60 00 4e     l.addi r3,r0,78
2825
10002114:       d4 01 18 08     l.sw 8(r1),r3
2826
10002118:       18 60 10 00     l.movhi r3,0x1000
2827
1000211c:       a8 63 2c 74     l.ori r3,r3,0x2c74
2828
10002120:       07 ff fe 31     l.jal 100019e4 
2829
 
2830
}
2831
 
2832
static inline void exit(unsigned exit_code)
2833
{
2834
    volatile register char  t1 asm ("r1") = exit_code;
2835
10002124:       9c 20 00 01     l.addi r1,r0,1
2836
            __asm__ __volatile__ ( "\t l.trap 0 ");
2837
    }
2838
    else
2839
    {
2840
        // Invalid instruction!
2841
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2842
10002128:       c8 00 00 00     lf.add.s r0,r0,r0
2843
        uvar >>= 30;
2844
1000212c:       84 6e 00 00     l.lwz r3,0(r14)
2845
10002130:       b8 63 00 5e     l.srli r3,r3,0x1e
2846
10002134:       d4 0e 18 00     l.sw 0(r14),r3
2847
        assert(uvar == 0x00000001);
2848
10002138:       84 6e 00 00     l.lwz r3,0(r14)
2849
1000213c:       bc 03 00 01     l.sfeqi r3,1
2850
10002140:       10 00 00 0e     l.bf 10002178 
2851
10002144:       18 60 10 00     l.movhi r3,0x1000
2852
10002148:       a8 63 2e 12     l.ori r3,r3,0x2e12
2853
1000214c:       d4 01 18 00     l.sw 0(r1),r3
2854
10002150:       18 60 10 00     l.movhi r3,0x1000
2855
10002154:       a8 63 2d 34     l.ori r3,r3,0x2d34
2856
10002158:       d4 01 18 04     l.sw 4(r1),r3
2857
1000215c:       9c 60 00 50     l.addi r3,r0,80
2858
10002160:       d4 01 18 08     l.sw 8(r1),r3
2859
10002164:       18 60 10 00     l.movhi r3,0x1000
2860
10002168:       a8 63 2c 74     l.ori r3,r3,0x2c74
2861
1000216c:       07 ff fe 1e     l.jal 100019e4 
2862
 
2863
}
2864
 
2865
static inline void exit(unsigned exit_code)
2866
{
2867
    volatile register char  t1 asm ("r1") = exit_code;
2868
10002170:       9c 20 00 01     l.addi r1,r0,1
2869
            __asm__ __volatile__ ( "\t l.trap 0 ");
2870
    }
2871
    else
2872
    {
2873
        // Invalid instruction!
2874
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2875
10002174:       c8 00 00 00     lf.add.s r0,r0,r0
2876
 
2877
        serial_putstr("6. Shift right arithmetic\n");
2878
10002178:       18 60 10 00     l.movhi r3,0x1000
2879
1000217c:       a8 63 2e 25     l.ori r3,r3,0x2e25
2880
10002180:       07 ff fe 67     l.jal 10001b1c 
2881
        var = 0x80000000;
2882
10002184:       18 60 80 00     l.movhi r3,0x8000
2883
        var >>= 1;
2884
        assert(var == 0xC0000000);
2885
10002188:       18 80 c0 00     l.movhi r4,0xc000
2886
        assert(uvar == 0x40000000);
2887
        uvar >>= 30;
2888
        assert(uvar == 0x00000001);
2889
 
2890
        serial_putstr("6. Shift right arithmetic\n");
2891
        var = 0x80000000;
2892
1000218c:       d4 02 18 00     l.sw 0(r2),r3
2893
        var >>= 1;
2894
10002190:       84 62 00 00     l.lwz r3,0(r2)
2895
10002194:       b8 63 00 81     l.srai r3,r3,0x1
2896
10002198:       d4 02 18 00     l.sw 0(r2),r3
2897
        assert(var == 0xC0000000);
2898
1000219c:       84 62 00 00     l.lwz r3,0(r2)
2899
100021a0:       e4 03 20 00     l.sfeq r3,r4
2900
100021a4:       10 00 00 0e     l.bf 100021dc 
2901
100021a8:       18 60 10 00     l.movhi r3,0x1000
2902
100021ac:       a8 63 2e 40     l.ori r3,r3,0x2e40
2903
100021b0:       d4 01 18 00     l.sw 0(r1),r3
2904
100021b4:       18 60 10 00     l.movhi r3,0x1000
2905
100021b8:       a8 63 2d 34     l.ori r3,r3,0x2d34
2906
100021bc:       d4 01 18 04     l.sw 4(r1),r3
2907
100021c0:       9c 60 00 55     l.addi r3,r0,85
2908
100021c4:       d4 01 18 08     l.sw 8(r1),r3
2909
100021c8:       18 60 10 00     l.movhi r3,0x1000
2910
100021cc:       a8 63 2c 74     l.ori r3,r3,0x2c74
2911
100021d0:       07 ff fe 05     l.jal 100019e4 
2912
 
2913
}
2914
 
2915
static inline void exit(unsigned exit_code)
2916
{
2917
    volatile register char  t1 asm ("r1") = exit_code;
2918
100021d4:       9c 20 00 01     l.addi r1,r0,1
2919
            __asm__ __volatile__ ( "\t l.trap 0 ");
2920
    }
2921
    else
2922
    {
2923
        // Invalid instruction!
2924
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2925
100021d8:       c8 00 00 00     lf.add.s r0,r0,r0
2926
 
2927
        serial_putstr("7. Signed comparision\n");
2928
100021dc:       18 60 10 00     l.movhi r3,0x1000
2929
100021e0:       a8 63 2e 52     l.ori r3,r3,0x2e52
2930
100021e4:       07 ff fe 4e     l.jal 10001b1c 
2931
        var = -1;
2932
100021e8:       9c 60 ff ff     l.addi r3,r0,-1
2933
100021ec:       d4 02 18 00     l.sw 0(r2),r3
2934
        assert(var < 1);
2935
100021f0:       84 62 00 00     l.lwz r3,0(r2)
2936
100021f4:       bd a3 00 00     l.sflesi r3,0
2937
100021f8:       10 00 00 0e     l.bf 10002230 
2938
100021fc:       18 60 10 00     l.movhi r3,0x1000
2939
10002200:       a8 63 2e 69     l.ori r3,r3,0x2e69
2940
10002204:       d4 01 18 00     l.sw 0(r1),r3
2941
10002208:       18 60 10 00     l.movhi r3,0x1000
2942
1000220c:       a8 63 2d 34     l.ori r3,r3,0x2d34
2943
10002210:       d4 01 18 04     l.sw 4(r1),r3
2944
10002214:       9c 60 00 59     l.addi r3,r0,89
2945
10002218:       d4 01 18 08     l.sw 8(r1),r3
2946
1000221c:       18 60 10 00     l.movhi r3,0x1000
2947
10002220:       a8 63 2c 74     l.ori r3,r3,0x2c74
2948
10002224:       07 ff fd f0     l.jal 100019e4 
2949
 
2950
}
2951
 
2952
static inline void exit(unsigned exit_code)
2953
{
2954
    volatile register char  t1 asm ("r1") = exit_code;
2955
10002228:       9c 20 00 01     l.addi r1,r0,1
2956
            __asm__ __volatile__ ( "\t l.trap 0 ");
2957
    }
2958
    else
2959
    {
2960
        // Invalid instruction!
2961
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
2962
1000222c:       c8 00 00 00     lf.add.s r0,r0,r0
2963
        x = 10;
2964
        assert(var < x);
2965
10002230:       84 62 00 00     l.lwz r3,0(r2)
2966
10002234:       bd a3 00 09     l.sflesi r3,9
2967
10002238:       0c 00 01 95     l.bnf 1000288c 
2968
        assert(!(var > x));
2969
1000223c:       84 62 00 00     l.lwz r3,0(r2)
2970
10002240:       bd a3 00 0a     l.sflesi r3,10
2971
10002244:       0c 00 01 84     l.bnf 10002854 
2972
        x = -3;
2973
        assert(var > x);
2974
10002248:       84 62 00 00     l.lwz r3,0(r2)
2975
1000224c:       bd 63 ff fe     l.sfgesi r3,-2
2976
10002250:       0c 00 01 73     l.bnf 1000281c 
2977
        assert(x <= var);
2978
10002254:       84 42 00 00     l.lwz r2,0(r2)
2979
10002258:       bd 62 ff fd     l.sfgesi r2,-3
2980
1000225c:       0c 00 01 62     l.bnf 100027e4 
2981
 
2982
        serial_putstr("8. Word access\n");
2983
10002260:       18 60 10 00     l.movhi r3,0x1000
2984
        uvar = 0x12345678;
2985
10002264:       18 40 12 34     l.movhi r2,0x1234
2986
        assert(!(var > x));
2987
        x = -3;
2988
        assert(var > x);
2989
        assert(x <= var);
2990
 
2991
        serial_putstr("8. Word access\n");
2992
10002268:       a8 63 2e 95     l.ori r3,r3,0x2e95
2993
        uvar = 0x12345678;
2994
1000226c:       a8 42 56 78     l.ori r2,r2,0x5678
2995
        assert(!(var > x));
2996
        x = -3;
2997
        assert(var > x);
2998
        assert(x <= var);
2999
 
3000
        serial_putstr("8. Word access\n");
3001
10002270:       07 ff fe 2b     l.jal 10001b1c 
3002
        uvar = 0x12345678;
3003
        assert(uvar == 0x12345678);
3004
10002274:       18 60 12 34     l.movhi r3,0x1234
3005
        x = -3;
3006
        assert(var > x);
3007
        assert(x <= var);
3008
 
3009
        serial_putstr("8. Word access\n");
3010
        uvar = 0x12345678;
3011
10002278:       d4 0e 10 00     l.sw 0(r14),r2
3012
        assert(uvar == 0x12345678);
3013
1000227c:       a8 63 56 78     l.ori r3,r3,0x5678
3014
10002280:       84 4e 00 00     l.lwz r2,0(r14)
3015
10002284:       e4 02 18 00     l.sfeq r2,r3
3016
10002288:       10 00 00 0e     l.bf 100022c0 
3017
1000228c:       18 40 10 00     l.movhi r2,0x1000
3018
10002290:       18 60 10 00     l.movhi r3,0x1000
3019
10002294:       a8 42 2e a5     l.ori r2,r2,0x2ea5
3020
10002298:       a8 63 2c 74     l.ori r3,r3,0x2c74
3021
1000229c:       d4 01 10 00     l.sw 0(r1),r2
3022
100022a0:       18 40 10 00     l.movhi r2,0x1000
3023
100022a4:       a8 42 2d 34     l.ori r2,r2,0x2d34
3024
100022a8:       d4 01 10 04     l.sw 4(r1),r2
3025
100022ac:       9c 40 00 63     l.addi r2,r0,99
3026
100022b0:       d4 01 10 08     l.sw 8(r1),r2
3027
100022b4:       07 ff fd cc     l.jal 100019e4 
3028
 
3029
}
3030
 
3031
static inline void exit(unsigned exit_code)
3032
{
3033
    volatile register char  t1 asm ("r1") = exit_code;
3034
100022b8:       9c 20 00 01     l.addi r1,r0,1
3035
            __asm__ __volatile__ ( "\t l.trap 0 ");
3036
    }
3037
    else
3038
    {
3039
        // Invalid instruction!
3040
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3041
100022bc:       c8 00 00 00     lf.add.s r0,r0,r0
3042
        sw = uvar;
3043
100022c0:       84 4e 00 00     l.lwz r2,0(r14)
3044
        assert(sw == 0x5678);
3045
100022c4:       a4 42 ff ff     l.andi r2,r2,0xffff
3046
100022c8:       bc 02 56 78     l.sfeqi r2,22136
3047
100022cc:       10 00 00 0e     l.bf 10002304 
3048
100022d0:       18 40 10 00     l.movhi r2,0x1000
3049
100022d4:       18 60 10 00     l.movhi r3,0x1000
3050
100022d8:       a8 42 2e b8     l.ori r2,r2,0x2eb8
3051
100022dc:       a8 63 2c 74     l.ori r3,r3,0x2c74
3052
100022e0:       d4 01 10 00     l.sw 0(r1),r2
3053
100022e4:       18 40 10 00     l.movhi r2,0x1000
3054
100022e8:       a8 42 2d 34     l.ori r2,r2,0x2d34
3055
100022ec:       d4 01 10 04     l.sw 4(r1),r2
3056
100022f0:       9c 40 00 65     l.addi r2,r0,101
3057
100022f4:       d4 01 10 08     l.sw 8(r1),r2
3058
100022f8:       07 ff fd bb     l.jal 100019e4 
3059
 
3060
}
3061
 
3062
static inline void exit(unsigned exit_code)
3063
{
3064
    volatile register char  t1 asm ("r1") = exit_code;
3065
100022fc:       9c 20 00 01     l.addi r1,r0,1
3066
            __asm__ __volatile__ ( "\t l.trap 0 ");
3067
    }
3068
    else
3069
    {
3070
        // Invalid instruction!
3071
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3072
10002300:       c8 00 00 00     lf.add.s r0,r0,r0
3073
        psw = &uvar;
3074
        assert(*psw++ == 0x1234);
3075
10002304:       94 4e 00 00     l.lhz r2,0(r14)
3076
10002308:       bc 02 12 34     l.sfeqi r2,4660
3077
1000230c:       10 00 00 0e     l.bf 10002344 
3078
10002310:       18 40 10 00     l.movhi r2,0x1000
3079
10002314:       18 60 10 00     l.movhi r3,0x1000
3080
10002318:       a8 42 2e c5     l.ori r2,r2,0x2ec5
3081
1000231c:       a8 63 2c 74     l.ori r3,r3,0x2c74
3082
10002320:       d4 01 10 00     l.sw 0(r1),r2
3083
10002324:       18 40 10 00     l.movhi r2,0x1000
3084
10002328:       a8 42 2d 34     l.ori r2,r2,0x2d34
3085
1000232c:       d4 01 10 04     l.sw 4(r1),r2
3086
10002330:       9c 40 00 67     l.addi r2,r0,103
3087
10002334:       d4 01 10 08     l.sw 8(r1),r2
3088
10002338:       07 ff fd ab     l.jal 100019e4 
3089
 
3090
}
3091
 
3092
static inline void exit(unsigned exit_code)
3093
{
3094
    volatile register char  t1 asm ("r1") = exit_code;
3095
1000233c:       9c 20 00 01     l.addi r1,r0,1
3096
            __asm__ __volatile__ ( "\t l.trap 0 ");
3097
    }
3098
    else
3099
    {
3100
        // Invalid instruction!
3101
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3102
10002340:       c8 00 00 00     lf.add.s r0,r0,r0
3103
        assert(*psw++ == 0x5678);
3104
10002344:       94 4e 00 02     l.lhz r2,2(r14)
3105
10002348:       bc 02 56 78     l.sfeqi r2,22136
3106
1000234c:       10 00 01 1f     l.bf 100027c8 
3107
10002350:       9c 60 00 68     l.addi r3,r0,104
3108
10002354:       1a 40 10 00     l.movhi r18,0x1000
3109
10002358:       18 40 10 00     l.movhi r2,0x1000
3110
1000235c:       d4 01 18 08     l.sw 8(r1),r3
3111
10002360:       aa 52 2e d6     l.ori r18,r18,0x2ed6
3112
10002364:       a8 42 2d 34     l.ori r2,r2,0x2d34
3113
10002368:       18 60 10 00     l.movhi r3,0x1000
3114
1000236c:       d4 01 90 00     l.sw 0(r1),r18
3115
10002370:       d4 01 10 04     l.sw 4(r1),r2
3116
10002374:       a8 63 2c 74     l.ori r3,r3,0x2c74
3117
10002378:       07 ff fd 9b     l.jal 100019e4 
3118
 
3119
}
3120
 
3121
static inline void exit(unsigned exit_code)
3122
{
3123
    volatile register char  t1 asm ("r1") = exit_code;
3124
1000237c:       9c 20 00 01     l.addi r1,r0,1
3125
            __asm__ __volatile__ ( "\t l.trap 0 ");
3126
    }
3127
    else
3128
    {
3129
        // Invalid instruction!
3130
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3131
10002380:       c8 00 00 00     lf.add.s r0,r0,r0
3132
10002384:       94 6e 00 02     l.lhz r3,2(r14)
3133
        psw = &uvar;
3134
        *psw = 0xcafe;
3135
10002388:       9c 80 ca fe     l.addi r4,r0,-13570
3136
        assert(*psw++ == 0xcafe);
3137
        assert(*psw++ == 0x5678);
3138
1000238c:       bc 03 56 78     l.sfeqi r3,22136
3139
        assert(sw == 0x5678);
3140
        psw = &uvar;
3141
        assert(*psw++ == 0x1234);
3142
        assert(*psw++ == 0x5678);
3143
        psw = &uvar;
3144
        *psw = 0xcafe;
3145
10002390:       dc 0e 20 00     l.sh 0(r14),r4
3146
        assert(*psw++ == 0xcafe);
3147
        assert(*psw++ == 0x5678);
3148
10002394:       10 00 01 11     l.bf 100027d8 
3149
10002398:       9c 60 00 6c     l.addi r3,r0,108
3150
1000239c:       d4 01 90 00     l.sw 0(r1),r18
3151
100023a0:       d4 01 18 08     l.sw 8(r1),r3
3152
100023a4:       18 60 10 00     l.movhi r3,0x1000
3153
100023a8:       d4 01 10 04     l.sw 4(r1),r2
3154
100023ac:       a8 63 2c 74     l.ori r3,r3,0x2c74
3155
100023b0:       07 ff fd 8d     l.jal 100019e4 
3156
 
3157
}
3158
 
3159
static inline void exit(unsigned exit_code)
3160
{
3161
    volatile register char  t1 asm ("r1") = exit_code;
3162
100023b4:       9c 20 00 01     l.addi r1,r0,1
3163
            __asm__ __volatile__ ( "\t l.trap 0 ");
3164
    }
3165
    else
3166
    {
3167
        // Invalid instruction!
3168
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3169
100023b8:       c8 00 00 00     lf.add.s r0,r0,r0
3170
        psw = &uvar;
3171
        *(++psw) = 0xbabe;
3172
100023bc:       9c 80 ba be     l.addi r4,r0,-17730
3173
100023c0:       94 6e 00 00     l.lhz r3,0(r14)
3174
100023c4:       dc 0e 20 02     l.sh 2(r14),r4
3175
        psw = &uvar;
3176
        assert(*psw++ == 0xcafe);
3177
100023c8:       a8 80 ca fe     l.ori r4,r0,0xcafe
3178
100023cc:       e4 23 20 00     l.sfne r3,r4
3179
100023d0:       0c 00 00 1b     l.bnf 1000243c 
3180
100023d4:       18 60 10 00     l.movhi r3,0x1000
3181
100023d8:       d4 01 10 04     l.sw 4(r1),r2
3182
100023dc:       a8 63 2e e7     l.ori r3,r3,0x2ee7
3183
100023e0:       d4 01 18 00     l.sw 0(r1),r3
3184
100023e4:       9c 60 00 70     l.addi r3,r0,112
3185
100023e8:       d4 01 18 08     l.sw 8(r1),r3
3186
100023ec:       18 60 10 00     l.movhi r3,0x1000
3187
100023f0:       a8 63 2c 74     l.ori r3,r3,0x2c74
3188
100023f4:       07 ff fd 7c     l.jal 100019e4 
3189
 
3190
}
3191
 
3192
static inline void exit(unsigned exit_code)
3193
{
3194
    volatile register char  t1 asm ("r1") = exit_code;
3195
100023f8:       9c 20 00 01     l.addi r1,r0,1
3196
            __asm__ __volatile__ ( "\t l.trap 0 ");
3197
    }
3198
    else
3199
    {
3200
        // Invalid instruction!
3201
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3202
100023fc:       c8 00 00 00     lf.add.s r0,r0,r0
3203
        assert(*psw++ == 0xbabe);
3204
10002400:       a8 80 ba be     l.ori r4,r0,0xbabe
3205
10002404:       94 6e 00 02     l.lhz r3,2(r14)
3206
10002408:       e4 03 20 00     l.sfeq r3,r4
3207
1000240c:       10 00 00 0c     l.bf 1000243c 
3208
10002410:       18 60 10 00     l.movhi r3,0x1000
3209
10002414:       d4 01 10 04     l.sw 4(r1),r2
3210
10002418:       a8 63 2e f8     l.ori r3,r3,0x2ef8
3211
1000241c:       9c 40 00 71     l.addi r2,r0,113
3212
10002420:       d4 01 18 00     l.sw 0(r1),r3
3213
10002424:       18 60 10 00     l.movhi r3,0x1000
3214
10002428:       d4 01 10 08     l.sw 8(r1),r2
3215
1000242c:       a8 63 2c 74     l.ori r3,r3,0x2c74
3216
10002430:       07 ff fd 6d     l.jal 100019e4 
3217
 
3218
}
3219
 
3220
static inline void exit(unsigned exit_code)
3221
{
3222
    volatile register char  t1 asm ("r1") = exit_code;
3223
10002434:       9c 20 00 01     l.addi r1,r0,1
3224
            __asm__ __volatile__ ( "\t l.trap 0 ");
3225
    }
3226
    else
3227
    {
3228
        // Invalid instruction!
3229
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3230
10002438:       c8 00 00 00     lf.add.s r0,r0,r0
3231
 
3232
        serial_putstr("9. Byte access\n");
3233
1000243c:       18 60 10 00     l.movhi r3,0x1000
3234
        uvar = 0x12345678;
3235
10002440:       18 40 12 34     l.movhi r2,0x1234
3236
        *(++psw) = 0xbabe;
3237
        psw = &uvar;
3238
        assert(*psw++ == 0xcafe);
3239
        assert(*psw++ == 0xbabe);
3240
 
3241
        serial_putstr("9. Byte access\n");
3242
10002444:       a8 63 2f 09     l.ori r3,r3,0x2f09
3243
        uvar = 0x12345678;
3244
10002448:       a8 42 56 78     l.ori r2,r2,0x5678
3245
        *(++psw) = 0xbabe;
3246
        psw = &uvar;
3247
        assert(*psw++ == 0xcafe);
3248
        assert(*psw++ == 0xbabe);
3249
 
3250
        serial_putstr("9. Byte access\n");
3251
1000244c:       07 ff fd b4     l.jal 10001b1c 
3252
        uvar = 0x12345678;
3253
        assert(uvar == 0x12345678);
3254
10002450:       18 60 12 34     l.movhi r3,0x1234
3255
        psw = &uvar;
3256
        assert(*psw++ == 0xcafe);
3257
        assert(*psw++ == 0xbabe);
3258
 
3259
        serial_putstr("9. Byte access\n");
3260
        uvar = 0x12345678;
3261
10002454:       d4 0e 10 00     l.sw 0(r14),r2
3262
        assert(uvar == 0x12345678);
3263
10002458:       a8 63 56 78     l.ori r3,r3,0x5678
3264
1000245c:       84 4e 00 00     l.lwz r2,0(r14)
3265
10002460:       e4 02 18 00     l.sfeq r2,r3
3266
10002464:       10 00 00 0e     l.bf 1000249c 
3267
10002468:       18 40 10 00     l.movhi r2,0x1000
3268
1000246c:       18 60 10 00     l.movhi r3,0x1000
3269
10002470:       a8 42 2e a5     l.ori r2,r2,0x2ea5
3270
10002474:       a8 63 2c 74     l.ori r3,r3,0x2c74
3271
10002478:       d4 01 10 00     l.sw 0(r1),r2
3272
1000247c:       18 40 10 00     l.movhi r2,0x1000
3273
10002480:       a8 42 2d 34     l.ori r2,r2,0x2d34
3274
10002484:       d4 01 10 04     l.sw 4(r1),r2
3275
10002488:       9c 40 00 75     l.addi r2,r0,117
3276
1000248c:       d4 01 10 08     l.sw 8(r1),r2
3277
10002490:       07 ff fd 55     l.jal 100019e4 
3278
 
3279
}
3280
 
3281
static inline void exit(unsigned exit_code)
3282
{
3283
    volatile register char  t1 asm ("r1") = exit_code;
3284
10002494:       9c 20 00 01     l.addi r1,r0,1
3285
            __asm__ __volatile__ ( "\t l.trap 0 ");
3286
    }
3287
    else
3288
    {
3289
        // Invalid instruction!
3290
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3291
10002498:       c8 00 00 00     lf.add.s r0,r0,r0
3292
        sb = uvar;
3293
1000249c:       84 4e 00 00     l.lwz r2,0(r14)
3294
        assert(sb == 0x78);
3295
100024a0:       a4 42 00 ff     l.andi r2,r2,0xff
3296
100024a4:       bc 02 00 78     l.sfeqi r2,120
3297
100024a8:       10 00 00 0e     l.bf 100024e0 
3298
100024ac:       18 40 10 00     l.movhi r2,0x1000
3299
100024b0:       18 60 10 00     l.movhi r3,0x1000
3300
100024b4:       a8 42 2f 19     l.ori r2,r2,0x2f19
3301
100024b8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3302
100024bc:       d4 01 10 00     l.sw 0(r1),r2
3303
100024c0:       18 40 10 00     l.movhi r2,0x1000
3304
100024c4:       a8 42 2d 34     l.ori r2,r2,0x2d34
3305
100024c8:       d4 01 10 04     l.sw 4(r1),r2
3306
100024cc:       9c 40 00 77     l.addi r2,r0,119
3307
100024d0:       d4 01 10 08     l.sw 8(r1),r2
3308
100024d4:       07 ff fd 44     l.jal 100019e4 
3309
 
3310
}
3311
 
3312
static inline void exit(unsigned exit_code)
3313
{
3314
    volatile register char  t1 asm ("r1") = exit_code;
3315
100024d8:       9c 20 00 01     l.addi r1,r0,1
3316
            __asm__ __volatile__ ( "\t l.trap 0 ");
3317
    }
3318
    else
3319
    {
3320
        // Invalid instruction!
3321
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3322
100024dc:       c8 00 00 00     lf.add.s r0,r0,r0
3323
        psb = &uvar;
3324
        assert(*psb++ == 0x12);
3325
100024e0:       8c 4e 00 00     l.lbz r2,0(r14)
3326
100024e4:       bc 02 00 12     l.sfeqi r2,18
3327
100024e8:       10 00 00 0e     l.bf 10002520 
3328
100024ec:       18 40 10 00     l.movhi r2,0x1000
3329
100024f0:       18 60 10 00     l.movhi r3,0x1000
3330
100024f4:       a8 42 2f 24     l.ori r2,r2,0x2f24
3331
100024f8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3332
100024fc:       d4 01 10 00     l.sw 0(r1),r2
3333
10002500:       18 40 10 00     l.movhi r2,0x1000
3334
10002504:       a8 42 2d 34     l.ori r2,r2,0x2d34
3335
10002508:       d4 01 10 04     l.sw 4(r1),r2
3336
1000250c:       9c 40 00 79     l.addi r2,r0,121
3337
10002510:       d4 01 10 08     l.sw 8(r1),r2
3338
10002514:       07 ff fd 34     l.jal 100019e4 
3339
 
3340
}
3341
 
3342
static inline void exit(unsigned exit_code)
3343
{
3344
    volatile register char  t1 asm ("r1") = exit_code;
3345
10002518:       9c 20 00 01     l.addi r1,r0,1
3346
            __asm__ __volatile__ ( "\t l.trap 0 ");
3347
    }
3348
    else
3349
    {
3350
        // Invalid instruction!
3351
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3352
1000251c:       c8 00 00 00     lf.add.s r0,r0,r0
3353
        assert(*psb++ == 0x34);
3354
10002520:       8c 4e 00 01     l.lbz r2,1(r14)
3355
10002524:       bc 02 00 34     l.sfeqi r2,52
3356
10002528:       10 00 00 0e     l.bf 10002560 
3357
1000252c:       18 40 10 00     l.movhi r2,0x1000
3358
10002530:       18 60 10 00     l.movhi r3,0x1000
3359
10002534:       a8 42 2f 33     l.ori r2,r2,0x2f33
3360
10002538:       a8 63 2c 74     l.ori r3,r3,0x2c74
3361
1000253c:       d4 01 10 00     l.sw 0(r1),r2
3362
10002540:       18 40 10 00     l.movhi r2,0x1000
3363
10002544:       a8 42 2d 34     l.ori r2,r2,0x2d34
3364
10002548:       d4 01 10 04     l.sw 4(r1),r2
3365
1000254c:       9c 40 00 7a     l.addi r2,r0,122
3366
10002550:       d4 01 10 08     l.sw 8(r1),r2
3367
10002554:       07 ff fd 24     l.jal 100019e4 
3368
 
3369
}
3370
 
3371
static inline void exit(unsigned exit_code)
3372
{
3373
    volatile register char  t1 asm ("r1") = exit_code;
3374
10002558:       9c 20 00 01     l.addi r1,r0,1
3375
            __asm__ __volatile__ ( "\t l.trap 0 ");
3376
    }
3377
    else
3378
    {
3379
        // Invalid instruction!
3380
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3381
1000255c:       c8 00 00 00     lf.add.s r0,r0,r0
3382
        assert(*psb++ == 0x56);
3383
10002560:       8c 4e 00 02     l.lbz r2,2(r14)
3384
10002564:       bc 02 00 56     l.sfeqi r2,86
3385
10002568:       10 00 00 0e     l.bf 100025a0 
3386
1000256c:       18 40 10 00     l.movhi r2,0x1000
3387
10002570:       18 60 10 00     l.movhi r3,0x1000
3388
10002574:       a8 42 2f 42     l.ori r2,r2,0x2f42
3389
10002578:       a8 63 2c 74     l.ori r3,r3,0x2c74
3390
1000257c:       d4 01 10 00     l.sw 0(r1),r2
3391
10002580:       18 40 10 00     l.movhi r2,0x1000
3392
10002584:       a8 42 2d 34     l.ori r2,r2,0x2d34
3393
10002588:       d4 01 10 04     l.sw 4(r1),r2
3394
1000258c:       9c 40 00 7b     l.addi r2,r0,123
3395
10002590:       d4 01 10 08     l.sw 8(r1),r2
3396
10002594:       07 ff fd 14     l.jal 100019e4 
3397
 
3398
}
3399
 
3400
static inline void exit(unsigned exit_code)
3401
{
3402
    volatile register char  t1 asm ("r1") = exit_code;
3403
10002598:       9c 20 00 01     l.addi r1,r0,1
3404
            __asm__ __volatile__ ( "\t l.trap 0 ");
3405
    }
3406
    else
3407
    {
3408
        // Invalid instruction!
3409
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3410
1000259c:       c8 00 00 00     lf.add.s r0,r0,r0
3411
        assert(*psb++ == 0x78);
3412
100025a0:       8c 4e 00 03     l.lbz r2,3(r14)
3413
100025a4:       bc 02 00 78     l.sfeqi r2,120
3414
100025a8:       10 00 00 0e     l.bf 100025e0 
3415
100025ac:       18 40 10 00     l.movhi r2,0x1000
3416
100025b0:       18 60 10 00     l.movhi r3,0x1000
3417
100025b4:       a8 42 2f 51     l.ori r2,r2,0x2f51
3418
100025b8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3419
100025bc:       d4 01 10 00     l.sw 0(r1),r2
3420
100025c0:       18 40 10 00     l.movhi r2,0x1000
3421
100025c4:       a8 42 2d 34     l.ori r2,r2,0x2d34
3422
100025c8:       d4 01 10 04     l.sw 4(r1),r2
3423
100025cc:       9c 40 00 7c     l.addi r2,r0,124
3424
100025d0:       d4 01 10 08     l.sw 8(r1),r2
3425
100025d4:       07 ff fd 04     l.jal 100019e4 
3426
 
3427
}
3428
 
3429
static inline void exit(unsigned exit_code)
3430
{
3431
    volatile register char  t1 asm ("r1") = exit_code;
3432
100025d8:       9c 20 00 01     l.addi r1,r0,1
3433
            __asm__ __volatile__ ( "\t l.trap 0 ");
3434
    }
3435
    else
3436
    {
3437
        // Invalid instruction!
3438
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3439
100025dc:       c8 00 00 00     lf.add.s r0,r0,r0
3440
        psb = &uvar;
3441
        *psb++ = 0xab;
3442
100025e0:       9c 80 ff ab     l.addi r4,r0,-85
3443
        assert(uvar == 0xab345678);
3444
100025e4:       18 60 ab 34     l.movhi r3,0xab34
3445
        assert(*psb++ == 0x12);
3446
        assert(*psb++ == 0x34);
3447
        assert(*psb++ == 0x56);
3448
        assert(*psb++ == 0x78);
3449
        psb = &uvar;
3450
        *psb++ = 0xab;
3451
100025e8:       d8 0e 20 00     l.sb 0(r14),r4
3452
        assert(uvar == 0xab345678);
3453
100025ec:       a8 63 56 78     l.ori r3,r3,0x5678
3454
100025f0:       84 4e 00 00     l.lwz r2,0(r14)
3455
100025f4:       e4 02 18 00     l.sfeq r2,r3
3456
100025f8:       10 00 00 0e     l.bf 10002630 
3457
100025fc:       18 40 10 00     l.movhi r2,0x1000
3458
10002600:       18 60 10 00     l.movhi r3,0x1000
3459
10002604:       a8 42 2f 60     l.ori r2,r2,0x2f60
3460
10002608:       a8 63 2c 74     l.ori r3,r3,0x2c74
3461
1000260c:       d4 01 10 00     l.sw 0(r1),r2
3462
10002610:       18 40 10 00     l.movhi r2,0x1000
3463
10002614:       a8 42 2d 34     l.ori r2,r2,0x2d34
3464
10002618:       d4 01 10 04     l.sw 4(r1),r2
3465
1000261c:       9c 40 00 7f     l.addi r2,r0,127
3466
10002620:       d4 01 10 08     l.sw 8(r1),r2
3467
10002624:       07 ff fc f0     l.jal 100019e4 
3468
 
3469
}
3470
 
3471
static inline void exit(unsigned exit_code)
3472
{
3473
    volatile register char  t1 asm ("r1") = exit_code;
3474
10002628:       9c 20 00 01     l.addi r1,r0,1
3475
            __asm__ __volatile__ ( "\t l.trap 0 ");
3476
    }
3477
    else
3478
    {
3479
        // Invalid instruction!
3480
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3481
1000262c:       c8 00 00 00     lf.add.s r0,r0,r0
3482
        *psb++ = 0xcd;
3483
10002630:       9c 80 ff cd     l.addi r4,r0,-51
3484
        assert(uvar == 0xabcd5678);
3485
10002634:       18 60 ab cd     l.movhi r3,0xabcd
3486
        assert(*psb++ == 0x56);
3487
        assert(*psb++ == 0x78);
3488
        psb = &uvar;
3489
        *psb++ = 0xab;
3490
        assert(uvar == 0xab345678);
3491
        *psb++ = 0xcd;
3492
10002638:       d8 0e 20 01     l.sb 1(r14),r4
3493
        assert(uvar == 0xabcd5678);
3494
1000263c:       a8 63 56 78     l.ori r3,r3,0x5678
3495
10002640:       84 4e 00 00     l.lwz r2,0(r14)
3496
10002644:       e4 02 18 00     l.sfeq r2,r3
3497
10002648:       10 00 00 0e     l.bf 10002680 
3498
1000264c:       18 40 10 00     l.movhi r2,0x1000
3499
10002650:       18 60 10 00     l.movhi r3,0x1000
3500
10002654:       a8 42 2f 73     l.ori r2,r2,0x2f73
3501
10002658:       a8 63 2c 74     l.ori r3,r3,0x2c74
3502
1000265c:       d4 01 10 00     l.sw 0(r1),r2
3503
10002660:       18 40 10 00     l.movhi r2,0x1000
3504
10002664:       a8 42 2d 34     l.ori r2,r2,0x2d34
3505
10002668:       d4 01 10 04     l.sw 4(r1),r2
3506
1000266c:       9c 40 00 81     l.addi r2,r0,129
3507
10002670:       d4 01 10 08     l.sw 8(r1),r2
3508
10002674:       07 ff fc dc     l.jal 100019e4 
3509
 
3510
}
3511
 
3512
static inline void exit(unsigned exit_code)
3513
{
3514
    volatile register char  t1 asm ("r1") = exit_code;
3515
10002678:       9c 20 00 01     l.addi r1,r0,1
3516
            __asm__ __volatile__ ( "\t l.trap 0 ");
3517
    }
3518
    else
3519
    {
3520
        // Invalid instruction!
3521
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3522
1000267c:       c8 00 00 00     lf.add.s r0,r0,r0
3523
        *psb++ = 0xef;
3524
10002680:       9c 80 ff ef     l.addi r4,r0,-17
3525
        assert(uvar == 0xabcdef78);
3526
10002684:       18 60 ab cd     l.movhi r3,0xabcd
3527
        psb = &uvar;
3528
        *psb++ = 0xab;
3529
        assert(uvar == 0xab345678);
3530
        *psb++ = 0xcd;
3531
        assert(uvar == 0xabcd5678);
3532
        *psb++ = 0xef;
3533
10002688:       d8 0e 20 02     l.sb 2(r14),r4
3534
        assert(uvar == 0xabcdef78);
3535
1000268c:       a8 63 ef 78     l.ori r3,r3,0xef78
3536
10002690:       84 4e 00 00     l.lwz r2,0(r14)
3537
10002694:       e4 02 18 00     l.sfeq r2,r3
3538
10002698:       10 00 00 0e     l.bf 100026d0 
3539
1000269c:       18 40 10 00     l.movhi r2,0x1000
3540
100026a0:       18 60 10 00     l.movhi r3,0x1000
3541
100026a4:       a8 42 2f 86     l.ori r2,r2,0x2f86
3542
100026a8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3543
100026ac:       d4 01 10 00     l.sw 0(r1),r2
3544
100026b0:       18 40 10 00     l.movhi r2,0x1000
3545
100026b4:       a8 42 2d 34     l.ori r2,r2,0x2d34
3546
100026b8:       d4 01 10 04     l.sw 4(r1),r2
3547
100026bc:       9c 40 00 83     l.addi r2,r0,131
3548
100026c0:       d4 01 10 08     l.sw 8(r1),r2
3549
100026c4:       07 ff fc c8     l.jal 100019e4 
3550
 
3551
}
3552
 
3553
static inline void exit(unsigned exit_code)
3554
{
3555
    volatile register char  t1 asm ("r1") = exit_code;
3556
100026c8:       9c 20 00 01     l.addi r1,r0,1
3557
            __asm__ __volatile__ ( "\t l.trap 0 ");
3558
    }
3559
    else
3560
    {
3561
        // Invalid instruction!
3562
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3563
100026cc:       c8 00 00 00     lf.add.s r0,r0,r0
3564
        *psb++ = 0x01;
3565
100026d0:       9c 80 00 01     l.addi r4,r0,1
3566
        assert(uvar == 0xabcdef01);
3567
100026d4:       18 60 ab cd     l.movhi r3,0xabcd
3568
        assert(uvar == 0xab345678);
3569
        *psb++ = 0xcd;
3570
        assert(uvar == 0xabcd5678);
3571
        *psb++ = 0xef;
3572
        assert(uvar == 0xabcdef78);
3573
        *psb++ = 0x01;
3574
100026d8:       d8 0e 20 03     l.sb 3(r14),r4
3575
        assert(uvar == 0xabcdef01);
3576
100026dc:       a8 63 ef 01     l.ori r3,r3,0xef01
3577
100026e0:       84 4e 00 00     l.lwz r2,0(r14)
3578
100026e4:       e4 02 18 00     l.sfeq r2,r3
3579
100026e8:       10 00 00 0e     l.bf 10002720 
3580
100026ec:       18 40 10 00     l.movhi r2,0x1000
3581
100026f0:       18 60 10 00     l.movhi r3,0x1000
3582
100026f4:       a8 42 2f 99     l.ori r2,r2,0x2f99
3583
100026f8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3584
100026fc:       d4 01 10 00     l.sw 0(r1),r2
3585
10002700:       18 40 10 00     l.movhi r2,0x1000
3586
10002704:       a8 42 2d 34     l.ori r2,r2,0x2d34
3587
10002708:       d4 01 10 04     l.sw 4(r1),r2
3588
1000270c:       9c 40 00 85     l.addi r2,r0,133
3589
10002710:       d4 01 10 08     l.sw 8(r1),r2
3590
10002714:       07 ff fc b4     l.jal 100019e4 
3591
 
3592
}
3593
 
3594
static inline void exit(unsigned exit_code)
3595
{
3596
    volatile register char  t1 asm ("r1") = exit_code;
3597
10002718:       9c 20 00 01     l.addi r1,r0,1
3598
            __asm__ __volatile__ ( "\t l.trap 0 ");
3599
    }
3600
    else
3601
    {
3602
        // Invalid instruction!
3603
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3604
1000271c:       c8 00 00 00     lf.add.s r0,r0,r0
3605
 
3606
        serial_putstr("10. Comparision\n");
3607
10002720:       18 60 10 00     l.movhi r3,0x1000
3608
        longvar = 0x1db9;
3609
10002724:       18 40 10 00     l.movhi r2,0x1000
3610
        *psb++ = 0xef;
3611
        assert(uvar == 0xabcdef78);
3612
        *psb++ = 0x01;
3613
        assert(uvar == 0xabcdef01);
3614
 
3615
        serial_putstr("10. Comparision\n");
3616
10002728:       a8 63 2f ac     l.ori r3,r3,0x2fac
3617
        longvar = 0x1db9;
3618
1000272c:       a8 42 30 00     l.ori r2,r2,0x3000
3619
        *psb++ = 0xef;
3620
        assert(uvar == 0xabcdef78);
3621
        *psb++ = 0x01;
3622
        assert(uvar == 0xabcdef01);
3623
 
3624
        serial_putstr("10. Comparision\n");
3625
10002730:       07 ff fc fb     l.jal 10001b1c 
3626
        longvar = 0x1db9;
3627
10002734:       9c 60 1d b9     l.addi r3,r0,7609
3628
        if (longvar >= 0xFFF8 && longvar <= 0xFFFF)
3629
10002738:       a8 80 ff f7     l.ori r4,r0,0xfff7
3630
        assert(uvar == 0xabcdef78);
3631
        *psb++ = 0x01;
3632
        assert(uvar == 0xabcdef01);
3633
 
3634
        serial_putstr("10. Comparision\n");
3635
        longvar = 0x1db9;
3636
1000273c:       d4 02 18 00     l.sw 0(r2),r3
3637
        if (longvar >= 0xFFF8 && longvar <= 0xFFFF)
3638
10002740:       84 62 00 00     l.lwz r3,0(r2)
3639
10002744:       e4 a3 20 00     l.sfleu r3,r4
3640
10002748:       10 00 00 05     l.bf 1000275c 
3641
1000274c:       a8 60 ff ff     l.ori r3,r0,0xffff
3642
10002750:       84 42 00 00     l.lwz r2,0(r2)
3643
10002754:       e4 42 18 00     l.sfgtu r2,r3
3644
10002758:       0c 00 00 0b     l.bnf 10002784 
3645
 
3646
}
3647
 
3648
static inline void exit(unsigned exit_code)
3649
{
3650
    volatile register char  t1 asm ("r1") = exit_code;
3651
1000275c:       9c 20 00 00     l.addi r1,r0,0
3652
 
3653
    // No error?
3654
    if (exit_code == 0)
3655
    {
3656
        // Trap instruction
3657
            __asm__ __volatile__ ( "\t l.trap 0 ");
3658
10002760:       21 00 00 00     l.trap 0x0
3659
        assert(0);
3660
    }
3661
 
3662
    // Success
3663
    exit(0);
3664
}
3665
10002764:       9c 21 00 20     l.addi r1,r1,32
3666
10002768:       9d 60 00 00     l.addi r11,r0,0
3667
1000276c:       85 21 ff fc     l.lwz r9,-4(r1)
3668
10002770:       84 21 ff ec     l.lwz r1,-20(r1)
3669
10002774:       84 41 ff f0     l.lwz r2,-16(r1)
3670
10002778:       85 c1 ff f4     l.lwz r14,-12(r1)
3671
1000277c:       86 41 ff f8     l.lwz r18,-8(r1)
3672
10002780:       44 00 48 00     l.jr r9
3673
 
3674
        serial_putstr("10. Comparision\n");
3675
        longvar = 0x1db9;
3676
        if (longvar >= 0xFFF8 && longvar <= 0xFFFF)
3677
    {
3678
                serial_putstr("- Incorrect comparision\n");
3679
10002784:       18 60 10 00     l.movhi r3,0x1000
3680
        assert(0);
3681
10002788:       18 40 10 00     l.movhi r2,0x1000
3682
 
3683
        serial_putstr("10. Comparision\n");
3684
        longvar = 0x1db9;
3685
        if (longvar >= 0xFFF8 && longvar <= 0xFFFF)
3686
    {
3687
                serial_putstr("- Incorrect comparision\n");
3688
1000278c:       a8 63 2f bd     l.ori r3,r3,0x2fbd
3689
        assert(0);
3690
10002790:       a8 42 2d 07     l.ori r2,r2,0x2d07
3691
 
3692
        serial_putstr("10. Comparision\n");
3693
        longvar = 0x1db9;
3694
        if (longvar >= 0xFFF8 && longvar <= 0xFFFF)
3695
    {
3696
                serial_putstr("- Incorrect comparision\n");
3697
10002794:       07 ff fc e2     l.jal 10001b1c 
3698
        assert(0);
3699
10002798:       d4 01 10 00     l.sw 0(r1),r2
3700
1000279c:       18 40 10 00     l.movhi r2,0x1000
3701
100027a0:       18 60 10 00     l.movhi r3,0x1000
3702
100027a4:       a8 42 2d 34     l.ori r2,r2,0x2d34
3703
100027a8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3704
100027ac:       d4 01 10 04     l.sw 4(r1),r2
3705
100027b0:       9c 40 00 8c     l.addi r2,r0,140
3706
100027b4:       d4 01 10 08     l.sw 8(r1),r2
3707
100027b8:       07 ff fc 8b     l.jal 100019e4 
3708
 
3709
}
3710
 
3711
static inline void exit(unsigned exit_code)
3712
{
3713
    volatile register char  t1 asm ("r1") = exit_code;
3714
100027bc:       9c 20 00 01     l.addi r1,r0,1
3715
            __asm__ __volatile__ ( "\t l.trap 0 ");
3716
    }
3717
    else
3718
    {
3719
        // Invalid instruction!
3720
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3721
100027c0:       c8 00 00 00     lf.add.s r0,r0,r0
3722
100027c4:       03 ff ff e6     l.j 1000275c 
3723
        assert(sw == 0x5678);
3724
        psw = &uvar;
3725
        assert(*psw++ == 0x1234);
3726
        assert(*psw++ == 0x5678);
3727
        psw = &uvar;
3728
        *psw = 0xcafe;
3729
100027c8:       18 40 10 00     l.movhi r2,0x1000
3730
100027cc:       9c 80 ca fe     l.addi r4,r0,-13570
3731
100027d0:       a8 42 30 04     l.ori r2,r2,0x3004
3732
100027d4:       dc 02 20 00     l.sh 0(r2),r4
3733
        assert(*psw++ == 0xcafe);
3734
        assert(*psw++ == 0x5678);
3735
        psw = &uvar;
3736
        *(++psw) = 0xbabe;
3737
100027d8:       9c 40 ba be     l.addi r2,r0,-17730
3738
100027dc:       dc 0e 10 02     l.sh 2(r14),r2
3739
100027e0:       03 ff ff 17     l.j 1000243c 
3740
        x = 10;
3741
        assert(var < x);
3742
        assert(!(var > x));
3743
        x = -3;
3744
        assert(var > x);
3745
        assert(x <= var);
3746
100027e4:       18 40 10 00     l.movhi r2,0x1000
3747
100027e8:       18 60 10 00     l.movhi r3,0x1000
3748
100027ec:       a8 42 2e 8c     l.ori r2,r2,0x2e8c
3749
100027f0:       a8 63 2c 74     l.ori r3,r3,0x2c74
3750
100027f4:       d4 01 10 00     l.sw 0(r1),r2
3751
100027f8:       18 40 10 00     l.movhi r2,0x1000
3752
100027fc:       a8 42 2d 34     l.ori r2,r2,0x2d34
3753
10002800:       d4 01 10 04     l.sw 4(r1),r2
3754
10002804:       9c 40 00 5f     l.addi r2,r0,95
3755
10002808:       d4 01 10 08     l.sw 8(r1),r2
3756
1000280c:       07 ff fc 76     l.jal 100019e4 
3757
 
3758
}
3759
 
3760
static inline void exit(unsigned exit_code)
3761
{
3762
    volatile register char  t1 asm ("r1") = exit_code;
3763
10002810:       9c 20 00 01     l.addi r1,r0,1
3764
            __asm__ __volatile__ ( "\t l.trap 0 ");
3765
    }
3766
    else
3767
    {
3768
        // Invalid instruction!
3769
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3770
10002814:       c8 00 00 00     lf.add.s r0,r0,r0
3771
10002818:       03 ff fe 92     l.j 10002260 
3772
        assert(var < 1);
3773
        x = 10;
3774
        assert(var < x);
3775
        assert(!(var > x));
3776
        x = -3;
3777
        assert(var > x);
3778
1000281c:       18 60 10 00     l.movhi r3,0x1000
3779
10002820:       a8 63 2e 84     l.ori r3,r3,0x2e84
3780
10002824:       d4 01 18 00     l.sw 0(r1),r3
3781
10002828:       18 60 10 00     l.movhi r3,0x1000
3782
1000282c:       a8 63 2d 34     l.ori r3,r3,0x2d34
3783
10002830:       d4 01 18 04     l.sw 4(r1),r3
3784
10002834:       9c 60 00 5e     l.addi r3,r0,94
3785
10002838:       d4 01 18 08     l.sw 8(r1),r3
3786
1000283c:       18 60 10 00     l.movhi r3,0x1000
3787
10002840:       a8 63 2c 74     l.ori r3,r3,0x2c74
3788
10002844:       07 ff fc 68     l.jal 100019e4 
3789
 
3790
}
3791
 
3792
static inline void exit(unsigned exit_code)
3793
{
3794
    volatile register char  t1 asm ("r1") = exit_code;
3795
10002848:       9c 20 00 01     l.addi r1,r0,1
3796
            __asm__ __volatile__ ( "\t l.trap 0 ");
3797
    }
3798
    else
3799
    {
3800
        // Invalid instruction!
3801
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3802
1000284c:       c8 00 00 00     lf.add.s r0,r0,r0
3803
10002850:       03 ff fe 81     l.j 10002254 
3804
        serial_putstr("7. Signed comparision\n");
3805
        var = -1;
3806
        assert(var < 1);
3807
        x = 10;
3808
        assert(var < x);
3809
        assert(!(var > x));
3810
10002854:       18 60 10 00     l.movhi r3,0x1000
3811
10002858:       a8 63 2e 79     l.ori r3,r3,0x2e79
3812
1000285c:       d4 01 18 00     l.sw 0(r1),r3
3813
10002860:       18 60 10 00     l.movhi r3,0x1000
3814
10002864:       a8 63 2d 34     l.ori r3,r3,0x2d34
3815
10002868:       d4 01 18 04     l.sw 4(r1),r3
3816
1000286c:       9c 60 00 5c     l.addi r3,r0,92
3817
10002870:       d4 01 18 08     l.sw 8(r1),r3
3818
10002874:       18 60 10 00     l.movhi r3,0x1000
3819
10002878:       a8 63 2c 74     l.ori r3,r3,0x2c74
3820
1000287c:       07 ff fc 5a     l.jal 100019e4 
3821
 
3822
}
3823
 
3824
static inline void exit(unsigned exit_code)
3825
{
3826
    volatile register char  t1 asm ("r1") = exit_code;
3827
10002880:       9c 20 00 01     l.addi r1,r0,1
3828
            __asm__ __volatile__ ( "\t l.trap 0 ");
3829
    }
3830
    else
3831
    {
3832
        // Invalid instruction!
3833
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3834
10002884:       c8 00 00 00     lf.add.s r0,r0,r0
3835
10002888:       03 ff fe 70     l.j 10002248 
3836
 
3837
        serial_putstr("7. Signed comparision\n");
3838
        var = -1;
3839
        assert(var < 1);
3840
        x = 10;
3841
        assert(var < x);
3842
1000288c:       18 60 10 00     l.movhi r3,0x1000
3843
10002890:       a8 63 2e 71     l.ori r3,r3,0x2e71
3844
10002894:       d4 01 18 00     l.sw 0(r1),r3
3845
10002898:       18 60 10 00     l.movhi r3,0x1000
3846
1000289c:       a8 63 2d 34     l.ori r3,r3,0x2d34
3847
100028a0:       d4 01 18 04     l.sw 4(r1),r3
3848
100028a4:       9c 60 00 5b     l.addi r3,r0,91
3849
100028a8:       d4 01 18 08     l.sw 8(r1),r3
3850
100028ac:       18 60 10 00     l.movhi r3,0x1000
3851
100028b0:       a8 63 2c 74     l.ori r3,r3,0x2c74
3852
100028b4:       07 ff fc 4c     l.jal 100019e4 
3853
 
3854
}
3855
 
3856
static inline void exit(unsigned exit_code)
3857
{
3858
    volatile register char  t1 asm ("r1") = exit_code;
3859
100028b8:       9c 20 00 01     l.addi r1,r0,1
3860
            __asm__ __volatile__ ( "\t l.trap 0 ");
3861
    }
3862
    else
3863
    {
3864
        // Invalid instruction!
3865
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3866
100028bc:       c8 00 00 00     lf.add.s r0,r0,r0
3867
100028c0:       03 ff fe 5f     l.j 1000223c 
3868
        // Assign empty syscall handler
3869
        exception_register_syscall_handler(empty_syscall);
3870
 
3871
        serial_putstr("1. Initialised data\n");
3872
        assert(var == 0x1234);  // .text
3873
        assert(uvar == 0x0);    // .bss
3874
100028c4:       18 60 10 00     l.movhi r3,0x1000
3875
100028c8:       a8 63 2d 3b     l.ori r3,r3,0x2d3b
3876
100028cc:       d4 01 18 00     l.sw 0(r1),r3
3877
100028d0:       18 60 10 00     l.movhi r3,0x1000
3878
100028d4:       a8 63 2d 34     l.ori r3,r3,0x2d34
3879
100028d8:       d4 01 18 04     l.sw 4(r1),r3
3880
100028dc:       9c 60 00 2a     l.addi r3,r0,42
3881
100028e0:       d4 01 18 08     l.sw 8(r1),r3
3882
100028e4:       18 60 10 00     l.movhi r3,0x1000
3883
100028e8:       a8 63 2c 74     l.ori r3,r3,0x2c74
3884
100028ec:       07 ff fc 3e     l.jal 100019e4 
3885
 
3886
}
3887
 
3888
static inline void exit(unsigned exit_code)
3889
{
3890
    volatile register char  t1 asm ("r1") = exit_code;
3891
100028f0:       9c 20 00 01     l.addi r1,r0,1
3892
            __asm__ __volatile__ ( "\t l.trap 0 ");
3893
    }
3894
    else
3895
    {
3896
        // Invalid instruction!
3897
        __asm__ __volatile__ ( "\t lf.add.s r0,r0,r0 ");
3898
100028f4:       c8 00 00 00     lf.add.s r0,r0,r0
3899
100028f8:       03 ff fd 23     l.j 10001d84 
3900
 
3901
100028fc <__udivsi3>:
3902
 
3903
long udivmodsi4 ();
3904
 
3905
long
3906
__udivsi3 (long a, long b)
3907
{
3908
100028fc:       d7 e1 4f fc     l.sw -4(r1),r9
3909
10002900:       d7 e1 0f f8     l.sw -8(r1),r1
3910
  return udivmodsi4 (a, b, 0);
3911
10002904:       9c a0 00 00     l.addi r5,r0,0
3912
 
3913
long udivmodsi4 ();
3914
 
3915
long
3916
__udivsi3 (long a, long b)
3917
{
3918
10002908:       9c 21 ff f8     l.addi r1,r1,-8
3919
  return udivmodsi4 (a, b, 0);
3920
1000290c:       04 00 00 40     l.jal 10002a0c 
3921
}
3922
10002910:       9c 21 00 08     l.addi r1,r1,8
3923
10002914:       85 21 ff fc     l.lwz r9,-4(r1)
3924
10002918:       84 21 ff f8     l.lwz r1,-8(r1)
3925
1000291c:       44 00 48 00     l.jr r9
3926
 
3927
10002920 <__umodsi3>:
3928
 
3929
long
3930
__umodsi3 (long a, long b)
3931
{
3932
10002920:       d7 e1 4f fc     l.sw -4(r1),r9
3933
10002924:       d7 e1 0f f8     l.sw -8(r1),r1
3934
  return udivmodsi4 (a, b, 1);
3935
10002928:       9c a0 00 01     l.addi r5,r0,1
3936
  return udivmodsi4 (a, b, 0);
3937
}
3938
 
3939
long
3940
__umodsi3 (long a, long b)
3941
{
3942
1000292c:       9c 21 ff f8     l.addi r1,r1,-8
3943
  return udivmodsi4 (a, b, 1);
3944
10002930:       04 00 00 37     l.jal 10002a0c 
3945
}
3946
10002934:       9c 21 00 08     l.addi r1,r1,8
3947
10002938:       85 21 ff fc     l.lwz r9,-4(r1)
3948
1000293c:       84 21 ff f8     l.lwz r1,-8(r1)
3949
10002940:       44 00 48 00     l.jr r9
3950
 
3951
10002944 <__divsi3>:
3952
 
3953
long udivmodsi4 ();
3954
 
3955
long
3956
__divsi3 (long a, long b)
3957
{
3958
10002944:       d7 e1 17 f8     l.sw -8(r1),r2
3959
10002948:       d7 e1 4f fc     l.sw -4(r1),r9
3960
1000294c:       d7 e1 0f f4     l.sw -12(r1),r1
3961
  int neg = 0;
3962
  long res;
3963
 
3964
  if (a < 0)
3965
10002950:       bd 63 00 00     l.sfgesi r3,0
3966
 
3967
long udivmodsi4 ();
3968
 
3969
long
3970
__divsi3 (long a, long b)
3971
{
3972
10002954:       9c 21 ff f4     l.addi r1,r1,-12
3973
  int neg = 0;
3974
10002958:       9c 40 00 00     l.addi r2,r0,0
3975
  long res;
3976
 
3977
  if (a < 0)
3978
1000295c:       0c 00 00 0d     l.bnf 10002990 <__divsi3+0x4c>
3979
    {
3980
      a = -a;
3981
      neg = !neg;
3982
    }
3983
 
3984
  if (b < 0)
3985
10002960:       bd 64 00 00     l.sfgesi r4,0
3986
10002964:       0c 00 00 0f     l.bnf 100029a0 <__divsi3+0x5c>
3987
    {
3988
      b = -b;
3989
      neg = !neg;
3990
    }
3991
 
3992
  res = udivmodsi4 (a, b, 0);
3993
10002968:       9c a0 00 00     l.addi r5,r0,0
3994
1000296c:       04 00 00 28     l.jal 10002a0c 
3995
 
3996
  if (neg)
3997
10002970:       bc 02 00 00     l.sfeqi r2,0
3998
10002974:       10 00 00 02     l.bf 1000297c <__divsi3+0x38>
3999
    res = -res;
4000
10002978:       e1 60 58 02     l.sub r11,r0,r11
4001
 
4002
  return res;
4003
}
4004
1000297c:       9c 21 00 0c     l.addi r1,r1,12
4005
10002980:       85 21 ff fc     l.lwz r9,-4(r1)
4006
10002984:       84 21 ff f4     l.lwz r1,-12(r1)
4007
10002988:       84 41 ff f8     l.lwz r2,-8(r1)
4008
1000298c:       44 00 48 00     l.jr r9
4009
    {
4010
      a = -a;
4011
      neg = !neg;
4012
    }
4013
 
4014
  if (b < 0)
4015
10002990:       bd 64 00 00     l.sfgesi r4,0
4016
  int neg = 0;
4017
  long res;
4018
 
4019
  if (a < 0)
4020
    {
4021
      a = -a;
4022
10002994:       e0 60 18 02     l.sub r3,r0,r3
4023
      neg = !neg;
4024
10002998:       9c 40 00 01     l.addi r2,r0,1
4025
    }
4026
 
4027
  if (b < 0)
4028
1000299c:       13 ff ff f3     l.bf 10002968 <__divsi3+0x24>
4029
    {
4030
      b = -b;
4031
100029a0:       e0 80 20 02     l.sub r4,r0,r4
4032
100029a4:       ac 42 00 01     l.xori r2,r2,1
4033
100029a8:       03 ff ff f0     l.j 10002968 <__divsi3+0x24>
4034
 
4035
100029ac <__modsi3>:
4036
  return res;
4037
}
4038
 
4039
long
4040
__modsi3 (long a, long b)
4041
{
4042
100029ac:       d7 e1 4f fc     l.sw -4(r1),r9
4043
100029b0:       d7 e1 0f f8     l.sw -8(r1),r1
4044
  int neg = 0;
4045
  long res;
4046
 
4047
  if (a < 0)
4048
100029b4:       bd 63 00 00     l.sfgesi r3,0
4049
  return res;
4050
}
4051
 
4052
long
4053
__modsi3 (long a, long b)
4054
{
4055
100029b8:       9c 21 ff f8     l.addi r1,r1,-8
4056
100029bc:       b8 c4 00 9f     l.srai r6,r4,0x1f
4057
  int neg = 0;
4058
  long res;
4059
 
4060
  if (a < 0)
4061
100029c0:       0c 00 00 09     l.bnf 100029e4 <__modsi3+0x38>
4062
100029c4:       e0 86 20 05     l.xor r4,r6,r4
4063
    }
4064
 
4065
  if (b < 0)
4066
    b = -b;
4067
 
4068
  res = udivmodsi4 (a, b, 1);
4069
100029c8:       9c a0 00 01     l.addi r5,r0,1
4070
100029cc:       e0 84 30 02     l.sub r4,r4,r6
4071
100029d0:       04 00 00 0f     l.jal 10002a0c 
4072
 
4073
  if (neg)
4074
    res = -res;
4075
 
4076
  return res;
4077
}
4078
100029d4:       9c 21 00 08     l.addi r1,r1,8
4079
100029d8:       85 21 ff fc     l.lwz r9,-4(r1)
4080
100029dc:       84 21 ff f8     l.lwz r1,-8(r1)
4081
100029e0:       44 00 48 00     l.jr r9
4082
100029e4:       e0 86 20 05     l.xor r4,r6,r4
4083
    }
4084
 
4085
  if (b < 0)
4086
    b = -b;
4087
 
4088
  res = udivmodsi4 (a, b, 1);
4089
100029e8:       e0 60 18 02     l.sub r3,r0,r3
4090
100029ec:       9c a0 00 01     l.addi r5,r0,1
4091
100029f0:       e0 84 30 02     l.sub r4,r4,r6
4092
100029f4:       04 00 00 06     l.jal 10002a0c 
4093
 
4094
  if (neg)
4095
    res = -res;
4096
 
4097
  return res;
4098
}
4099
100029f8:       9c 21 00 08     l.addi r1,r1,8
4100
    b = -b;
4101
 
4102
  res = udivmodsi4 (a, b, 1);
4103
 
4104
  if (neg)
4105
    res = -res;
4106
100029fc:       e1 60 58 02     l.sub r11,r0,r11
4107
 
4108
  return res;
4109
}
4110
10002a00:       85 21 ff fc     l.lwz r9,-4(r1)
4111
10002a04:       84 21 ff f8     l.lwz r1,-8(r1)
4112
10002a08:       44 00 48 00     l.jr r9
4113
 
4114
10002a0c :
4115
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
4116
.  */
4117
 
4118
unsigned long
4119
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
4120
{
4121
10002a0c:       d7 e1 0f fc     l.sw -4(r1),r1
4122
  unsigned long bit = 1;
4123
  unsigned long res = 0;
4124
 
4125
  while (den < num && bit && !(den & (1L<<31)))
4126
10002a10:       e4 64 18 00     l.sfgeu r4,r3
4127
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
4128
.  */
4129
 
4130
unsigned long
4131
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
4132
{
4133
10002a14:       9c 21 ff fc     l.addi r1,r1,-4
4134
  unsigned long bit = 1;
4135
  unsigned long res = 0;
4136
 
4137
  while (den < num && bit && !(den & (1L<<31)))
4138
10002a18:       10 00 00 26     l.bf 10002ab0 
4139
10002a1c:       bd 64 00 00     l.sfgesi r4,0
4140
.  */
4141
 
4142
unsigned long
4143
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
4144
{
4145
  unsigned long bit = 1;
4146
10002a20:       9c c0 00 01     l.addi r6,r0,1
4147
  unsigned long res = 0;
4148
 
4149
  while (den < num && bit && !(den & (1L<<31)))
4150
10002a24:       10 00 00 06     l.bf 10002a3c 
4151
10002a28:       00 00 00 13     l.j 10002a74 
4152
10002a2c:       bd 88 00 00     l.sfltsi r8,0
4153
10002a30:       0c 00 00 0e     l.bnf 10002a68 
4154
10002a34:       bd 84 00 00     l.sfltsi r4,0
4155
10002a38:       10 00 00 0f     l.bf 10002a74 
4156
    {
4157
      den <<=1;
4158
      bit <<=1;
4159
10002a3c:       e0 c6 30 00     l.add r6,r6,r6
4160
  unsigned long bit = 1;
4161
  unsigned long res = 0;
4162
 
4163
  while (den < num && bit && !(den & (1L<<31)))
4164
    {
4165
      den <<=1;
4166
10002a40:       e0 84 20 00     l.add r4,r4,r4
4167
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
4168
{
4169
  unsigned long bit = 1;
4170
  unsigned long res = 0;
4171
 
4172
  while (den < num && bit && !(den & (1L<<31)))
4173
10002a44:       e1 00 30 02     l.sub r8,r0,r6
4174
10002a48:       e4 43 20 00     l.sfgtu r3,r4
4175
10002a4c:       9c e0 00 01     l.addi r7,r0,1
4176
10002a50:       e1 08 30 04     l.or r8,r8,r6
4177
10002a54:       10 00 00 02     l.bf 10002a5c 
4178
10002a58:       9c e0 00 00     l.addi r7,r0,0
4179
10002a5c:       a4 e7 00 ff     l.andi r7,r7,0xff
4180
10002a60:       bc 07 00 00     l.sfeqi r7,0
4181
10002a64:       0f ff ff f2     l.bnf 10002a2c 
4182
    {
4183
      den <<=1;
4184
      bit <<=1;
4185
    }
4186
  while (bit)
4187
10002a68:       bc 26 00 00     l.sfnei r6,0
4188
10002a6c:       a9 66 00 00     l.ori r11,r6,0x0
4189
10002a70:       0c 00 00 0a     l.bnf 10002a98 
4190
  unsigned long res = 0;
4191
 
4192
  while (den < num && bit && !(den & (1L<<31)))
4193
    {
4194
      den <<=1;
4195
      bit <<=1;
4196
10002a74:       9d 60 00 00     l.addi r11,r0,0
4197
    }
4198
  while (bit)
4199
    {
4200
      if (num >= den)
4201
10002a78:       e4 83 20 00     l.sfltu r3,r4
4202
10002a7c:       10 00 00 03     l.bf 10002a88 
4203
        {
4204
          num -= den;
4205
10002a80:       e0 63 20 02     l.sub r3,r3,r4
4206
          res |= bit;
4207
10002a84:       e1 6b 30 04     l.or r11,r11,r6
4208
        }
4209
      bit >>=1;
4210
10002a88:       b8 c6 00 41     l.srli r6,r6,0x1
4211
      den >>=1;
4212
10002a8c:       b8 84 00 41     l.srli r4,r4,0x1
4213
  while (den < num && bit && !(den & (1L<<31)))
4214
    {
4215
      den <<=1;
4216
      bit <<=1;
4217
    }
4218
  while (bit)
4219
10002a90:       bc 06 00 00     l.sfeqi r6,0
4220
10002a94:       0f ff ff f9     l.bnf 10002a78 
4221
          res |= bit;
4222
        }
4223
      bit >>=1;
4224
      den >>=1;
4225
    }
4226
  if (modwanted) return num;
4227
10002a98:       bc 05 00 00     l.sfeqi r5,0
4228
10002a9c:       10 00 00 02     l.bf 10002aa4 
4229
10002aa0:       a9 63 00 00     l.ori r11,r3,0x0
4230
  return res;
4231
}
4232
10002aa4:       9c 21 00 04     l.addi r1,r1,4
4233
10002aa8:       84 21 ff fc     l.lwz r1,-4(r1)
4234
10002aac:       44 00 48 00     l.jr r9
4235
udivmodsi4(unsigned long num, unsigned long den, int modwanted)
4236
{
4237
  unsigned long bit = 1;
4238
  unsigned long res = 0;
4239
 
4240
  while (den < num && bit && !(den & (1L<<31)))
4241
10002ab0:       9c c0 00 01     l.addi r6,r0,1
4242
10002ab4:       03 ff ff f0     l.j 10002a74 
4243
 
4244
10002ab8 <__mulsi3>:
4245
 
4246
typedef unsigned int USItype            __attribute__ ((mode (SI)));
4247
 
4248
USItype
4249
__mulsi3 (USItype a, USItype b)
4250
{
4251
10002ab8:       d7 e1 0f fc     l.sw -4(r1),r1
4252
  USItype c = 0;
4253
 
4254
  while (a != 0)
4255
10002abc:       bc 03 00 00     l.sfeqi r3,0
4256
 
4257
typedef unsigned int USItype            __attribute__ ((mode (SI)));
4258
 
4259
USItype
4260
__mulsi3 (USItype a, USItype b)
4261
{
4262
10002ac0:       9c 21 ff fc     l.addi r1,r1,-4
4263
  USItype c = 0;
4264
 
4265
  while (a != 0)
4266
10002ac4:       10 00 00 0d     l.bf 10002af8 <__mulsi3+0x40>
4267
typedef unsigned int USItype            __attribute__ ((mode (SI)));
4268
 
4269
USItype
4270
__mulsi3 (USItype a, USItype b)
4271
{
4272
  USItype c = 0;
4273
10002ac8:       9d 60 00 00     l.addi r11,r0,0
4274
 
4275
  while (a != 0)
4276
    {
4277
      if (a & 1)
4278
10002acc:       a4 a3 00 01     l.andi r5,r3,0x1
4279
10002ad0:       b8 63 00 41     l.srli r3,r3,0x1
4280
10002ad4:       bc 05 00 00     l.sfeqi r5,0
4281
10002ad8:       10 00 00 02     l.bf 10002ae0 <__mulsi3+0x28>
4282
        c += b;
4283
10002adc:       e1 6b 20 00     l.add r11,r11,r4
4284
USItype
4285
__mulsi3 (USItype a, USItype b)
4286
{
4287
  USItype c = 0;
4288
 
4289
  while (a != 0)
4290
10002ae0:       bc 03 00 00     l.sfeqi r3,0
4291
    {
4292
      if (a & 1)
4293
        c += b;
4294
      a >>= 1;
4295
      b <<= 1;
4296
10002ae4:       e0 84 20 00     l.add r4,r4,r4
4297
USItype
4298
__mulsi3 (USItype a, USItype b)
4299
{
4300
  USItype c = 0;
4301
 
4302
  while (a != 0)
4303
10002ae8:       0f ff ff f9     l.bnf 10002acc <__mulsi3+0x14>
4304
      a >>= 1;
4305
      b <<= 1;
4306
    }
4307
 
4308
  return c;
4309
}
4310
10002aec:       9c 21 00 04     l.addi r1,r1,4
4311
10002af0:       84 21 ff fc     l.lwz r1,-4(r1)
4312
10002af4:       44 00 48 00     l.jr r9
4313
typedef unsigned int USItype            __attribute__ ((mode (SI)));
4314
 
4315
USItype
4316
__mulsi3 (USItype a, USItype b)
4317
{
4318
  USItype c = 0;
4319
10002af8:       a9 63 00 00     l.ori r11,r3,0x0
4320
10002afc:       03 ff ff fc     l.j 10002aec <__mulsi3+0x34>
4321
10002b00:       10 00 12 b8     l.bf 100075e0 <_end+0x35d0>
4322
10002b04:       10 00 11 a0     l.bf 10007184 <_end+0x3174>
4323
10002b08:       10 00 11 bc     l.bf 100071f8 <_end+0x31e8>
4324
10002b0c:       10 00 11 f0     l.bf 100072cc <_end+0x32bc>
4325
10002b10:       10 00 12 24     l.bf 100073a0 <_end+0x3390>
4326
10002b14:       10 00 12 58     l.bf 10007474 <_end+0x3464>
4327
10002b18:       10 00 12 78     l.bf 100074f8 <_end+0x34e8>
4328
10002b1c:       10 00 12 98     l.bf 1000757c <_end+0x356c>
4329
10002b20:       10 00 11 10     l.bf 10006f60 <_end+0x2f50>
4330
10002b24:       10 00 18 dc     l.bf 10008e94 <_end+0x4e84>
4331
10002b28:       10 00 16 2c     l.bf 100083d8 <_end+0x43c8>
4332
10002b2c:       10 00 16 2c     l.bf 100083dc <_end+0x43cc>
4333
10002b30:       10 00 16 2c     l.bf 100083e0 <_end+0x43d0>
4334
10002b34:       10 00 16 2c     l.bf 100083e4 <_end+0x43d4>
4335
10002b38:       10 00 16 2c     l.bf 100083e8 <_end+0x43d8>
4336
10002b3c:       10 00 16 2c     l.bf 100083ec <_end+0x43dc>
4337
10002b40:       10 00 16 2c     l.bf 100083f0 <_end+0x43e0>
4338
10002b44:       10 00 18 c4     l.bf 10008e54 <_end+0x4e44>
4339
10002b48:       10 00 18 ac     l.bf 10008df8 <_end+0x4de8>
4340
10002b4c:       10 00 16 2c     l.bf 100083fc <_end+0x43ec>
4341
10002b50:       10 00 16 2c     l.bf 10008400 <_end+0x43f0>
4342
10002b54:       10 00 16 2c     l.bf 10008404 <_end+0x43f4>
4343
10002b58:       10 00 16 2c     l.bf 10008408 <_end+0x43f8>
4344
10002b5c:       10 00 16 2c     l.bf 1000840c <_end+0x43fc>
4345
10002b60:       10 00 16 2c     l.bf 10008410 <_end+0x4400>
4346
10002b64:       10 00 16 2c     l.bf 10008414 <_end+0x4404>
4347
10002b68:       10 00 16 2c     l.bf 10008418 <_end+0x4408>
4348
10002b6c:       10 00 16 2c     l.bf 1000841c <_end+0x440c>
4349
10002b70:       10 00 16 2c     l.bf 10008420 <_end+0x4410>
4350
10002b74:       10 00 16 2c     l.bf 10008424 <_end+0x4414>
4351
10002b78:       10 00 16 2c     l.bf 10008428 <_end+0x4418>
4352
10002b7c:       10 00 16 2c     l.bf 1000842c <_end+0x441c>
4353
10002b80:       10 00 16 2c     l.bf 10008430 <_end+0x4420>
4354
10002b84:       10 00 16 2c     l.bf 10008434 <_end+0x4424>
4355
10002b88:       10 00 16 2c     l.bf 10008438 <_end+0x4428>
4356
10002b8c:       10 00 16 2c     l.bf 1000843c <_end+0x442c>
4357
10002b90:       10 00 16 2c     l.bf 10008440 <_end+0x4430>
4358
10002b94:       10 00 16 2c     l.bf 10008444 <_end+0x4434>
4359
10002b98:       10 00 16 2c     l.bf 10008448 <_end+0x4438>
4360
10002b9c:       10 00 16 2c     l.bf 1000844c <_end+0x443c>
4361
10002ba0:       10 00 16 2c     l.bf 10008450 <_end+0x4440>
4362
10002ba4:       10 00 16 2c     l.bf 10008454 <_end+0x4444>
4363
10002ba8:       10 00 16 2c     l.bf 10008458 <_end+0x4448>
4364
10002bac:       10 00 16 2c     l.bf 1000845c <_end+0x444c>
4365
10002bb0:       10 00 16 2c     l.bf 10008460 <_end+0x4450>
4366
10002bb4:       10 00 16 2c     l.bf 10008464 <_end+0x4454>
4367
10002bb8:       10 00 16 2c     l.bf 10008468 <_end+0x4458>
4368
10002bbc:       10 00 16 2c     l.bf 1000846c <_end+0x445c>
4369
10002bc0:       10 00 16 2c     l.bf 10008470 <_end+0x4460>
4370
10002bc4:       10 00 16 2c     l.bf 10008474 <_end+0x4464>
4371
10002bc8:       10 00 16 2c     l.bf 10008478 <_end+0x4468>
4372
10002bcc:       10 00 16 2c     l.bf 1000847c <_end+0x446c>
4373
10002bd0:       10 00 16 2c     l.bf 10008480 <_end+0x4470>
4374
10002bd4:       10 00 16 2c     l.bf 10008484 <_end+0x4474>
4375
10002bd8:       10 00 16 2c     l.bf 10008488 <_end+0x4478>
4376
10002bdc:       10 00 16 2c     l.bf 1000848c <_end+0x447c>
4377
10002be0:       10 00 16 2c     l.bf 10008490 <_end+0x4480>
4378
10002be4:       10 00 16 2c     l.bf 10008494 <_end+0x4484>
4379
10002be8:       10 00 16 2c     l.bf 10008498 <_end+0x4488>
4380
10002bec:       10 00 16 2c     l.bf 1000849c <_end+0x448c>
4381
10002bf0:       10 00 16 2c     l.bf 100084a0 <_end+0x4490>
4382
10002bf4:       10 00 16 2c     l.bf 100084a4 <_end+0x4494>
4383
10002bf8:       10 00 16 2c     l.bf 100084a8 <_end+0x4498>
4384
10002bfc:       10 00 16 2c     l.bf 100084ac <_end+0x449c>
4385
10002c00:       10 00 18 7c     l.bf 10008df0 <_end+0x4de0>
4386
10002c04:       10 00 16 2c     l.bf 100084b4 <_end+0x44a4>
4387
10002c08:       10 00 16 2c     l.bf 100084b8 <_end+0x44a8>
4388
10002c0c:       10 00 16 2c     l.bf 100084bc <_end+0x44ac>
4389
10002c10:       10 00 16 2c     l.bf 100084c0 <_end+0x44b0>
4390
10002c14:       10 00 16 2c     l.bf 100084c4 <_end+0x44b4>
4391
10002c18:       10 00 16 2c     l.bf 100084c8 <_end+0x44b8>
4392
10002c1c:       10 00 18 68     l.bf 10008dbc <_end+0x4dac>
4393
10002c20:       10 00 18 50     l.bf 10008d60 <_end+0x4d50>
4394
10002c24:       10 00 16 2c     l.bf 100084d4 <_end+0x44c4>
4395
10002c28:       10 00 16 2c     l.bf 100084d8 <_end+0x44c8>
4396
10002c2c:       10 00 16 2c     l.bf 100084dc <_end+0x44cc>
4397
10002c30:       10 00 16 2c     l.bf 100084e0 <_end+0x44d0>
4398
10002c34:       10 00 16 2c     l.bf 100084e4 <_end+0x44d4>
4399
10002c38:       10 00 16 2c     l.bf 100084e8 <_end+0x44d8>
4400
10002c3c:       10 00 16 2c     l.bf 100084ec <_end+0x44dc>
4401
10002c40:       10 00 18 3c     l.bf 10008d30 <_end+0x4d20>
4402
10002c44:       10 00 16 2c     l.bf 100084f4 <_end+0x44e4>
4403
10002c48:       10 00 16 2c     l.bf 100084f8 <_end+0x44e8>
4404
10002c4c:       10 00 16 2c     l.bf 100084fc <_end+0x44ec>
4405
10002c50:       10 00 18 1c     l.bf 10008cc0 <_end+0x4cb0>
4406
10002c54:       10 00 16 2c     l.bf 10008504 <_end+0x44f4>
4407
10002c58:       10 00 16 2c     l.bf 10008508 <_end+0x44f8>
4408
10002c5c:       10 00 17 34     l.bf 1000892c <_end+0x491c>
4409
10002c60:       10 00 16 2c     l.bf 10008510 <_end+0x4500>
4410
10002c64:       10 00 16 2c     l.bf 10008514 <_end+0x4504>
4411
10002c68:       10 00 16 2c     l.bf 10008518 <_end+0x4508>
4412
10002c6c:       10 00 16 2c     l.bf 1000851c <_end+0x450c>
4413
10002c70:       10 00 18 1c     l.bf 10008ce0 <_end+0x4cd0>
4414
10002c74:       41 73 73 65     *unknown*
4415
10002c78:       72 74 20 66     *unknown*
4416
10002c7c:       61 69 6c 65     *unknown*
4417
10002c80:       64 3a 20 25     *unknown*
4418
10002c84:       73 20 28 25     *unknown*
4419
10002c88:       73 3a 25 64     *unknown*
4420
10002c8c:       29 0a 00 22     *unknown*
4421
10002c90:       53 59 53 43     *unknown*
4422
10002c94:       41 4c 4c 21     *unknown*
4423
10002c98:       22 00 2e 2e     *unknown*
4424
10002c9c:       2f 63 6f 6d     *unknown*
4425
10002ca0:       6d 6f 6e 2f     *unknown*
4426
10002ca4:       65 78 63 65     *unknown*
4427
10002ca8:       70 74 69 6f     *unknown*
4428
10002cac:       6e 2e 63 00     *unknown*
4429
10002cb0:       22 42 52 45     *unknown*
4430
10002cb4:       41 4b 21 22     *unknown*
4431
10002cb8:       00 22 45 58     l.j 10894218 <_end+0x890208>
4432
10002cbc:       54 5f 49 4e     *unknown*
4433
10002cc0:       54 21 22 00     *unknown*
4434
10002cc4:       22 46 41 55     *unknown*
4435
10002cc8:       4c 54 22 00     *unknown*
4436
10002ccc:       22 4d 55 4c     *unknown*
4437
10002cd0:       54 21 22 00     *unknown*
4438
10002cd4:       22 55 4d 55     *unknown*
4439
10002cd8:       4c 54 21 22     *unknown*
4440
10002cdc:       00 22 44 49     l.j 10893e00 <_end+0x88fdf0>
4441
10002ce0:       56 21 22 00     *unknown*
4442
10002ce4:       22 55 44 49     *unknown*
4443
10002ce8:       56 21 22 00     *unknown*
4444
10002cec:       22 55 4e 4b     *unknown*
4445
10002cf0:       4e 4f 57 4e     *unknown*
4446
10002cf4:       22 00 72 65     *unknown*
4447
10002cf8:       63 75 72 73     *unknown*
4448
10002cfc:       69 76 65 5f     *unknown*
4449
10002d00:       69 6e 74 20     *unknown*
4450
10002d04:       3d 3d 20 30     *unknown*
4451
10002d08:       00 0a 54 65     l.j 10297e9c <_end+0x293e8c>
4452
10002d0c:       73 74 3a 0a     *unknown*
4453
10002d10:       00 31 2e 20     l.j 10c4e590 <_end+0xc4a580>
4454
10002d14:       49 6e 69 74     *unknown*
4455
10002d18:       69 61 6c 69     *unknown*
4456
10002d1c:       73 65 64 20     *unknown*
4457
10002d20:       64 61 74 61     *unknown*
4458
10002d24:       0a 00 76 61     *unknown*
4459
10002d28:       72 20 3d 3d     *unknown*
4460
10002d2c:       20 30 78 31     *unknown*
4461
10002d30:       32 33 34 00     *unknown*
4462
10002d34:       74 65 73 74     *unknown*
4463
10002d38:       2e 63 00 75     *unknown*
4464
10002d3c:       76 61 72 20     *unknown*
4465
10002d40:       3d 3d 20 30     *unknown*
4466
10002d44:       78 30 00 32     *unknown*
4467
10002d48:       2e 20 4d 75     *unknown*
4468
10002d4c:       6c 74 69 70     *unknown*
4469
10002d50:       6c 79 0a 00     *unknown*
4470
10002d54:       76 61 72 20     *unknown*
4471
10002d58:       3d 3d 20 31     *unknown*
4472
10002d5c:       33 39 38 30     *unknown*
4473
10002d60:       00 76 61 72     l.j 11d9b328 <_end+0x1d97318>
4474
10002d64:       20 3d 3d 20     *unknown*
4475
10002d68:       2d 33 00 76     *unknown*
4476
10002d6c:       61 72 20 3d     *unknown*
4477
10002d70:       3d 20 2d 36     *unknown*
4478
10002d74:       35 00 76 61     *unknown*
4479
10002d78:       72 20 3d 3d     *unknown*
4480
10002d7c:       20 28 2d 35     *unknown*
4481
10002d80:       2a 2d 31 33     *unknown*
4482
10002d84:       29 00 76 61     *unknown*
4483
10002d88:       72 20 3d 3d     *unknown*
4484
10002d8c:       20 28 2d 31     *unknown*
4485
10002d90:       32 33 31 32     *unknown*
4486
10002d94:       33 34 31 35     *unknown*
4487
10002d98:       2a 39 36 36     *unknown*
4488
10002d9c:       34 35 36 33     *unknown*
4489
10002da0:       29 00 33 2e     *unknown*
4490
10002da4:       20 44 69 76     *unknown*
4491
10002da8:       69 64 65 0a     *unknown*
4492
10002dac:       00 76 61 72     l.j 11d9b374 <_end+0x1d97364>
4493
10002db0:       20 3d 3d 20     *unknown*
4494
10002db4:       32 37 39 36     *unknown*
4495
10002db8:       00 76 61 72     l.j 11d9b380 <_end+0x1d97370>
4496
10002dbc:       20 3d 3d 20     *unknown*
4497
10002dc0:       39 36 00 76     *unknown*
4498
10002dc4:       61 72 20 3d     *unknown*
4499
10002dc8:       3d 20 2d 36     *unknown*
4500
10002dcc:       37 00 34 2e     *unknown*
4501
10002dd0:       20 53 68 69     *unknown*
4502
10002dd4:       66 74 20 6c     *unknown*
4503
10002dd8:       65 66 74 0a     *unknown*
4504
10002ddc:       00 76 61 72     l.j 11d9b3a4 <_end+0x1d97394>
4505
10002de0:       20 3d 3d 20     *unknown*
4506
10002de4:       30 78 38 30     *unknown*
4507
10002de8:       30 30 30 30     *unknown*
4508
10002dec:       30 30 00 35     *unknown*
4509
10002df0:       2e 20 53 68     *unknown*
4510
10002df4:       69 66 74 20     *unknown*
4511
10002df8:       72 69 67 68     *unknown*
4512
10002dfc:       74 0a 00 75     *unknown*
4513
10002e00:       76 61 72 20     *unknown*
4514
10002e04:       3d 3d 20 30     *unknown*
4515
10002e08:       78 34 30 30     *unknown*
4516
10002e0c:       30 30 30 30     *unknown*
4517
10002e10:       30 00 75 76     *unknown*
4518
10002e14:       61 72 20 3d     *unknown*
4519
10002e18:       3d 20 30 78     *unknown*
4520
10002e1c:       30 30 30 30     *unknown*
4521
10002e20:       30 30 30 31     *unknown*
4522
10002e24:       00 36 2e 20     l.j 10d8e6a4 <_end+0xd8a694>
4523
10002e28:       53 68 69 66     *unknown*
4524
10002e2c:       74 20 72 69     *unknown*
4525
10002e30:       67 68 74 20     *unknown*
4526
10002e34:       61 72 69 74     *unknown*
4527
10002e38:       68 6d 65 74     *unknown*
4528
10002e3c:       69 63 0a 00     *unknown*
4529
10002e40:       76 61 72 20     *unknown*
4530
10002e44:       3d 3d 20 30     *unknown*
4531
10002e48:       78 43 30 30     *unknown*
4532
10002e4c:       30 30 30 30     *unknown*
4533
10002e50:       30 00 37 2e     *unknown*
4534
10002e54:       20 53 69 67     *unknown*
4535
10002e58:       6e 65 64 20     *unknown*
4536
10002e5c:       63 6f 6d 70     *unknown*
4537
10002e60:       61 72 69 73     *unknown*
4538
10002e64:       69 6f 6e 0a     *unknown*
4539
10002e68:       00 76 61 72     l.j 11d9b430 <_end+0x1d97420>
4540
10002e6c:       20 3c 20 31     *unknown*
4541
10002e70:       00 76 61 72     l.j 11d9b438 <_end+0x1d97428>
4542
10002e74:       20 3c 20 78     *unknown*
4543
10002e78:       00 21 28 76     l.j 1084d050 <_end+0x849040>
4544
10002e7c:       61 72 20 3e     *unknown*
4545
10002e80:       20 78 29 00     *unknown*
4546
10002e84:       76 61 72 20     *unknown*
4547
10002e88:       3e 20 78 00     *unknown*
4548
10002e8c:       78 20 3c 3d     *unknown*
4549
10002e90:       20 76 61 72     *unknown*
4550
10002e94:       00 38 2e 20     l.j 10e0e714 <_end+0xe0a704>
4551
10002e98:       57 6f 72 64     *unknown*
4552
10002e9c:       20 61 63 63     *unknown*
4553
10002ea0:       65 73 73 0a     *unknown*
4554
10002ea4:       00 75 76 61     l.j 11d60828 <_end+0x1d5c818>
4555
10002ea8:       72 20 3d 3d     *unknown*
4556
10002eac:       20 30 78 31     *unknown*
4557
10002eb0:       32 33 34 35     *unknown*
4558
10002eb4:       36 37 38 00     *unknown*
4559
10002eb8:       73 77 20 3d     *unknown*
4560
10002ebc:       3d 20 30 78     *unknown*
4561
10002ec0:       35 36 37 38     *unknown*
4562
10002ec4:       00 2a 70 73     l.j 10a9f090 <_end+0xa9b080>
4563
10002ec8:       77 2b 2b 20     *unknown*
4564
10002ecc:       3d 3d 20 30     *unknown*
4565
10002ed0:       78 31 32 33     *unknown*
4566
10002ed4:       34 00 2a 70     *unknown*
4567
10002ed8:       73 77 2b 2b     *unknown*
4568
10002edc:       20 3d 3d 20     *unknown*
4569
10002ee0:       30 78 35 36     *unknown*
4570
10002ee4:       37 38 00 2a     *unknown*
4571
10002ee8:       70 73 77 2b     *unknown*
4572
10002eec:       2b 20 3d 3d     *unknown*
4573
10002ef0:       20 30 78 63     *unknown*
4574
10002ef4:       61 66 65 00     *unknown*
4575
10002ef8:       2a 70 73 77     *unknown*
4576
10002efc:       2b 2b 20 3d     *unknown*
4577
10002f00:       3d 20 30 78     *unknown*
4578
10002f04:       62 61 62 65     *unknown*
4579
10002f08:       00 39 2e 20     l.j 10e4e788 <_end+0xe4a778>
4580
10002f0c:       42 79 74 65     *unknown*
4581
10002f10:       20 61 63 63     *unknown*
4582
10002f14:       65 73 73 0a     *unknown*
4583
10002f18:       00 73 62 20     l.j 11cdb798 <_end+0x1cd7788>
4584
10002f1c:       3d 3d 20 30     *unknown*
4585
10002f20:       78 37 38 00     *unknown*
4586
10002f24:       2a 70 73 62     *unknown*
4587
10002f28:       2b 2b 20 3d     *unknown*
4588
10002f2c:       3d 20 30 78     *unknown*
4589
10002f30:       31 32 00 2a     *unknown*
4590
10002f34:       70 73 62 2b     *unknown*
4591
10002f38:       2b 20 3d 3d     *unknown*
4592
10002f3c:       20 30 78 33     *unknown*
4593
10002f40:       34 00 2a 70     *unknown*
4594
10002f44:       73 62 2b 2b     *unknown*
4595
10002f48:       20 3d 3d 20     *unknown*
4596
10002f4c:       30 78 35 36     *unknown*
4597
10002f50:       00 2a 70 73     l.j 10a9f11c <_end+0xa9b10c>
4598
10002f54:       62 2b 2b 20     *unknown*
4599
10002f58:       3d 3d 20 30     *unknown*
4600
10002f5c:       78 37 38 00     *unknown*
4601
10002f60:       75 76 61 72     *unknown*
4602
10002f64:       20 3d 3d 20     *unknown*
4603
10002f68:       30 78 61 62     *unknown*
4604
10002f6c:       33 34 35 36     *unknown*
4605
10002f70:       37 38 00 75     *unknown*
4606
10002f74:       76 61 72 20     *unknown*
4607
10002f78:       3d 3d 20 30     *unknown*
4608
10002f7c:       78 61 62 63     *unknown*
4609
10002f80:       64 35 36 37     *unknown*
4610
10002f84:       38 00 75 76     *unknown*
4611
10002f88:       61 72 20 3d     *unknown*
4612
10002f8c:       3d 20 30 78     *unknown*
4613
10002f90:       61 62 63 64     *unknown*
4614
10002f94:       65 66 37 38     *unknown*
4615
10002f98:       00 75 76 61     l.j 11d6091c <_end+0x1d5c90c>
4616
10002f9c:       72 20 3d 3d     *unknown*
4617
10002fa0:       20 30 78 61     *unknown*
4618
10002fa4:       62 63 64 65     *unknown*
4619
10002fa8:       66 30 31 00     *unknown*
4620
10002fac:       31 30 2e 20     *unknown*
4621
10002fb0:       43 6f 6d 70     *unknown*
4622
10002fb4:       61 72 69 73     *unknown*
4623
10002fb8:       69 6f 6e 0a     *unknown*
4624
10002fbc:       00 2d 20 49     l.j 10b4b0e0 <_end+0xb470d0>
4625
10002fc0:       6e 63 6f 72     *unknown*
4626
10002fc4:       72 65 63 74     *unknown*
4627
10002fc8:       20 63 6f 6d     *unknown*
4628
10002fcc:       70 61 72 69     *unknown*
4629
10002fd0:       73 69 6f 6e     *unknown*
4630
10002fd4:       0a 00 00 00     *unknown*

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.