[mips][microMIPS] Implement JR16 instruction
[oota-llvm.git] / test / MC / Mips / micromips-16-bit-instructions.s
1 # RUN: llvm-mc %s -triple=mipsel -show-encoding -mattr=micromips | \
2 # RUN: FileCheck -check-prefix=CHECK-EL %s
3 # RUN: llvm-mc %s -triple=mips -show-encoding -mattr=micromips | \
4 # RUN: FileCheck -check-prefix=CHECK-EB %s
5 # Check that the assembler can handle the documented syntax
6 # for arithmetic and logical instructions.
7 #------------------------------------------------------------------------------
8 # MicroMIPS 16-bit Instructions
9 #------------------------------------------------------------------------------
10 # Little endian
11 #------------------------------------------------------------------------------
12 # CHECK-EL: addius5 $7, -2          # encoding: [0xfc,0x4c]
13 # CHECK-EL: mfhi    $9              # encoding: [0x09,0x46]
14 # CHECK-EL: mflo    $9              # encoding: [0x49,0x46]
15 # CHECK-EL: move    $25, $1         # encoding: [0x21,0x0f]
16 # CHECK-EL: jrc     $9              # encoding: [0xa9,0x45]
17 # CHECK-NEXT: jalr    $9            # encoding: [0xc9,0x45]
18 # CHECK-EL: jraddiusp 20            # encoding: [0x05,0x47]
19 # CHECK-EL: nop                     # encoding: [0x00,0x00,0x00,0x00]
20 # CHECK-EL: jalrs16 $9              # encoding: [0xe9,0x45]
21 # CHECK-EL: move    $zero, $zero    # encoding: [0x00,0x0c]
22 # CHECK-EL: jr16    $9              # encoding: [0x89,0x45]
23 # CHECK-EL: nop                     # encoding: [0x00,0x00,0x00,0x00]
24 #------------------------------------------------------------------------------
25 # Big endian
26 #------------------------------------------------------------------------------
27 # CHECK-EB: addius5 $7, -2          # encoding: [0x4c,0xfc]
28 # CHECK-EB: mfhi    $9              # encoding: [0x46,0x09]
29 # CHECK-EB: mflo    $9              # encoding: [0x46,0x49]
30 # CHECK-EB: move    $25, $1         # encoding: [0x0f,0x21]
31 # CHECK-EB: jrc     $9              # encoding: [0x45,0xa9]
32 # CHECK-NEXT: jalr    $9            # encoding: [0x45,0xc9]
33 # CHECK-EB: jraddiusp 20            # encoding: [0x47,0x05]
34 # CHECK-EB: nop                     # encoding: [0x00,0x00,0x00,0x00]
35 # CHECK-EB: jalrs16 $9              # encoding: [0x45,0xe9]
36 # CHECK-EB: move    $zero, $zero    # encoding: [0x0c,0x00]
37 # CHECK-EB: jr16    $9              # encoding: [0x45,0x89]
38 # CHECK-EB: nop                     # encoding: [0x00,0x00,0x00,0x00]
39
40     addius5 $7, -2
41     mfhi    $9
42     mflo    $9
43     move    $25, $1
44     jrc     $9
45     jalr    $9
46     jraddiusp 20
47     jalrs16 $9
48     jr16    $9