Ignore:
Timestamp:
Feb 15, 2004, 8:56:13 AM (21 years ago)
Author:
bird
Message:

sort of complete.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/testcase/weak/weak4-2.s

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r1243 r1244  
    88    int $41
    99    nop
     10
    1011    .align 3,0xcc
    1112    .globl _check_weaktext
     
    9293    jmp     done
    9394
     95
     96    .align 3,0xcc
     97    .globl _check_weaktext_localdefault
     98    /*
     99     * Check up weak text with a local default.
     100     */
     101_check_weaktext_localdefault:
     102    /* resolved weak */
     103    .weak _weaktext_localdefault_extrn
     104    .set _weaktext_localdefault_extrn, _weaktext_localdefault
     105    xorl    %eax, %eax
     106    inc     %eax                        /* eax = non-zero */
     107    call    _weaktext_localdefault_extrn+5
     108    orl     %eax, %eax
     109    jnz     failure
     110
     111    inc     %eax                        /* eax = non-zero */
     112    leal    _weaktext_localdefault_extrn+5, %ecx
     113    call    *%ecx
     114    orl     %eax, %eax
     115    jnz     failure
     116
     117    /* unresolved weak */
     118    .weak _weaktext_localdefault_extrn_unresolved
     119    .set _weaktext_localdefault_extrn_unresolved, _weaktext_localdefault
     120    xorl    %eax, %eax
     121    inc     %eax                        /* eax = non-zero */
     122    call    _weaktext_localdefault_extrn_unresolved+6
     123    orl     %eax, %eax
     124    jnz     failure
     125
     126    inc     %eax                        /* eax = non-zero */
     127    leal    _weaktext_localdefault_extrn_unresolved+6, %ecx
     128    call    *%ecx
     129    orl     %eax, %eax
     130    jnz     failure
     131    jmp     done
     132
     133
     134    .align 3,0xcc
     135    .globl _check_weakdata_localdefault
     136    /*
     137     * Check up weak data with a local default.
     138     */
     139_check_weakdata_localdefault:
     140    /* resolved weak */
     141    .weak _weakdata_localdefault_extrn
     142    .set _weakdata_localdefault_extrn, _weakdata_localdefault
     143    movl    _weakdata_localdefault_extrn+12, %eax
     144    cmpl    $13, %eax
     145    jnz     failure
     146
     147    lea     _weakdata_localdefault_extrn+20, %eax
     148    movl    (%eax), %eax
     149    cmpl    $15, %eax
     150    jnz     failure
     151
     152    /* unresolved weak */
     153    .weak _weakdata_localdefault_extrn_unresolved
     154    .set _weakdata_localdefault_extrn_unresolved, _weakdata_localdefault
     155    movl    _weakdata_localdefault_extrn_unresolved+12, %eax
     156    cmpl    $3, %eax
     157    jnz     failure
     158
     159    lea     _weakdata_localdefault_extrn_unresolved+20, %eax
     160    movl    (%eax), %eax
     161    cmpl    $5, %eax
     162    jnz     failure
     163    jmp     done
     164
     165
     166    .align 3,0xcc
     167    .globl _check_weakbss_localdefault
     168    /*
     169     * Check up weak bss with a local default.
     170     */
     171_check_weakbss_localdefault:
     172    /* resolved weak */
     173    .weak _weakbss_localdefault_extrn
     174    .set _weakbss_localdefault_extrn, _weakbss_localdefault
     175    movl    _weakbss_localdefault_extrn+12, %eax
     176    cmpl    $13, %eax
     177    jnz     failure
     178
     179    lea     _weakbss_localdefault_extrn+20, %eax
     180    movl    (%eax), %eax
     181    cmpl    $15, %eax
     182    jnz     failure
     183
     184    /* unresolved weak */
     185    .weak _weakbss_localdefault_extrn_unresolved
     186    .set _weakbss_localdefault_extrn_unresolved, _weakbss_localdefault
     187    movl    _weakdata_localdefault_extrn_unresolved+12, %eax
     188    cmpl    $3, %eax
     189    jnz     failure
     190
     191    lea     _weakbss_localdefault_extrn_unresolved+20, %eax
     192    movl    (%eax), %eax
     193    cmpl    $5, %eax
     194    jnz     failure
     195    jmp     done
     196
     197
     198    .align 3,0xcc
     199    .globl _check_weakundef_externdefault
     200    /*
     201     * Check up weak bss with an undefined default.
     202     */
     203_check_weakundef_externdefault:
     204    /* resolved weak */
     205    .weak _weakundef_externdefault_extrn
     206    .set _weakundef_externdefault_extrn, _weakundef_externdefault
     207    movl    _weakundef_externdefault_extrn+8, %eax
     208    cmpl    $12, %eax
     209    jnz     failure
     210
     211    lea     _weakundef_externdefault_extrn+20, %eax
     212    movl    (%eax), %eax
     213    cmpl    $15, %eax
     214    jnz     failure
     215
     216    /* unresolved weak */
     217    .weak _weakundef_externdefault_extrn_unresolved
     218    .set _weakundef_externdefault_extrn_unresolved, _weakundef_externdefault
     219    movl    _weakundef_externdefault_extrn_unresolved+12, %eax
     220    cmpl    $3, %eax
     221    jnz     failure
     222
     223    lea     _weakundef_externdefault_extrn_unresolved+20, %eax
     224    movl    (%eax), %eax
     225    cmpl    $5, %eax
     226    jnz     failure
     227    jmp     done
     228
     229
     230    .align 3,0xcc
     231    .globl _check_weakabs_localdefault
     232    /*
     233     * Check up weak bss with an undefined default.
     234     */
     235_check_weakabs_localdefault:
     236    /* resolved weak */
     237    .weak _weakabs_localdefault_extrn
     238    .set _weakabs_localdefault_extrn, _weakabs_localdefault
     239    leal    _weakabs_localdefault_extrn, %eax
     240    cmpl    $0xbeef, %eax
     241    jnz     failure
     242
     243    leal    _weakabs_localdefault_extrn+2, %eax
     244    cmpl    $0xbef1, %eax
     245    jnz     failure
     246
     247    /* unresolved weak */
     248    .weak _weakabs_localdefault_extrn_unresolved
     249    .set _weakabs_localdefault_extrn_unresolved, _weakabs_localdefault
     250    leal    _weakabs_localdefault_extrn_unresolved, %eax
     251    cmpl    $0xdead, %eax
     252    jnz     failure
     253
     254    leal    _weakabs_localdefault_extrn_unresolved+2, %eax
     255    cmpl    $0xdeaf, %eax
     256    jnz     failure
     257    jmp     done
     258
     259
    94260done:
    95261    xorl    %eax, %eax
     
    98264    movl    $1, %eax
    99265    ret
     266
    100267
    101268/*
     
    109276    .weak _weaktext
    110277_weaktext:
    111     int $3                              /* 0 */
    112     int $3                              /* 1 */
    113     int $3                              /* 2 */
    114     int $3                              /* 3 */
    115     int $3                              /* 4 */
    116     int $3                              /* 5 */
     278_weaktext_localdefault:
     279    ret                                 /* 0 */
     280    ret                                 /* 1 */
     281    ret                                 /* 2 */
     282    ret                                 /* 3 */
     283    ret                                 /* 4 */
     284    ret                                 /* 5 */
    117285    xorl %eax, %eax                     /* 6 */
    118286    ret
    119     int $3                              /* 7 */
    120     int $3                              /* 8 */
    121     int $3                              /* 9 */
     287    ret
     288    ret
     289    ret
    122290
    123291
     
    128296    .weak _weakdata
    129297_weakdata:
     298_weakdata_localdefault:
    130299    .long   0
    131300    .long   1
     
    144313    .weak _weakbss
    145314_weakbss:
     315_weakbss_localdefault:
    146316    .space 40
    147317
     
    152322    .weak _weakabs
    153323    .equ _weakabs, 0xdead
    154 
     324    .global _weakabs_localdefault
     325    .equ _weakabs_localdefault, 0xdead
Note: See TracChangeset for help on using the changeset viewer.