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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libffi/] [src/] [sh/] [sysv.S] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* -----------------------------------------------------------------------
2
   sysv.S - Copyright (c) 2002, 2003, 2004 Kaz Kojima
3
 
4
   SuperH Foreign Function Interface
5
 
6
   Permission is hereby granted, free of charge, to any person obtaining
7
   a copy of this software and associated documentation files (the
8
   ``Software''), to deal in the Software without restriction, including
9
   without limitation the rights to use, copy, modify, merge, publish,
10
   distribute, sublicense, and/or sell copies of the Software, and to
11
   permit persons to whom the Software is furnished to do so, subject to
12
   the following conditions:
13
 
14
   The above copyright notice and this permission notice shall be included
15
   in all copies or substantial portions of the Software.
16
 
17
   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
18
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21
   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22
   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
   OTHER DEALINGS IN THE SOFTWARE.
24
   ----------------------------------------------------------------------- */
25
 
26
#define LIBFFI_ASM
27
#include 
28
#include 
29
#ifdef HAVE_MACHINE_ASM_H
30
#include 
31
#else
32
/* XXX these lose for some platforms, I'm sure. */
33
#define CNAME(x) x
34
#define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x):
35
#endif
36
 
37
#if defined(__HITACHI__)
38
#define STRUCT_VALUE_ADDRESS_WITH_ARG 1
39
#else
40
#define STRUCT_VALUE_ADDRESS_WITH_ARG 0
41
#endif
42
 
43
.text
44
 
45
        # r4:   ffi_prep_args
46
        # r5:   &ecif
47
        # r6:   bytes
48
        # r7:   flags
49
        # sp+0: rvalue
50
        # sp+4: fn
51
 
52
        # This assumes we are using gas.
53
ENTRY(ffi_call_SYSV)
54
        # Save registers
55
.LFB1:
56
        mov.l   r8,@-r15
57
.LCFI0:
58
        mov.l   r9,@-r15
59
.LCFI1:
60
        mov.l   r10,@-r15
61
.LCFI2:
62
        mov.l   r12,@-r15
63
.LCFI3:
64
        mov.l   r14,@-r15
65
.LCFI4:
66
        sts.l   pr,@-r15
67
.LCFI5:
68
        mov     r15,r14
69
.LCFI6:
70
#if defined(__SH4__)
71
        mov     r6,r8
72
        mov     r7,r9
73
 
74
        sub     r6,r15
75
        add     #-16,r15
76
        mov     #~7,r0
77
        and     r0,r15
78
 
79
        mov     r4,r0
80
        jsr     @r0
81
         mov    r15,r4
82
 
83
        mov     r9,r1
84
        shlr8   r9
85
        shlr8   r9
86
        shlr8   r9
87
 
88
        mov     #FFI_TYPE_STRUCT,r2
89
        cmp/eq  r2,r9
90
        bf      1f
91
#if STRUCT_VALUE_ADDRESS_WITH_ARG
92
        mov.l   @r15+,r4
93
        bra     2f
94
         mov    #5,r2
95
#else
96
        mov.l   @r15+,r10
97
#endif
98
1:
99
        mov     #4,r2
100
2:
101
        mov     #4,r3
102
 
103
L_pass:
104
        cmp/pl  r8
105
        bf      L_call_it
106
 
107
        mov     r1,r0
108
        and     #3,r0
109
 
110
L_pass_d:
111
        cmp/eq  #FFI_TYPE_DOUBLE,r0
112
        bf      L_pass_f
113
 
114
        mov     r3,r0
115
        and     #1,r0
116
        tst     r0,r0
117
        bt      1f
118
        add     #1,r3
119
1:
120
        mov     #12,r0
121
        cmp/hs  r0,r3
122
        bt/s    3f
123
         shlr2  r1
124
        bsr     L_pop_d
125
         nop
126
3:
127
        add     #2,r3
128
        bra     L_pass
129
         add    #-8,r8
130
 
131
L_pop_d:
132
        mov     r3,r0
133
        add     r0,r0
134
        add     r3,r0
135
        add     #-12,r0
136
        braf    r0
137
         nop
138
#ifdef __LITTLE_ENDIAN__
139
        fmov.s  @r15+,fr5
140
        rts
141
         fmov.s @r15+,fr4
