Annotation of gcc/config/1750a/ms1750.inc, revision 1.1.1.1

1.1       root        1: ;; GCC assembler includefile for AS1750
                      2: ;;
                      3: ;; Macros defined:
                      4: ;;   EFLR.M  #d,#s     Load the three regs starting at R#s to R#d following.
                      5: ;;   RET.M   #fs       Return from function (uses the framesize #fs)
                      6: 
                      7: 
                      8: UC     SET     15
                      9: 
                     10: ; Return from function ; parameter: framesize
                     11:      MACRO RET.M
                     12:        IF `1` > 0
                     13:            IF `1` <= 16
                     14:                AISP R14,`1`
                     15:            ELSE
                     16:                AIM  R14,`1`
                     17:            ENDIF
                     18:        ENDIF
                     19:        LR   R15,R14
                     20:        URS  R15
                     21:      ENDMACRO
                     22: 
                     23: ; Useful instructions missing from the 1750A standard:
                     24: 
                     25: ; Extended Float Load from Registers
                     26:      MACRO EFLR.M      ; args : #1=dest-regno, #2=source-regno
                     27: ONE    SET  `1` + 2
                     28: TWO    SET  `2` + 2
                     29:        IF `1` >= `2` || `1`+2 < `2`
                     30:            LR    R`ONE`,R`TWO`
                     31:            DLR   R`1`,R`2`
                     32:        ELSE
                     33:            DLR   R`1`,R`2`
                     34:            LR    R`ONE`,R`TWO`
                     35:            DLR   R`1`,R`1`     ; Just to update condition codes
                     36:        ENDIF
                     37:      ENDMACRO
                     38: 
                     39: ; The following leave the condition codes haywire. But that is
                     40: ; accounted for (see notice_update_cc in config/1750a.c.)
                     41: 
                     42: ; Double ANd Register with Register
                     43:      MACRO DANR.M
                     44: ONE    SET  `1` + 1
                     45: TWO    SET  `2` + 1
                     46:        ANDR  R`1`,R`2`
                     47:        ANDR  R`ONE`,R`TWO`
                     48:      ENDMACRO
                     49: 
                     50: ; Double OR Register with Register
                     51:      MACRO DORR.M
                     52: ONE    SET  `1` + 1
                     53: TWO    SET  `2` + 1
                     54:        ORR   R`1`,R`2`
                     55:        ORR   R`ONE`,R`TWO`
                     56:      ENDMACRO
                     57: 
                     58: ; Double eXoR Register with Register
                     59:      MACRO DXRR.M
                     60: ONE    SET  `1` + 1
                     61: TWO    SET  `2` + 1
                     62:        XORR  R`1`,R`2`
                     63:        XORR  R`ONE`,R`TWO`
                     64:      ENDMACRO
                     65: 
                     66: ; Double Nand Register with register
                     67:      MACRO DNR.M
                     68: ONE    SET  `1` + 1
                     69: TWO    SET  `2` + 1
                     70:        NR    R`1`,R`2`
                     71:        NR    R`ONE`,R`TWO`
                     72:      ENDMACRO
                     73: 

unix.superglobalmegacorp.com

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