Assembler for MIMD-TRAP2/3 (c) V.Angelov, v3.6, Dec 2007 SVN Revision 0, SVN Date 2007-12-27 Please send any comments to: angelov@kip.uni-heidelberg.de 17:58:30 / 21 Apr 2008 Source code file: src/DMPtst.asm Memory initialisation file: Log file: wrk/cpu0.log Program memory size in words: 4096 Default constants, read from /cad/tools/bin/asm_mimd.inc 1 CPU0 = 2 TRAP3 = 3 CC_SIGNED = 0X14 4 CC_NSIGNED = 0X04 5 CC_ZERO = 0X11 6 CC_NZERO = 0X01 7 CC_OVERFL = 0X13 8 CC_NOVERFL = 0X03 9 CC_NEG = 0X12 10 CC_NNEG = 0X02 11 CC_CARRY = 0X10 12 CC_NCARRY = 0X00 13 CC_BUSY = 0X17 14 CC_NBUSY = 0X07 15 CC_DIVB = 0X15 16 CC_NDIVB = 0X05 17 CC_ERRDIV = 0X16 18 CC_NERRDIV = 0X06 19 CC_UNCOND = 0X0F 20 CC_EQ = 0X11 21 CC_NEQ = 0X01 22 CC_NEG = 0X12 23 CC_POS0 = 0X02 24 CC_LTS = 0X14 25 CC_GES = 0X04 26 CC_LTU = 0X10 27 CC_GEU = 0X00 28 CC_LES = 0X19 29 CC_GTS = 0X09 30 CC_LEU = 0X18 31 CC_GTU = 0X08 32 RR_BYTE = 3 33 RR_WORD = 1 34 RR_DWORD = 0 35 LRA1 = LRA 3, 36 LRA2 = LRA 1, 37 LRA4 = LRA 0, 38 LRA4+ = LRA+ 0, 39 XOR = EOR 40 NOT = COM 41 SHLT = SHL 42 ANDT = AND 43 R0 = PRF[0] 44 R1 = PRF[1] 45 R2 = PRF[2] 46 R3 = PRF[3] 47 R4 = PRF[4] 48 R5 = PRF[5] 49 R6 = PRF[6] 50 R7 = PRF[7] 51 R8 = PRF[8] 52 R9 = PRF[9] 53 R10 = PRF[10] 54 R11 = PRF[11] 55 R12 = PRF[12] 56 R13 = PRF[13] 57 R14 = PRF[14] 58 R15 = PRF[15] 59 G0 = GRF[0] 60 G1 = GRF[1] 61 G2 = GRF[2] 62 G3 = GRF[3] 63 G4 = GRF[4] 64 G5 = GRF[5] 65 G6 = GRF[6] 66 G7 = GRF[7] 67 G8 = GRF[8] 68 G9 = GRF[9] 69 G10 = GRF[10] 70 G11 = GRF[11] 71 G12 = GRF[12] 72 G13 = GRF[13] 73 G14 = GRF[14] 74 G15 = GRF[15] 75 F0 = FIT[0] 76 F1 = FIT[1] 77 F2 = FIT[2] 78 F3 = FIT[3] 79 F4 = FIT[4] 80 F5 = FIT[5] 81 F6 = FIT[6] 82 F7 = FIT[7] 83 F8 = FIT[8] 84 F9 = FIT[9] 85 F10 = FIT[10] 86 F11 = FIT[11] 87 F12 = FIT[12] 88 F13 = FIT[13] 89 F14 = FIT[14] 90 F15 = FIT[15] 91 C0 = CON[0] 92 C1 = CON[1] 93 C2 = CON[2] 94 C3 = CON[3] 95 C4 = CON[4] 96 C5 = CON[5] 97 C6 = CON[6] 98 C7 = CON[7] 99 C8 = CON[8] 100 C9 = CON[9] 101 C10 = CON[10] 102 C11 = CON[11] 103 C12 = CON[12] 104 C13 = CON[13] 105 C14 = CON[14] 106 C15 = CON[15] 107 ASM_SVN_REV = 0 1: ; Power test of DMEM 2: ; Write 0xFF..FF to all cells 3: ; Read and count the number of zeroes, store at th 4: 5: start: nop 0000 : 0000_0000_0000_0000_0000_0000 6: mov 0, r15; the address counter 0001 : 1100_0110_0000_0000_0000_1111 7: not c0, r1; writing 0xFF..FF 0002 : 1011_1110_0000_0110_0000_0001 8: 9: fill: 10: sra+ r1 0003 : 0011_1000_0001_0000_0000_0000 11: nop 0004 : 0000_0000_0000_0000_0000_0000 12: cmp r15, 0 0005 : 1100_1000_1111_0000_0000_0000 13: jmp cc_nzero, fill 0006 : 0000_0100_0000_0000_0000_0001 14: 15: mov 0, r2 ; the error counter 0007 : 1100_0110_0000_0000_0000_0010 16: readc: 17: lra4 r1 0008 : 1101_0010_0000_0000_0000_0001 18: lra4+ r1 0009 : 1111_0010_0000_0000_0000_0001 19: ; mov 0, r1; emulate errors 20: cmp r1, 0 000A : 1100_1000_0001_0000_0000_0000 21: jmpr cc_neq +2 000B : 0000_0100_0000_0001_1010_0001 22: add r2, c1, r2 000C : 1000_0010_0010_0110_0010_0010 23: 24: cmp r15, 0 000D : 1100_1000_1111_0000_0000_0000 25: jmp cc_nzero, readc 000E : 0000_0100_0000_0000_0000_0001 26: 27: iext 0xF000 000F : 0101_0000_0000_0000_0000_1111 28: sgio r2, 0xF000 0010 : 0010_1000_0010_0000_0000_0000 29: 30: mov 0x012, r1 0011 : 1100_0110_0000_0010_0100_0001 31: sgio r1, 0xA04 0012 : 0010_1000_0001_1010_0000_0100 32: end: jmpr cc_uncond 0 0013 : 0000_0100_0000_0010_0110_1111 33: nop 0014 : 0000_0000_0000_0000_0000_0000 Source file read, 0 error(s), 0 warning(s).