142
        fmov.s  @r15+,fr7
143
        rts
144
         fmov.s @r15+,fr6
145
        fmov.s  @r15+,fr9
146
        rts
147
         fmov.s @r15+,fr8
148
        fmov.s  @r15+,fr11
149
        rts
150
         fmov.s @r15+,fr10
151
#else
152
        fmov.s  @r15+,fr4
153
        rts
154
         fmov.s @r15+,fr5
155
        fmov.s  @r15+,fr6
156
        rts
157
         fmov.s @r15+,fr7
158
        fmov.s  @r15+,fr8
159
        rts
160
         fmov.s @r15+,fr9
161
        fmov.s  @r15+,fr10
162
        rts
163
         fmov.s @r15+,fr11
164
#endif
165
 
166
L_pass_f:
167
        cmp/eq  #FFI_TYPE_FLOAT,r0
168
        bf      L_pass_i
169
 
170
        mov     #12,r0
171
        cmp/hs  r0,r3
172
        bt/s    2f
173
         shlr2  r1
174
        bsr     L_pop_f
175
         nop
176
2:
177
        add     #1,r3
178
        bra     L_pass
179
         add    #-4,r8
180
 
181
L_pop_f:
182
        mov     r3,r0
183
        shll2   r0
184
        add     #-16,r0
185
        braf    r0
186
         nop
187
#ifdef __LITTLE_ENDIAN__
188
        rts
189
         fmov.s @r15+,fr5
190
        rts
191
         fmov.s @r15+,fr4
192
        rts
193
         fmov.s @r15+,fr7
194
        rts
195
         fmov.s @r15+,fr6
196
        rts
197
         fmov.s @r15+,fr9
198
        rts
199
         fmov.s @r15+,fr8
200
        rts
201
         fmov.s @r15+,fr11
202
        rts
203
         fmov.s @r15+,fr10
204
#else
205
        rts
206
         fmov.s @r15+,fr4
207
        rts
208
         fmov.s @r15+,fr5
209
        rts
210
         fmov.s @r15+,fr6
211
        rts
212
         fmov.s @r15+,fr7
213
        rts
214
         fmov.s @r15+,fr8
215
        rts
216
         fmov.s @r15+,fr9
217
        rts
218
         fmov.s @r15+,fr10
219
        rts
220
         fmov.s @r15+,fr11
221
#endif
222
 
223
L_pass_i:
224
        cmp/eq  #FFI_TYPE_INT,r0
225
        bf      L_call_it
226
 
227
        mov     #8,r0
228
        cmp/hs  r0,r2
229
        bt/s    2f
230
         shlr2  r1
231
        bsr     L_pop_i
232
         nop
233
2:
234
        add     #1,r2
235
        bra     L_pass
236
         add    #-4,r8
237
 
238
L_pop_i:
239
        mov     r2,r0
240
        shll2   r0
241
        add     #-16,r0
242
        braf    r0
243
         nop
244
        rts
245
         mov.l  @r15+,r4
246
        rts
247
         mov.l  @r15+,r5
248
        rts
249
         mov.l  @r15+,r6
250
        rts
251
         mov.l  @r15+,r7
252
 
253
L_call_it:
254
        # call function
255
#if (! STRUCT_VALUE_ADDRESS_WITH_ARG)
256
        mov     r10, r2
257
#endif
258
        mov.l  @(28,r14),r1
259
        jsr    @r1
260
         nop
261
 
262
L_ret_d:
263
        mov     #FFI_TYPE_DOUBLE,r2
264
        cmp/eq  r2,r9
265
        bf      L_ret_ll
266
 
267
        mov.l   @(24,r14),r1
268
#ifdef __LITTLE_ENDIAN__
269
        fmov.s  fr1,@r1
270
        add     #4,r1
271
        bra     L_epilogue
272
         fmov.s fr0,@r1
273
#else
274
        fmov.s  fr0,@r1
275
        add     #4,r1
276
        bra     L_epilogue
277
         fmov.s fr1,@r1
278
#endif
279
 
280
L_ret_ll:
281
        mov     #FFI_TYPE_SINT64,r2
282
        cmp/eq  r2,r9
283
        bt/s    1f
284
         mov    #FFI_TYPE_UINT64,r2
285
        cmp/eq  r2,r9
286
        bf      L_ret_f
