|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.