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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libffi/] [src/] [sh/] [sysv.S] - Blame information for rev 732

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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