287
 
288
1:
289
        mov.l   @(24,r14),r2
290
        mov.l   r0,@r2
291
        bra     L_epilogue
292
         mov.l  r1,@(4,r2)
293
 
294
L_ret_f:
295
        mov     #FFI_TYPE_FLOAT,r2
296
        cmp/eq  r2,r9
297
        bf      L_ret_i
298
 
299
        mov.l   @(24,r14),r1
300
        bra     L_epilogue
301
         fmov.s fr0,@r1
302
 
303
L_ret_i:
304
        mov     #FFI_TYPE_INT,r2
305
        cmp/eq  r2,r9
306
        bf      L_epilogue
307
 
308
        mov.l   @(24,r14),r1
309
        bra     L_epilogue
310
         mov.l  r0,@r1
311
 
312
L_epilogue:
313
        # Remove the space we pushed for the args
314
        mov   r14,r15
315
 
316
        lds.l  @r15+,pr
317
        mov.l  @r15+,r14
318
        mov.l  @r15+,r12
319
        mov.l  @r15+,r10
320
        mov.l  @r15+,r9
321
        rts
322
         mov.l  @r15+,r8
323
#else
324
        mov     r6,r8
325
        mov     r7,r9
326
 
327
        sub     r6,r15
328
        add     #-16,r15
329
        mov     #~7,r0
330
        and     r0,r15
331
 
332
        mov     r4,r0
333
        jsr     @r0
334
         mov    r15,r4
335
 
336
        mov     r9,r3
337
        shlr8   r9
338
        shlr8   r9
339
        shlr8   r9
340
 
341
        mov     #FFI_TYPE_STRUCT,r2
342
        cmp/eq  r2,r9
343
        bf      1f
344
#if STRUCT_VALUE_ADDRESS_WITH_ARG
345
        mov.l   @r15+,r4
346
        bra     2f
347
         mov    #5,r2
348
#else
349
        mov.l   @r15+,r10
350
#endif
351
1:
352
        mov     #4,r2
353
2:
354
 
355
L_pass:
356
        cmp/pl  r8
357
        bf      L_call_it
358
 
359
        mov     r3,r0
360
        and     #3,r0
361
 
362
L_pass_d:
363
        cmp/eq  #FFI_TYPE_DOUBLE,r0
364
        bf      L_pass_i
365
 
366
        mov     r15,r0
367
        and     #7,r0
368
        tst     r0,r0
369
        bt      1f
370
        add     #4,r15
371
1:
372
        mov     #8,r0
373
        cmp/hs  r0,r2
374
        bt/s    2f
375
         shlr2  r3
376
        bsr     L_pop_d
377
         nop
378
2:
379
        add     #2,r2
380
        bra     L_pass
381
         add    #-8,r8
382
 
383
L_pop_d:
384
        mov     r2,r0
385
        add     r0,r0
386
        add     r2,r0
387
        add     #-12,r0
388
        add     r0,r0
389
        braf    r0
390
         nop
391
        mov.l   @r15+,r4
392
        rts
393
         mov.l  @r15+,r5
394
        mov.l   @r15+,r5
395
        rts
396
         mov.l  @r15+,r6
397
        mov.l   @r15+,r6
398
        rts
399
         mov.l  @r15+,r7
400
        rts
401
         mov.l  @r15+,r7
402
 
403
L_pass_i:
404
        cmp/eq  #FFI_TYPE_INT,r0
405
        bf      L_call_it
406
 
407
        mov     #8,r0
408
        cmp/hs  r0,r2
409
        bt/s    2f
410
         shlr2  r3
411
        bsr     L_pop_i
412
         nop
413
2:
414
        add     #1,r2
415
        bra     L_pass
416
         add    #-4,r8
417
 
418
L_pop_i:
419
        mov     r2,r0
420
        shll2   r0
421
        add     #-16,r0
422
        braf    r0
423
         nop
424
        rts
425
         mov.l  @r15+,r4
426
        rts
427
         mov.l  @r15+,r5
428
        rts
429
         mov.l  @r15+,r6
430
        rts
431
         mov.l  @r15+,r7
432
 
433
L_call_it:
434
        # call function
435
#if (! STRUCT_VALUE_ADDRESS_WITH_ARG)
436
        mov     r10, r2
