| # RUN: llvm-mc -triple mblaze-unknown-unknown -show-encoding %s | FileCheck %s |
| |
| # Test to make sure that all of the TYPE-A instructions supported by |
| # the Microblaze can be parsed by the assembly parser. |
| |
| # TYPE A: OPCODE RD RA RB FLAGS |
| # BINARY: 000000 00000 00000 00000 00000000000 |
| |
| # CHECK: add |
| # BINARY: 000000 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x00,0x22,0x18,0x00] |
| add r1, r2, r3 |
| |
| # CHECK: addc |
| # BINARY: 000010 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x08,0x22,0x18,0x00] |
| addc r1, r2, r3 |
| |
| # CHECK: addk |
| # BINARY: 000100 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x10,0x22,0x18,0x00] |
| addk r1, r2, r3 |
| |
| # CHECK: addkc |
| # BINARY: 000110 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x18,0x22,0x18,0x00] |
| addkc r1, r2, r3 |
| |
| # CHECK: and |
| # BINARY: 100001 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x84,0x22,0x18,0x00] |
| and r1, r2, r3 |
| |
| # CHECK: andn |
| # BINARY: 100011 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x8c,0x22,0x18,0x00] |
| andn r1, r2, r3 |
| |
| # CHECK: cmp |
| # BINARY: 000101 00001 00010 00011 00000000001 |
| # CHECK: encoding: [0x14,0x22,0x18,0x01] |
| cmp r1, r2, r3 |
| |
| # CHECK: cmpu |
| # BINARY: 000101 00001 00010 00011 00000000011 |
| # CHECK: encoding: [0x14,0x22,0x18,0x03] |
| cmpu r1, r2, r3 |
| |
| # CHECK: idiv |
| # BINARY: 010010 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x48,0x22,0x18,0x00] |
| idiv r1, r2, r3 |
| |
| # CHECK: idivu |
| # BINARY: 010010 00001 00010 00011 00000000010 |
| # CHECK: encoding: [0x48,0x22,0x18,0x02] |
| idivu r1, r2, r3 |
| |
| # CHECK: mul |
| # BINARY: 010000 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x40,0x22,0x18,0x00] |
| mul r1, r2, r3 |
| |
| # CHECK: mulh |
| # BINARY: 010000 00001 00010 00011 00000000001 |
| # CHECK: encoding: [0x40,0x22,0x18,0x01] |
| mulh r1, r2, r3 |
| |
| # CHECK: mulhu |
| # BINARY: 010000 00001 00010 00011 00000000011 |
| # CHECK: encoding: [0x40,0x22,0x18,0x03] |
| mulhu r1, r2, r3 |
| |
| # CHECK: mulhsu |
| # BINARY: 010000 00001 00010 00011 00000000010 |
| # CHECK: encoding: [0x40,0x22,0x18,0x02] |
| mulhsu r1, r2, r3 |
| |
| # CHECK: or |
| # BINARY: 100000 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x80,0x22,0x18,0x00] |
| or r1, r2, r3 |
| |
| # CHECK: rsub |
| # BINARY: 000001 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x04,0x22,0x18,0x00] |
| rsub r1, r2, r3 |
| |
| # CHECK: rsubc |
| # BINARY: 000011 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x0c,0x22,0x18,0x00] |
| rsubc r1, r2, r3 |
| |
| # CHECK: rsubk |
| # BINARY: 000101 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x14,0x22,0x18,0x00] |
| rsubk r1, r2, r3 |
| |
| # CHECK: rsubkc |
| # BINARY: 000111 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x1c,0x22,0x18,0x00] |
| rsubkc r1, r2, r3 |
| |
| # CHECK: sext16 |
| # BINARY: 100100 00001 00010 00000 00001100001 |
| # CHECK: encoding: [0x90,0x22,0x00,0x61] |
| sext16 r1, r2 |
| |
| # CHECK: sext8 |
| # BINARY: 100100 00001 00010 00000 00001100000 |
| # CHECK: encoding: [0x90,0x22,0x00,0x60] |
| sext8 r1, r2 |
| |
| # CHECK: xor |
| # BINARY: 100010 00001 00010 00011 00000000000 |
| # CHECK: encoding: [0x88,0x22,0x18,0x00] |
| xor r1, r2, r3 |
| |
| # CHECK: nop |
| # BINARY: 100000 00000 00000 00000 00000000000 |
| # CHECK: encoding: [0x80,0x00,0x00,0x00] |
| nop |