Annotation of qemu/roms/SLOF/clients/takeover/entry.S, revision 1.1

1.1     ! root        1: /******************************************************************************
        !             2:  * Copyright (c) 2004, 2008 IBM Corporation
        !             3:  * All rights reserved.
        !             4:  * This program and the accompanying materials
        !             5:  * are made available under the terms of the BSD License
        !             6:  * which accompanies this distribution, and is available at
        !             7:  * http://www.opensource.org/licenses/bsd-license.php
        !             8:  *
        !             9:  * Contributors:
        !            10:  *     IBM Corporation - initial implementation
        !            11:  *****************************************************************************/
        !            12: 
        !            13: #include <macros.h>
        !            14: #include "takeover.h"
        !            15: 
        !            16:        .globl  _wrapclient
        !            17:        .section        ".start"
        !            18:        .align 3
        !            19: 
        !            20: _wrapclient:
        !            21:        bcl     20,31,over      # branch after pointer table
        !            22: base:  
        !            23:        .align  3
        !            24: .LCgot:                .quad   _got-base+0x8000
        !            25: over:  
        !            26:        mflr    r8              # gpr 8 is the base
        !            27:        ld      r2, .LCgot-base(r8)     # load got pointer
        !            28:        add     r2, r2, r8              # add base
        !            29:        li      14, 0
        !            30:        oris    14, 14, __bssSize@h
        !            31:        ori     14, 14, __bssSize@l
        !            32:        addi 14,14,7
        !            33:        srwi 14,14,3
        !            34:        mtctr   14
        !            35:        li      14, 0
        !            36:        oris    14, 14, __bssStart@h
        !            37:        ori     14, 14, __bssStart@l
        !            38:        subi    14, 14, 8
        !            39:        li      15, 0
        !            40: 1:
        !            41:        stdu 15,8(14)
        !            42:        bdnz    1b
        !            43:                
        !            44:        bl ._entry
        !            45: 
        !            46: 
        !            47: 
        !            48:     .globl slaveLoopNoTakeover
        !            49: slaveLoopNoTakeover:
        !            50:        mr 28,3
        !            51: 
        !            52:        li      14,0
        !            53:        oris    14, 14, slaveQuitt@h
        !            54:        ori     14, 14, slaveQuitt@l
        !            55: 
        !            56:        li      3,0
        !            57:        std     3,0(14)
        !            58: 1:
        !            59:        ld      3,0(14)
        !            60:        cmpld   3,28
        !            61:        bne     1b
        !            62: 
        !            63:        li      3,0
        !            64:        std     3,0(14)
        !            65: 
        !            66:        LOAD64(r3, (TAKEOVERBASEADDRESS+0x150))
        !            67:        mtctr   r3
        !            68:        bctr
        !            69: 
        !            70: 
        !            71:     .globl slaveLoop
        !            72: slaveLoop:
        !            73:        mr 28,3
        !            74:        li r3, 0x5124
        !            75:        li r0, -1; .long 0x44000022
        !            76:        
        !            77:        li      14,0
        !            78:        oris    14, 14, slaveQuitt@h
        !            79:        ori     14, 14, slaveQuitt@l
        !            80:        li      3,0
        !            81:        std     3,0(14)
        !            82: 1:
        !            83:        ld      3,0(14)
        !            84:        cmpld   3,28
        !            85:        bne     1b
        !            86: 
        !            87:        li      3,0
        !            88:        std     3,0(14)
        !            89: 
        !            90:        LOAD64(r3, (TAKEOVERBASEADDRESS+0x150))
        !            91:        mtctr   r3
        !            92:        bctr
        !            93: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.