437
#endif
438
        mov.l  @(28,r14),r1
439
        jsr    @r1
440
         nop
441
 
442
L_ret_d:
443
        mov     #FFI_TYPE_DOUBLE,r2
444
        cmp/eq  r2,r9
445
        bf      L_ret_ll
446
 
447
        mov.l   @(24,r14),r2
448
        mov.l   r0,@r2
449
        bra     L_epilogue
450
         mov.l  r1,@(4,r2)
451
 
452
L_ret_ll:
453
        mov     #FFI_TYPE_SINT64,r2
454
        cmp/eq  r2,r9
455
        bt/s    1f
456
         mov    #FFI_TYPE_UINT64,r2
457
        cmp/eq  r2,r9
458
        bf      L_ret_i
459
 
460
1:
461
        mov.l   @(24,r14),r2
462
        mov.l   r0,@r2
463
        bra     L_epilogue
464
         mov.l  r1,@(4,r2)
465
 
466
L_ret_i:
467
        mov     #FFI_TYPE_FLOAT,r2
468
        cmp/eq  r2,r9
469
        bt      1f
470
        mov     #FFI_TYPE_INT,r2
471
        cmp/eq  r2,r9
472
        bf      L_epilogue
473
1:
474
        mov.l   @(24,r14),r1
475
        bra     L_epilogue
476
         mov.l  r0,@r1
477
 
478
L_epilogue:
479
        # Remove the space we pushed for the args
480
        mov   r14,r15
481
 
482
        lds.l  @r15+,pr
483
        mov.l  @r15+,r14
484
        mov.l  @r15+,r12
485
        mov.l  @r15+,r10
486
        mov.l  @r15+,r9
487
        rts
488
         mov.l  @r15+,r8
489
#endif
490
.LFE1:
491
.ffi_call_SYSV_end:
492
        .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
493
 
494
.globl  ffi_closure_helper_SYSV
495
 
496
ENTRY(ffi_closure_SYSV)
497
.LFB2:
498
        mov.l   r7,@-r15
499
.LCFI7:
500
        mov.l   r6,@-r15
501
.LCFI8:
502
        mov.l   r5,@-r15
503
.LCFI9:
504
        mov.l   r4,@-r15
505
.LCFIA:
506
        mov.l   r14,@-r15
507
.LCFIB:
508
        sts.l   pr,@-r15
509
 
510
        /* Stack layout:
511
           xx bytes (on stack parameters)
512
           16 bytes (register parameters)
513
            4 bytes (saved frame pointer)
514
            4 bytes (saved return address)
515
           32 bytes (floating register parameters, SH-4 only)
516
            8 bytes (result)
517
            4 bytes (pad)
518
            4 bytes (5th arg)
519
           <- new stack pointer
520
        */
521
.LCFIC:
522
#if defined(__SH4__)
523
        add     #-48,r15
524
#else
525
        add     #-16,r15
526
#endif
527
.LCFID:
528
        mov     r15,r14
529
.LCFIE:
530
 
531
#if defined(__SH4__)
532
        mov     r14,r1
533
        add     #48,r1
534
#ifdef __LITTLE_ENDIAN__
535
        fmov.s  fr10,@-r1
536
        fmov.s  fr11,@-r1
537
        fmov.s  fr8,@-r1
538
        fmov.s  fr9,@-r1
539
        fmov.s  fr6,@-r1
540
        fmov.s  fr7,@-r1
541
        fmov.s  fr4,@-r1
542
        fmov.s  fr5,@-r1
543
#else
544
        fmov.s  fr11,@-r1
545
        fmov.s  fr10,@-r1
546
        fmov.s  fr9,@-r1
547
        fmov.s  fr8,@-r1
548
        fmov.s  fr7,@-r1
549
        fmov.s  fr6,@-r1
550
        fmov.s  fr5,@-r1
551
        fmov.s  fr4,@-r1
552
#endif
553
        mov     r1,r7
554
        mov     r14,r6
555
        add     #56,r6
556
#else
557
        mov     r14,r6
558
        add     #24,r6
559
#endif
560
 
561
        bt/s    10f
562
         mov    r2, r5
563
        mov     r14,r1
564
        add     #8,r1
565
        mov     r1,r5
566
10:
567
 
568
        mov     r14,r1
569
#if defined(__SH4__)
570
        add     #72,r1
