b6dc32ed5e34e982572cc8dfffadff7c9b04e97a
[oota-llvm.git] / test / MC / Mips / mips-expansions.s
1 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s
2 # Check that the assembler can handle the documented syntax
3 # for macro instructions
4 #------------------------------------------------------------------------------
5 # Load immediate instructions
6 #------------------------------------------------------------------------------
7 # CHECK:     ori     $5, $zero, 123   # encoding: [0x7b,0x00,0x05,0x34]
8 # CHECK:     addiu   $6, $zero, -2345 # encoding: [0xd7,0xf6,0x06,0x24]
9 # CHECK:     lui     $7, 1            # encoding: [0x01,0x00,0x07,0x3c]
10 # CHECK:     ori     $7, $7, 2        # encoding: [0x02,0x00,0xe7,0x34]
11 # CHECK:     addiu   $8, $zero, -8    # encoding: [0xf8,0xff,0x08,0x24]
12 # CHECK:     lui     $9, 1            # encoding: [0x01,0x00,0x09,0x3c]
13 # CHECK-NOT: ori $9, $9, 0            # encoding: [0x00,0x00,0x29,0x35]
14 # CHECK:     lui     $10, 65519       # encoding: [0xef,0xff,0x0a,0x3c]
15 # CHECK:     ori     $10, $10, 61423  # encoding: [0xef,0xef,0x4a,0x35]
16
17 # CHECK: ori     $4, $zero, 20       # encoding: [0x14,0x00,0x04,0x34]
18 # CHECK: lui     $7, 1               # encoding: [0x01,0x00,0x07,0x3c]
19 # CHECK: ori     $7, $7, 2           # encoding: [0x02,0x00,0xe7,0x34]
20 # CHECK: ori     $4, $5, 20          # encoding: [0x14,0x00,0xa4,0x34]
21 # CHECK: lui     $7, 1               # encoding: [0x01,0x00,0x07,0x3c]
22 # CHECK: ori     $7, $7, 2           # encoding: [0x02,0x00,0xe7,0x34]
23 # CHECK: addu    $7, $7, $8          # encoding: [0x21,0x38,0xe8,0x00]
24 # CHECK: lui     $8, %hi(symbol)     # encoding: [A,A,0x08,0x3c]
25 # CHECK:                             #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
26 # CHECK: ori     $8, $8, %lo(symbol) # encoding: [A,A,0x08,0x35]
27 # CHECK:                             #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
28 # CHECK: lui     $10, %hi(symbol)        # encoding: [A,A,0x0a,0x3c]
29 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
30 # CHECK: addu    $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
31 # CHECK: lw      $10, %lo(symbol)($10)   # encoding: [A,A,0x4a,0x8d]
32 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
33 # CHECK: lui     $1, %hi(symbol)         # encoding: [A,A,0x01,0x3c]
34 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
35 # CHECK: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
36 # CHECK: sw      $10, %lo(symbol)($1)    # encoding: [A,A,0x2a,0xac]
37 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
38 # CHECK: lui     $10, 10                 # encoding: [0x0a,0x00,0x0a,0x3c]
39 # CHECK: addu    $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
40 # CHECK: lw      $10, 123($10)           # encoding: [0x7b,0x00,0x4a,0x8d]
41 # CHECK: lui     $1, 2                   # encoding: [0x02,0x00,0x01,0x3c]
42 # CHECK: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
43 # CHECK: sw      $10, 57920($1)          # encoding: [0x40,0xe2,0x2a,0xac]
44
45 # CHECK:     lui     $8, %hi(symbol)     # encoding: [A,A,0x08,0x3c]
46 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
47 # CHECK-NOT: move    $8, $8              # encoding: [0x21,0x40,0x00,0x01]
48 # CHECK:     lw      $8, %lo(symbol)($8) # encoding: [A,A,0x08,0x8d]
49 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
50 # CHECK:     lui     $1, %hi(symbol)     # encoding: [A,A,0x01,0x3c]
51 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_HI, kind: fixup_Mips_HI16
52 # CHECK-NOT: move    $1, $1              # encoding: [0x21,0x08,0x20,0x00]
53 # CHECK:     sw      $8, %lo(symbol)($1) # encoding: [A,A,0x28,0xac]
54 # CHECK:                                 #   fixup A - offset: 0, value: symbol@ABS_LO, kind: fixup_Mips_LO16
55
56 # CHECK: lui     $1, %hi(symbol)
57 # CHECK: ldc1    $f0, %lo(symbol)($1)
58 # CHECK: lui     $1, %hi(symbol)
59 # CHECK: sdc1    $f0, %lo(symbol)($1)
60
61     li $5,123
62     li $6,-2345
63     li $7,65538
64     li $8, ~7
65     li $9, 0x10000
66     li $10, ~(0x101010)
67
68     la $a0, 20
69     la $7,65538
70     la $a0, 20($a1)
71     la $7,65538($8)
72     la $t0, symbol
73
74     .set noat
75     lw  $t2, symbol($a0)
76     .set at
77     sw  $t2, symbol($t1)
78
79     lw  $t2, 655483($a0)
80     sw  $t2, 123456($t1)
81
82     lw  $8, symbol
83     sw  $8, symbol
84
85     ldc1 $f0, symbol
86     sdc1 $f0, symbol