blob: a0735e482cbbd56afb1e8acdd8b313552c98c090 [file] [log] [blame]
# 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