571
#else
572
        add     #40,r1
573
#endif
574
        mov.l   r1,@r14
575
 
576
#ifdef PIC
577
        mov.l   L_got,r1
578
        mova    L_got,r0
579
        add     r0,r1
580
        mov.l   L_helper,r0
581
        add     r1,r0
582
#else
583
        mov.l   L_helper,r0
584
#endif
585
        jsr     @r0
586
         mov    r3,r4
587
 
588
        shll    r0
589
        mov     r0,r1
590
        mova    L_table,r0
591
        add     r1,r0
592
        mov.w   @r0,r0
593
        mov     r14,r2
594
        braf    r0
595
         add    #8,r2
596
0:
597
        .align 2
598
#ifdef PIC
599
L_got:
600
        .long   _GLOBAL_OFFSET_TABLE_
601
L_helper:
602
        .long   ffi_closure_helper_SYSV@GOTOFF
603
#else
604
L_helper:
605
        .long   ffi_closure_helper_SYSV
606
#endif
607
L_table:
608
        .short L_case_v - 0b    /* FFI_TYPE_VOID */
609
        .short L_case_i - 0b    /* FFI_TYPE_INT */
610
#if defined(__SH4__)
611
        .short L_case_f - 0b    /* FFI_TYPE_FLOAT */
612
        .short L_case_d - 0b    /* FFI_TYPE_DOUBLE */
613
        .short L_case_d - 0b    /* FFI_TYPE_LONGDOUBLE */
614
#else
615
        .short L_case_i - 0b    /* FFI_TYPE_FLOAT */
616
        .short L_case_ll - 0b   /* FFI_TYPE_DOUBLE */
617
        .short L_case_ll - 0b   /* FFI_TYPE_LONGDOUBLE */
618
#endif
619
        .short L_case_uq - 0b   /* FFI_TYPE_UINT8 */
620
        .short L_case_q - 0b    /* FFI_TYPE_SINT8 */
621
        .short L_case_uh - 0b   /* FFI_TYPE_UINT16 */
622
        .short L_case_h - 0b    /* FFI_TYPE_SINT16 */
623
        .short L_case_i - 0b    /* FFI_TYPE_UINT32 */
624
        .short L_case_i - 0b    /* FFI_TYPE_SINT32 */
625
        .short L_case_ll - 0b   /* FFI_TYPE_UINT64 */
626
        .short L_case_ll - 0b   /* FFI_TYPE_SINT64 */
627
        .short L_case_v - 0b    /* FFI_TYPE_STRUCT */
628
        .short L_case_i - 0b    /* FFI_TYPE_POINTER */
629
 
630
#if defined(__SH4__)
631
L_case_d:
632
#ifdef __LITTLE_ENDIAN__
633
        fmov.s  @r2+,fr1
634
        bra     L_case_v
635
         fmov.s @r2,fr0
636
#else
637
        fmov.s  @r2+,fr0
638
        bra     L_case_v
639
         fmov.s @r2,fr1
640
#endif
641
 
642
L_case_f:
643
        bra     L_case_v
644
         fmov.s @r2,fr0
645
#endif
646
 
647
L_case_ll:
648
        mov.l   @r2+,r0
649
        bra     L_case_v
650
         mov.l  @r2,r1
651
 
652
L_case_i:
653
        bra     L_case_v
654
         mov.l  @r2,r0
655
 
656
L_case_q:
657
#ifdef __LITTLE_ENDIAN__
658
#else
659
        add     #3,r2
660
#endif
661
        bra     L_case_v
662
         mov.b  @r2,r0
663
 
664
L_case_uq:
665
#ifdef __LITTLE_ENDIAN__
666
#else
667
        add     #3,r2
668
#endif
669
        mov.b   @r2,r0
670
        bra     L_case_v
671
         extu.b r0,r0
672
 
673
L_case_h:
674
#ifdef __LITTLE_ENDIAN__
675
#else
676
        add     #2,r2
677
#endif
678
        bra     L_case_v
679
         mov.w  @r2,r0
680
 
681
L_case_uh:
682
#ifdef __LITTLE_ENDIAN__
683
#else
684
        add     #2,r2
685
#endif
686
        mov.w   @r2,r0
687
        extu.w  r0,r0
688
        /* fall through */
689
 
