OSDN Git Service

* configure.ac: Tidy target case.
[pf3gnuchains/gcc-fork.git] / libffi / src / alpha / osf.S
index 1f6b405..aba6782 100644 (file)
@@ -1,10 +1,8 @@
 /* -----------------------------------------------------------------------
 /* -----------------------------------------------------------------------
-   osf.S - Copyright (c) 1998, 2001 Red Hat
+   osf.S - Copyright (c) 1998, 2001, 2007 Red Hat
    
    Alpha/OSF Foreign Function Interface 
 
    
    Alpha/OSF Foreign Function Interface 
 
-   $Id: osf.S,v 1.1.1.1 1998/11/29 16:48:16 green Exp $
-
    Permission is hereby granted, free of charge, to any person obtaining
    a copy of this software and associated documentation files (the
    ``Software''), to deal in the Software without restriction, including
    Permission is hereby granted, free of charge, to any person obtaining
    a copy of this software and associated documentation files (the
    ``Software''), to deal in the Software without restriction, including
@@ -26,6 +24,7 @@
    ----------------------------------------------------------------------- */
 
 #define LIBFFI_ASM     
    ----------------------------------------------------------------------- */
 
 #define LIBFFI_ASM     
+#include <fficonfig.h>
 #include <ffi.h>
 
        .arch ev6
 #include <ffi.h>
 
        .arch ev6
@@ -41,6 +40,8 @@
        .align  3
        .globl  ffi_call_osf
        .ent    ffi_call_osf
        .align  3
        .globl  ffi_call_osf
        .ent    ffi_call_osf
+       FFI_HIDDEN(ffi_call_osf)
+
 ffi_call_osf:
        .frame  $15, 32, $26, 0
        .mask   0x4008000, -32
 ffi_call_osf:
        .frame  $15, 32, $26, 0
        .mask   0x4008000, -32
@@ -48,12 +49,10 @@ $LFB1:
        addq    $16,$17,$1
        mov     $16, $30
        stq     $26, 0($1)
        addq    $16,$17,$1
        mov     $16, $30
        stq     $26, 0($1)
-$LCFI0:
        stq     $15, 8($1)
        stq     $15, 8($1)
-$LCFI1:
        stq     $18, 16($1)
        mov     $1, $15
        stq     $18, 16($1)
        mov     $1, $15
-$LCFI2:
+$LCFI1:
        .prologue 0
 
        stq     $19, 24($1)
        .prologue 0
 
        stq     $19, 24($1)
@@ -83,6 +82,7 @@ $LCFI2:
        ldq     $19, 24($15)
        ldq     $18, 16($15)
        ldq     $26, 0($15)
        ldq     $19, 24($15)
        ldq     $18, 16($15)
        ldq     $26, 0($15)
+$LCFI2:
        beq     $19, $noretval
 
        # Store the return value out in the proper type.
        beq     $19, $noretval
 
        # Store the return value out in the proper type.
@@ -93,22 +93,26 @@ $LCFI2:
        cmpeq   $18, FFI_TYPE_DOUBLE, $3
        bne     $3, $retdouble
 
        cmpeq   $18, FFI_TYPE_DOUBLE, $3
        bne     $3, $retdouble
 
+       .align  3
 $noretval:
        ldq     $15, 8($15)
        ret
 
 $noretval:
        ldq     $15, 8($15)
        ret
 
+       .align  4
 $retint:
        stq     $0, 0($19)
        nop
        ldq     $15, 8($15)
        ret
 
 $retint:
        stq     $0, 0($19)
        nop
        ldq     $15, 8($15)
        ret
 
+       .align  4
 $retfloat:
        sts     $f0, 0($19)
        nop
        ldq     $15, 8($15)
        ret
 
 $retfloat:
        sts     $f0, 0($19)
        nop
        ldq     $15, 8($15)
        ret
 
+       .align  4
 $retdouble:
        stt     $f0, 0($19)
        nop
 $retdouble:
        stt     $f0, 0($19)
        nop
