Annotation of qemu/roms/SLOF/lib/libhvcall/hvcall.S, revision 1.1

1.1     ! root        1: #define _ASM
        !             2: #define __ASSEMBLY__
        !             3: #include "macros.h"
        !             4: #include "libhvcall.h"
        !             5:        
        !             6: #define HVCALL                 .long 0x44000022
        !             7:        
        !             8:        .text
        !             9:        .align  3
        !            10: 
        !            11: ENTRY(hv_generic)
        !            12:        HVCALL
        !            13:        blr
        !            14: 
        !            15: ENTRY(hv_putchar)
        !            16:        sldi    r6,r3,(24+32)
        !            17:        li      r3,H_PUT_TERM_CHAR
        !            18:        li      r4,0
        !            19:        li      r5,1
        !            20:        HVCALL
        !            21:        blr
        !            22: 
        !            23: ENTRY(hv_getchar)
        !            24:        mflr    r10
        !            25:        bl      .hv_haschar
        !            26:        mtlr    r10
        !            27:        cmpwi   cr0,r3,0
        !            28:        beqlr
        !            29:        lis     r9,inbuf@h
        !            30:        ori     r9,r9,inbuf@l
        !            31:        lwz     r4,20(r9)
        !            32:        lbzx    r3,r4,r9
        !            33:        addi    r4,r4,1
        !            34:        stw     r4,20(r9)
        !            35:        blr
        !            36: 
        !            37: ENTRY(hv_haschar)
        !            38:        li      r3,-1
        !            39:        lis     r9,inbuf@h
        !            40:        ori     r9,r9,inbuf@l
        !            41:        lwz     r5,16(r9)
        !            42:        lwz     r6,20(r9)
        !            43:        cmplw   cr0,r5,r6
        !            44:        bnelr
        !            45:        li      r3,H_GET_TERM_CHAR
        !            46:        li      r4,0
        !            47:        HVCALL
        !            48:        lis     r9,inbuf@h
        !            49:        ori     r9,r9,inbuf@l
        !            50:        stw     r4,16(r9)
        !            51:        li      r3,0
        !            52:        stw     r3,20(r9)
        !            53:        cmplwi  cr0,r4,0
        !            54:        beqlr
        !            55:        li      r3,-1
        !            56:        std     r5,0(r9)
        !            57:        std     r6,8(r9)
        !            58:        blr
        !            59: 
        !            60: ENTRY(hv_send_crq)
        !            61:        ld      r5,0(r4)
        !            62:        ld      r6,8(r4)
        !            63:        mr      r4,r3
        !            64:        li      r3,H_SEND_CRQ
        !            65:        HVCALL
        !            66:        blr
        !            67: 
        !            68: ENTRY(hv_send_logical_lan)
        !            69:        li      r11,0   /* no continue token for now */
        !            70:        mr      r10,r9
        !            71:        mr      r9,r8
        !            72:        mr      r8,r7
        !            73:        mr      r7,r6
        !            74:        mr      r6,r5
        !            75:        mr      r5,r4
        !            76:        mr      r4,r3
        !            77:        li      r3,H_SEND_LOGICAL_LAN
        !            78:        HVCALL
        !            79:        blr
        !            80: 
        !            81:        .section ".bss"
        !            82:  inbuf:        .space  16
        !            83: inlen: .space  4
        !            84: inpos: .space  4
        !            85:        .text
        !            86:        

unix.superglobalmegacorp.com

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