690
L_case_v:
691
#if defined(__SH4__)
692
        add     #48,r15
693
#else
694
        add     #16,r15
695
#endif
696
        lds.l   @r15+,pr
697
        mov.l   @r15+,r14
698
        rts
699
         add    #16,r15
700
.LFE2:
701
.ffi_closure_SYSV_end:
702
        .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
703
 
704
        .section        ".eh_frame","aw",@progbits
705
__FRAME_BEGIN__:
706
        .4byte  .LECIE1-.LSCIE1 /* Length of Common Information Entry */
707
.LSCIE1:
708
        .4byte  0x0     /* CIE Identifier Tag */
709
        .byte   0x1     /* CIE Version */
710
#ifdef PIC
711
        .ascii "zR\0"   /* CIE Augmentation */
712
#else
713
        .byte   0x0     /* CIE Augmentation */
714
#endif
715
        .byte   0x1     /* uleb128 0x1; CIE Code Alignment Factor */
716
        .byte   0x7c    /* sleb128 -4; CIE Data Alignment Factor */
717
        .byte   0x11    /* CIE RA Column */
718
#ifdef PIC
719
        .uleb128 0x1    /* Augmentation size */
720
        .byte   0x10    /* FDE Encoding (pcrel) */
721
#endif
722
        .byte   0xc     /* DW_CFA_def_cfa */
723
        .byte   0xf     /* uleb128 0xf */
724
        .byte   0x0     /* uleb128 0x0 */
725
        .align  2
726
.LECIE1:
727
.LSFDE1:
728
        .4byte  .LEFDE1-.LASFDE1        /* FDE Length */
729
.LASFDE1:
730
        .4byte  .LASFDE1-__FRAME_BEGIN__        /* FDE CIE offset */
731
#ifdef PIC
732
        .4byte  .LFB1-. /* FDE initial location */
733
#else
734
        .4byte  .LFB1   /* FDE initial location */
735
#endif
736
        .4byte  .LFE1-.LFB1      /* FDE address range */
737
#ifdef PIC
738
        .uleb128 0x0    /* Augmentation size */
739
#endif
740
        .byte   0x4     /* DW_CFA_advance_loc4 */
741
        .4byte  .LCFI0-.LFB1
742
        .byte   0xe     /* DW_CFA_def_cfa_offset */
743
        .byte   0x4     /* uleb128 0x4 */
744
        .byte   0x4     /* DW_CFA_advance_loc4 */
745
        .4byte  .LCFI1-.LCFI0
746
        .byte   0xe     /* DW_CFA_def_cfa_offset */
747
        .byte   0x8     /* uleb128 0x4 */
748
        .byte   0x4     /* DW_CFA_advance_loc4 */
749
        .4byte  .LCFI2-.LCFI1
750
        .byte   0xe     /* DW_CFA_def_cfa_offset */
751
        .byte   0xc     /* uleb128 0x4 */
752
        .byte   0x4     /* DW_CFA_advance_loc4 */
753
        .4byte  .LCFI3-.LCFI2
754
        .byte   0xe     /* DW_CFA_def_cfa_offset */
755
        .byte   0x10    /* uleb128 0x4 */
756
        .byte   0x4     /* DW_CFA_advance_loc4 */
757
        .4byte  .LCFI4-.LCFI3
758
        .byte   0xe     /* DW_CFA_def_cfa_offset */
759
        .byte   0x14    /* uleb128 0x4 */
760
        .byte   0x4     /* DW_CFA_advance_loc4 */
761
        .4byte  .LCFI5-.LCFI4
762
        .byte   0xe     /* DW_CFA_def_cfa_offset */
763
        .byte   0x18    /* uleb128 0x4 */
764
        .byte   0x91    /* DW_CFA_offset, column 0x11 */
765
        .byte   0x6     /* uleb128 0x6 */
766
        .byte   0x8e    /* DW_CFA_offset, column 0xe */
767
        .byte   0x5     /* uleb128 0x5 */
768
        .byte   0x8c    /* DW_CFA_offset, column 0xc */
769
        .byte   0x4     /* uleb128 0x4 */
770
        .byte   0x8a    /* DW_CFA_offset, column 0xa */
771
        .byte   0x3     /* uleb128 0x3 */
772
        .byte   0x89    /* DW_CFA_offset, column 0x9 */
