| 1 | ;; This file is a set of tests for the MorphoySys instructions. |
| 2 | |
| 3 | ; Make sure that each mnemonic gives the proper opcode. Use R0 and #0 |
| 4 | ; for all operands so that everything but the opcode will be 0 in the |
| 5 | ; assembled instructions. |
| 6 | |
| 7 | ldctxt R0,R0,#0,#0,#0 |
| 8 | ldfb R0,R0,#0 |
| 9 | stfb R0, R0, #0 |
| 10 | fbcb R0,#0,#0,#0,#0,#0,#0,#0,#0 |
| 11 | mfbcb R0,#0,R0,#0,#0,#0,#0,#0 |
| 12 | fbcci R0,#0,#0,#0,#0,#0,#0,#0 |
| 13 | fbrci R0,#0,#0,#0,#0,#0,#0,#0 |
| 14 | fbcri R0,#0,#0,#0,#0,#0,#0,#0 |
| 15 | fbrri R0,#0,#0,#0,#0,#0,#0,#0 |
| 16 | mfbcci R0,#0,R0,#0,#0,#0,#0 |
| 17 | mfbrci R0,#0,R0,#0,#0,#0,#0 |
| 18 | mfbcri R0,#0,R0,#0,#0,#0,#0 |
| 19 | mfbrri R0,#0,R0,#0,#0,#0,#0 |
| 20 | fbcbdr R0,#0,R0,#0,#0,#0,#0,#0,#0,#0 |
| 21 | rcfbcb #0,#0,#0,#0,#0,#0,#0,#0,#0,#0 |
| 22 | mrcfbcb R0,#0,#0,#0,#0,#0,#0,#0,#0 |
| 23 | cbcast #0,#0,#0 |
| 24 | dupcbcast #0,#0,#0,#0 |
| 25 | wfbi #0,#0,#0,#0,#0 |
| 26 | wfb R0,R0,#0,#0,#0 |
| 27 | rcrisc R0,#0,R0,#0,#0,#0,#0,#0,#0 |
| 28 | fbcbinc R0, #0, #0, #0, #0, #0, #0, #0 |
| 29 | rcxmode R0, #0, #0, #0, #0, #0, #0, #0, #0 |
| 30 | |
| 31 | ; Check to make sure that the parse routines that allow predifined |
| 32 | ; symbols (uppaer and lower case) to be used for some of the operands. |
| 33 | |
| 34 | ; dup operand: dup, xx |
| 35 | si R14 |
| 36 | fbcbdr R0,#0,R0,#0,#0,#0,#0,#0,#dup,#0 ; dup = 1 |
| 37 | fbcbdr R0,#0,R0,#0,#0,#0,#0,#0,#xx,#0 ; xx = 0 |
| 38 | fbcbdr R0,#0,R0,#0,#0,#0,#0,#0,#DUP,#0 |
| 39 | fbcbdr R0,#0,R0,#0,#0,#0,#0,#0,#XX,#0 |
| 40 | |
| 41 | ; ball operand: all, one |
| 42 | si R14 |
| 43 | rcfbcb #0,#0,#all,#0,#0,#0,#0,#0,#0,#0 ; all = 1 |
| 44 | rcfbcb #0,#0,#one,#0,#0,#0,#0,#0,#0,#0 ; one = 0 |
| 45 | rcfbcb #0,#0,#ALL,#0,#0,#0,#0,#0,#0,#0 |
| 46 | rcfbcb #0,#0,#ONE,#0,#0,#0,#0,#0,#0,#0 |
| 47 | |
| 48 | ; type operand: odd, even, oe |
| 49 | si R14 |
| 50 | mrcfbcb R0,#0,#oe,#0,#0,#0,#0,#0,#0 ; oe = 2 |
| 51 | mrcfbcb R0,#0,#even,#0,#0,#0,#0,#0,#0 ; even = 1 |
| 52 | mrcfbcb R0,#0,#odd,#0,#0,#0,#0,#0,#0 ; odd = 0 |
| 53 | mrcfbcb R0,#0,#OE,#0,#0,#0,#0,#0,#0 |
| 54 | mrcfbcb R0,#0,#EVEN,#0,#0,#0,#0,#0,#0 |
| 55 | mrcfbcb R0,#0,#ODD,#0,#0,#0,#0,#0,#0 |
| 56 | |
| 57 | ; xmode operand: pm, xm |
| 58 | si R14 |
| 59 | rcxmode R0, #0, #0, #pm, #0, #0, #0, #0, #0 ; pm = 1 |
| 60 | rcxmode R0, #0, #0, #xm, #0, #0, #0, #0, #0 ; xm = 0 |
| 61 | rcxmode R0, #0, #0, #PM, #0, #0, #0, #0, #0 |
| 62 | rcxmode R0, #0, #0, #XM, #0, #0, #0, #0, #0 |
| 63 | |
| 64 | ; rc, rc1, rc2 operands: r,c |
| 65 | si R14 |
| 66 | ldctxt R0,R0,#r,#0,#0 ; rc operand. r = 1 |
| 67 | ldctxt R0,R0,#c,#0,#0 ; rc operand. c = 0 |
| 68 | ldctxt R0,R0,#R,#0,#0 |
| 69 | ldctxt R0,R0,#C,#0,#0 |
| 70 | |
| 71 | fbcb R0,#0,#0,#0,#r,#0,#0,#0,#0 ; rc1 operand. r = 1 |
| 72 | fbcb R0,#0,#0,#0,#c,#0,#0,#0,#0 ; rc1 operand. c = 0 |
| 73 | |
| 74 | cbcast #0,#r,#0 ; rc2 operand. r = 1 |
| 75 | cbcast #0,#c,#0 ; rc2 opearnd. c = 0 |
| 76 | |
| 77 | ; cbrb operand: cb, rb |
| 78 | si R14 |
| 79 | fbcb R0,#0,#0,#0,#0,#rb,#0,#0,#0 ; rb = 1 |
| 80 | fbcb R0,#0,#0,#0,#0,#cb,#0,#0,#0 ; cb = 0 |
| 81 | fbcb R0,#0,#0,#0,#0,#RB,#0,#0,#0 |
| 82 | fbcb R0,#0,#0,#0,#0,#CB,#0,#0,#0 |
| 83 | |
| 84 | ; rbbc operand: rt, br1, br2, cs |
| 85 | si R14 |
| 86 | fbcb R0,#cs,#0,#0,#0,#0,#0,#0,#0 ; cs = 3 |
| 87 | fbcb R0,#br2,#0,#0,#0,#0,#0,#0,#0 ; br2 = 2 |
| 88 | fbcb R0,#br1,#0,#0,#0,#0,#0,#0,#0 ; br1 = 1 |
| 89 | fbcb R0,#rt,#0,#0,#0,#cb,#0,#0,#0 ; rt = 0 |
| 90 | fbcb R0,#CS,#0,#0,#0,#0,#0,#0,#0 |
| 91 | fbcb R0,#BR2,#0,#0,#0,#0,#0,#0,#0 |
| 92 | fbcb R0,#BR1,#0,#0,#0,#0,#0,#0,#0 |
| 93 | fbcb R0,#RT,#0,#0,#0,#cb,#0,#0,#0 |
| 94 | |
| 95 | intlvr R0, #0, R0, #0, #0 |