Annotation of qemu/roms/SLOF/lib/libhvcall/hvcall.S, revision 1.1.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.