773
        .byte   0x2     /* uleb128 0x2 */
774
        .byte   0x88    /* DW_CFA_offset, column 0x8 */
775
        .byte   0x1     /* uleb128 0x1 */
776
        .byte   0x4     /* DW_CFA_advance_loc4 */
777
        .4byte  .LCFI6-.LCFI5
778
        .byte   0xd     /* DW_CFA_def_cfa_register */
779
        .byte   0xe     /* uleb128 0xe */
780
        .align  2
781
.LEFDE1:
782
 
783
.LSFDE3:
784
        .4byte  .LEFDE3-.LASFDE3        /* FDE Length */
785
.LASFDE3:
786
        .4byte  .LASFDE3-__FRAME_BEGIN__        /* FDE CIE offset */
787
#ifdef PIC
788
        .4byte  .LFB2-. /* FDE initial location */
789
#else
790
        .4byte  .LFB2   /* FDE initial location */
791
#endif
792
        .4byte  .LFE2-.LFB2      /* FDE address range */
793
#ifdef PIC
794
        .uleb128 0x0    /* Augmentation size */
795
#endif
796
        .byte   0x4     /* DW_CFA_advance_loc4 */
797
        .4byte  .LCFI7-.LFB2
798
        .byte   0xe     /* DW_CFA_def_cfa_offset */
799
        .byte   0x4     /* uleb128 0x4 */
800
        .byte   0x4     /* DW_CFA_advance_loc4 */
801
        .4byte  .LCFI8-.LCFI7
802
        .byte   0xe     /* DW_CFA_def_cfa_offset */
803
        .byte   0x8     /* uleb128 0x4 */
804
        .byte   0x4     /* DW_CFA_advance_loc4 */
805
        .4byte  .LCFI9-.LCFI8
806
        .byte   0xe     /* DW_CFA_def_cfa_offset */
807
        .byte   0xc     /* uleb128 0x4 */
808
        .byte   0x4     /* DW_CFA_advance_loc4 */
809
        .4byte  .LCFIA-.LCFI9
810
        .byte   0xe     /* DW_CFA_def_cfa_offset */
811
        .byte   0x10    /* uleb128 0x4 */
812
        .byte   0x4     /* DW_CFA_advance_loc4 */
813
        .4byte  .LCFIB-.LCFIA
814
        .byte   0xe     /* DW_CFA_def_cfa_offset */
815
        .byte   0x14    /* uleb128 0x4 */
816
        .byte   0x4     /* DW_CFA_advance_loc4 */
817
        .4byte  .LCFIC-.LCFIB
818
        .byte   0xe     /* DW_CFA_def_cfa_offset */
819
        .byte   0x18    /* uleb128 0x4 */
820
        .byte   0x4     /* DW_CFA_advance_loc4 */
821
        .4byte  .LCFID-.LCFIC
822
        .byte   0xe     /* DW_CFA_def_cfa_offset */
823
#if defined(__SH4__)
824
        .byte   24+48   /* uleb128 24+48 */
825
#else
826
        .byte   24+16   /* uleb128 24+16 */
827
#endif
828
        .byte   0x91    /* DW_CFA_offset, column 0x11 */
829
        .byte   0x6     /* uleb128 0x6 */
830
        .byte   0x8e    /* DW_CFA_offset, column 0xe */
831
        .byte   0x5     /* uleb128 0x5 */
832
        .byte   0x8b    /* DW_CFA_offset, column 0xb */
833
        .byte   0x4     /* uleb128 0x4 */
834
        .byte   0x8a    /* DW_CFA_offset, column 0xa */
835
        .byte   0x3     /* uleb128 0x3 */
836
        .byte   0x89    /* DW_CFA_offset, column 0x9 */
837
        .byte   0x2     /* uleb128 0x2 */
838
        .byte   0x88    /* DW_CFA_offset, column 0x8 */
839
        .byte   0x1     /* uleb128 0x1 */
840
        .byte   0x4     /* DW_CFA_advance_loc4 */
841
        .4byte  .LCFIE-.LCFID
842
        .byte   0xd     /* DW_CFA_def_cfa_register */
843
        .byte   0xe     /* uleb128 0xe */
844
        .align  2
845
.LEFDE3:

powered by: WebSVN 2.1.0

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