@@ -125,6 +129,8 @@ $LFE1:
        .align  3
        .globl  ffi_closure_osf
        .ent    ffi_closure_osf
        .align  3
        .globl  ffi_closure_osf
        .ent    ffi_closure_osf
+       FFI_HIDDEN(ffi_closure_osf)
+
 ffi_closure_osf:
        .frame  $30, 16*8, $26, 0
        .mask   0x4000000, -16*8
 ffi_closure_osf:
        .frame  $30, 16*8, $26, 0
        .mask   0x4000000, -16*8
@@ -261,7 +267,7 @@ $load_table:
        .gprel32 $load_32       # FFI_TYPE_INT
        .gprel32 $load_float    # FFI_TYPE_FLOAT
        .gprel32 $load_double   # FFI_TYPE_DOUBLE
        .gprel32 $load_32       # FFI_TYPE_INT
        .gprel32 $load_float    # FFI_TYPE_FLOAT
        .gprel32 $load_double   # FFI_TYPE_DOUBLE
-       .gprel32 $load_double   # FFI_TYPE_LONGDOUBLE
+       .gprel32 $load_none     # FFI_TYPE_LONGDOUBLE
        .gprel32 $load_u8       # FFI_TYPE_UINT8
        .gprel32 $load_s8       # FFI_TYPE_SINT8
        .gprel32 $load_u16      # FFI_TYPE_UINT16
        .gprel32 $load_u8       # FFI_TYPE_UINT8
        .gprel32 $load_s8       # FFI_TYPE_SINT8
        .gprel32 $load_u16      # FFI_TYPE_UINT16
@@ -294,61 +300,62 @@ $load_table:
 #ifdef __ELF__
        .section        .eh_frame,EH_FRAME_FLAGS,@progbits
 __FRAME_BEGIN__:
 #ifdef __ELF__
        .section        .eh_frame,EH_FRAME_FLAGS,@progbits
 __FRAME_BEGIN__:
-       .4byte  $LECIE1-$LSCIE1  # Length of Common Information Entry
+       .4byte  $LECIE1-$LSCIE1 # Length of Common Information Entry
 $LSCIE1:
 $LSCIE1:
-       .4byte  0x0      # CIE Identifier Tag
-       .byte   0x1      # CIE Version
-       .ascii "zR\0"    # CIE Augmentation
-       .byte   0x1      # uleb128 0x1; CIE Code Alignment Factor
-       .byte   0x78     # sleb128 -8; CIE Data Alignment Factor
-       .byte   0x1a     # CIE RA Column
-       .byte   0x1      # uleb128 0x1; Augmentation size
-       .byte   0x1b     # FDE Encoding (pcrel sdata4)
-       .byte   0xc      # DW_CFA_def_cfa
-       .byte   0x1e     # uleb128 0x1e
-       .byte   0x0      # uleb128 0x0
+       .4byte  0x0             # CIE Identifier Tag
+       .byte   0x1             # CIE Version
+       .ascii "zR\0"           # CIE Augmentation
+       .byte   0x1             # uleb128 0x1; CIE Code Alignment Factor
+       .byte   0x78            # sleb128 -8; CIE Data Alignment Factor
+       .byte   26              # CIE RA Column
+       .byte   0x1             # uleb128 0x1; Augmentation size
+       .byte   0x1b            # FDE Encoding (pcrel sdata4)
+       .byte   0xc             # DW_CFA_def_cfa
+       .byte   30              # uleb128 column 30
+       .byte   0               # uleb128 offset 0
        .align 3
 $LECIE1:
 $LSFDE1:
        .align 3
 $LECIE1:
 $LSFDE1:
-       .4byte  $LEFDE1-$LASFDE1         # FDE Length
+       .4byte  $LEFDE1-$LASFDE1                # FDE Length
 $LASFDE1:
 $LASFDE1:
-       .4byte  $LASFDE1-__FRAME_BEGIN__         # FDE CIE offset
-       .4byte  $LFB1-.  # FDE initial location
-       .4byte  $LFE1-$LFB1      # FDE address range
-       .byte   0x0      # uleb128 0x0; Augmentation size
-       .byte   0x4      # DW_CFA_advance_loc4
-       .4byte  $LCFI0-$LFB1
-       .byte   0xe      # DW_CFA_def_cfa_offset
-       .byte   0x30     # uleb128 0x30
-       .byte   0x4      # DW_CFA_advance_loc4
-       .4byte  $LCFI1-$LCFI0
-       .byte   0x9a     # DW_CFA_offset, column 0x1a
-       .byte   0x6      # uleb128 0x6
-       .byte   0x8f     # DW_CFA_offset, column 0xf
-       .byte   0x5      # uleb128 0x5
-       .byte   0x4      # DW_CFA_advance_loc4
+       .4byte  $LASFDE1-__FRAME_BEGIN__        # FDE CIE offset
+       .4byte  $LFB1-.         # FDE initial location
+       .4byte  $LFE1-$LFB1     # FDE address range
+       .byte   0x0             # uleb128 0x0; Augmentation size
+
+       .byte   0x4             # DW_CFA_advance_loc4
+       .4byte  $LCFI1-$LFB1
+       .byte   0x9a            # DW_CFA_offset, column 26
+       .byte   4               # uleb128 4*-8
+       .byte   0x8f            # DW_CFA_offset, column 15
+       .byte   0x3             # uleb128 3*-8
+       .byte   0xc             # DW_CFA_def_cfa
+       .byte   15              # uleb128 column 15
+       .byte   32              # uleb128 offset 32
+
+       .byte   0x4             # DW_CFA_advance_loc4
        .4byte  $LCFI2-$LCFI1
        .4byte  $LCFI2-$LCFI1
-       .byte   0xc      # DW_CFA_def_cfa
-       .byte   0xf      # uleb128 0xf
-       .byte   0x30     # uleb128 0x30
+       .byte   0xda            # DW_CFA_restore, column 26
        .align 3
 $LEFDE1:
 
 $LSFDE3:
        .align 3
 $LEFDE1:
 
 $LSFDE3:
-       .4byte  $LEFDE3-$LASFDE3         # FDE Length
+       .4byte  $LEFDE3-$LASFDE3                # FDE Length
 $LASFDE3:
 $LASFDE3:
-       .4byte  $LASFDE3-__FRAME_BEGIN__         # FDE CIE offset
-       .4byte  $LFB2-.  # FDE initial location
-       .4byte  $LFE2-$LFB2      # FDE address range
-       .byte   0x0      # uleb128 0x0; Augmentation size
-       .byte   0x4      # DW_CFA_advance_loc4
+       .4byte  $LASFDE3-__FRAME_BEGIN__        # FDE CIE offset
+       .4byte  $LFB2-.         # FDE initial location
+       .4byte  $LFE2-$LFB2     # FDE address range
+       .byte   0x0             # uleb128 0x0; Augmentation size
+
+       .byte   0x4             # DW_CFA_advance_loc4
        .4byte  $LCFI5-$LFB2
        .4byte  $LCFI5-$LFB2
-       .byte   0xe      # DW_CFA_def_cfa_offset
-       .byte   0x90,0x1         # uleb128 0x90
-       .byte   0x4      # DW_CFA_advance_loc4
+       .byte   0xe             # DW_CFA_def_cfa_offset
+       .byte   0x80,0x1        # uleb128 128
+
+       .byte   0x4             # DW_CFA_advance_loc4
        .4byte  $LCFI6-$LCFI5
        .4byte  $LCFI6-$LCFI5
-       .byte   0x9a     # DW_CFA_offset, column 0x1a
-       .byte   0x12     # uleb128 0x12
+       .byte   0x9a            # DW_CFA_offset, column 26
+       .byte   16              # uleb128 offset 16*-8
        .align 3
 $LEFDE3:
 #endif
        .align 3
 $LEFDE3:
 #endif