1 # RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s 2 3 # Test to make sure that all of the TYPE-A instructions supported by 4 # the Microblaze can be parsed by the assembly parser. 5 6 # TYPE A: OPCODE RD RA RB FLAGS 7 # BINARY: 000000 00000 00000 00000 00000000000 8 9 # CHECK: add 10 # BINARY: 000000 00001 00010 00011 00000000000 11 # CHECK: encoding: [0x00,0x22,0x18,0x00] 12 add r1, r2, r3 13 14 # CHECK: addc 15 # BINARY: 000010 00001 00010 00011 00000000000 16 # CHECK: encoding: [0x08,0x22,0x18,0x00] 17 addc r1, r2, r3 18 19 # CHECK: addk 20 # BINARY: 000100 00001 00010 00011 00000000000 21 # CHECK: encoding: [0x10,0x22,0x18,0x00] 22 addk r1, r2, r3 23 24 # CHECK: addkc 25 # BINARY: 000110 00001 00010 00011 00000000000 26 # CHECK: encoding: [0x18,0x22,0x18,0x00] 27 addkc r1, r2, r3 28 29 # CHECK: and 30 # BINARY: 100001 00001 00010 00011 00000000000 31 # CHECK: encoding: [0x84,0x22,0x18,0x00] 32 and r1, r2, r3 33 34 # CHECK: andn 35 # BINARY: 100011 00001 00010 00011 00000000000 36 # CHECK: encoding: [0x8c,0x22,0x18,0x00] 37 andn r1, r2, r3 38 39 # CHECK: cmp 40 # BINARY: 000101 00001 00010 00011 00000000001 41 # CHECK: encoding: [0x14,0x22,0x18,0x01] 42 cmp r1, r2, r3 43 44 # CHECK: cmpu 45 # BINARY: 000101 00001 00010 00011 00000000011 46 # CHECK: encoding: [0x14,0x22,0x18,0x03] 47 cmpu r1, r2, r3 48 49 # CHECK: idiv 50 # BINARY: 010010 00001 00010 00011 00000000000 51 # CHECK: encoding: [0x48,0x22,0x18,0x00] 52 idiv r1, r2, r3 53 54 # CHECK: idivu 55 # BINARY: 010010 00001 00010 00011 00000000010 56 # CHECK: encoding: [0x48,0x22,0x18,0x02] 57 idivu r1, r2, r3 58 59 # CHECK: mul 60 # BINARY: 010000 00001 00010 00011 00000000000 61 # CHECK: encoding: [0x40,0x22,0x18,0x00] 62 mul r1, r2, r3 63 64 # CHECK: mulh 65 # BINARY: 010000 00001 00010 00011 00000000001 66 # CHECK: encoding: [0x40,0x22,0x18,0x01] 67 mulh r1, r2, r3 68 69 # CHECK: mulhu 70 # BINARY: 010000 00001 00010 00011 00000000011 71 # CHECK: encoding: [0x40,0x22,0x18,0x03] 72 mulhu r1, r2, r3 73 74 # CHECK: mulhsu 75 # BINARY: 010000 00001 00010 00011 00000000010 76 # CHECK: encoding: [0x40,0x22,0x18,0x02] 77 mulhsu r1, r2, r3 78 79 # CHECK: or 80 # BINARY: 100000 00001 00010 00011 00000000000 81 # CHECK: encoding: [0x80,0x22,0x18,0x00] 82 or r1, r2, r3 83 84 # CHECK: rsub 85 # BINARY: 000001 00001 00010 00011 00000000000 86 # CHECK: encoding: [0x04,0x22,0x18,0x00] 87 rsub r1, r2, r3 88 89 # CHECK: rsubc 90 # BINARY: 000011 00001 00010 00011 00000000000 91 # CHECK: encoding: [0x0c,0x22,0x18,0x00] 92 rsubc r1, r2, r3 93 94 # CHECK: rsubk 95 # BINARY: 000101 00001 00010 00011 00000000000 96 # CHECK: encoding: [0x14,0x22,0x18,0x00] 97 rsubk r1, r2, r3 98 99 # CHECK: rsubkc 100 # BINARY: 000111 00001 00010 00011 00000000000 101 # CHECK: encoding: [0x1c,0x22,0x18,0x00] 102 rsubkc r1, r2, r3 103 104 # CHECK: sext16 105 # BINARY: 100100 00001 00010 00000 00001100001 106 # CHECK: encoding: [0x90,0x22,0x00,0x61] 107 sext16 r1, r2 108 109 # CHECK: sext8 110 # BINARY: 100100 00001 00010 00000 00001100000 111 # CHECK: encoding: [0x90,0x22,0x00,0x60] 112 sext8 r1, r2 113 114 # CHECK: xor 115 # BINARY: 100010 00001 00010 00011 00000000000 116 # CHECK: encoding: [0x88,0x22,0x18,0x00] 117 xor r1, r2, r3 118 119 # CHECK: nop 120 # BINARY: 100000 00000 00000 00000 00000000000 121 # CHECK: encoding: [0x80,0x00,0x00,0x00] 122 nop 123