Ignore:
Timestamp:
Nov 2, 2011, 11:13:48 PM (14 years ago)
Author:
dmik
Message:

Use underscores for symbols defined in .asm as they are cdecl.

IBM VAC seemed to detect they are ASM and not use underscores
when referencing them from C.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/gcc-kmk/src/kernel32/asmutil.asm

    r21343 r21783  
    1111                NAME    except
    1212
    13 DATA32  segment dword use32 public 'DATA'
    14 DATA32  ends
    15 CONST32_RO      segment dword use32 public 'CONST'
    16 CONST32_RO      ends
    17 BSS32   segment dword use32 public 'BSS'
    18 BSS32   ends
    19 DGROUP  group BSS32, DATA32
    20         assume  cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT
     13DATA32  segment dword use32 public 'DATA'
     14DATA32  ends
     15CONST32_RO      segment dword use32 public 'CONST'
     16CONST32_RO      ends
     17BSS32   segment dword use32 public 'BSS'
     18BSS32   ends
     19DGROUP  group BSS32, DATA32
     20        assume  cs:FLAT, ds:FLAT, ss:FLAT, es:FLAT
    2121
    2222extrn   Dos32TIB:abs
     
    2424CODE32          SEGMENT DWORD PUBLIC USE32 'CODE'
    2525
    26         PUBLIC getEAX
    27         PUBLIC getEBX
    28 getEAX  proc near
    29         ret
    30 getEAX  endp
    31 
    32 public  getEDX
    33 getEDX  proc    near
    34         mov     EAX, EDX
    35         ret
    36 endp
    37 
    38 getEBX proc near
     26        PUBLIC _getEAX
     27_getEAX proc near
     28        ret
     29_getEAX endp
     30
     31        PUBLIC  _getEDX
     32_getEDX proc    near
     33        mov     EAX, EDX
     34        ret
     35_getEDX endp
     36
     37        PUBLIC _getEBX
     38_getEBX proc near
    3939        mov  eax, ebx
    4040        ret
    41 getEBX  endp
     41_getEBX endp
     42
     43IFNDEF __GNUC__
    4244
    4345        PUBLIC GetFS
     
    5254        mov     fs, eax
    5355        ret
    54 SetFS   endp
    55 
    56         PUBLIC getCS
    57 getCS   proc near
     56SetFS  endp
     57
     58ENDIF ; __GNUC__
     59
     60        PUBLIC _getCS
     61_getCS  proc near
    5862        mov     eax, cs
    5963        ret
    60 getCS   endp
    61 
    62         PUBLIC getDS
    63 getDS   proc near
     64_getCS  endp
     65
     66        PUBLIC _getDS
     67_getDS  proc near
    6468        mov     eax, ds
    6569        ret
    66 getDS   endp
     70_getDS  endp
     71
     72IFNDEF __GNUC__
    6773
    6874        PUBLIC SetReturnFS
     
    7581SetReturnFS endp
    7682
    77         PUBLIC getSS
    78 getSS   proc near
     83ENDIF ; __GNUC__
     84
     85        PUBLIC _getSS
     86_getSS  proc near
    7987        mov     ax, ss
    8088        ret
    81 getSS   endp
    82 
    83         PUBLIC getES
    84 getES   proc near
     89_getSS  endp
     90
     91        PUBLIC _getES
     92_getES  proc near
    8593        mov     eax, es
    8694        ret
    87 getES   endp
    88 
    89         PUBLIC getGS
    90 getGS   proc near
     95_getES  endp
     96
     97        PUBLIC _getGS
     98_getGS  proc near
    9199        mov     eax, gs
    92100        ret
    93 getGS   endp
    94 
    95         PUBLIC getESP
    96 getESP proc near
     101_getGS  endp
     102
     103        PUBLIC _getESP
     104_getESP proc near
    97105        mov     eax, esp
    98106        ret
    99 getESP  endp
     107_getESP endp
     108
     109IFNDEF __GNUC__
    100110
    101111        PUBLIC RestoreOS2FS
     
    106116        ret
    107117RestoreOS2FS endp
     118
     119ENDIF ; __GNUC__
    108120
    109121        PUBLIC _Mul32x32to64
     
    129141_Mul32x32to64 endp
    130142
    131         align 4h
    132 
    133         public _Sub64
    134 _Sub64  proc
     143        align 4h
     144
     145        public _Sub64
     146_Sub64  proc
    135147
    136148; 34    c = a - b;
     
    143155        mov     edi, [ebp+10h]  ;&c
    144156        mov     esi, [ebp+08h]  ;&a
    145         mov     eax,[esi]       ;a.low
    146         mov     edx,[esi+04h]   ;a.high
     157        mov     eax,[esi]       ;a.low
     158        mov     edx,[esi+04h]   ;a.high
    147159        mov     esi, [ebp+0ch]  ;&b
    148         sub     eax,[esi]       ;b.low
    149         sbb     edx,[esi+04h]   ;b.high
     160        sub     eax,[esi]       ;b.low
     161        sbb     edx,[esi+04h]   ;b.high
    150162
    151163        mov     [edi], eax      ;c.low
     
    156168        pop     esi
    157169        leave
    158         ret     
    159 _Sub64  endp
    160 
    161         align 4h
    162 
    163         public _Add64
    164 _Add64  proc
     170        ret
     171_Sub64  endp
     172
     173        align 4h
     174
     175        public _Add64
     176_Add64  proc
    165177
    166178; 25     c = a + b;
     
    173185        mov     edi, [ebp+10h]  ;&c
    174186        mov     esi, [ebp+08h]  ;&a
    175         mov     eax,[esi]       ;a.low
    176         mov     edx,[esi+04h]   ;a.high
     187        mov     eax,[esi]       ;a.low
     188        mov     edx,[esi+04h]   ;a.high
    177189        mov     esi, [ebp+0ch]  ;&b
    178         add     eax,[esi]       ;b.low
    179         adc     edx,[esi+04h]   ;b.high
     190        add     eax,[esi]       ;b.low
     191        adc     edx,[esi+04h]   ;b.high
    180192
    181193        mov     [edi], eax      ;c.low
     
    186198        pop     esi
    187199        leave
    188         ret     
    189 
    190 _Add64  endp
    191 
    192 
    193         align 4h
    194 
    195         public _set_bit
     200        ret
     201
     202_Add64  endp
     203
     204
     205        align 4h
     206
     207        public _set_bit
    196208;void CDECL set_bit(int bitnr, void *addr);
    197209_set_bit proc near
     
    207219_set_bit endp
    208220
    209         align 4h
    210 
    211         public _test_bit
     221        align 4h
     222
     223        public _test_bit
    212224;int CDECL test_bit(int bitnr, void *addr);
    213225_test_bit proc near
     
    225237_test_bit endp
    226238
    227         public _clear_bit
     239        public _clear_bit
    228240;void CDECL clear_bit(int bitnr, void *addr);
    229241_clear_bit proc near
Note: See TracChangeset for help on using the changeset viewer.