1ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding \ 2ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# RUN: -mcpu=mips32r2 -mattr=micromips | FileCheck %s 3ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# Check that the assembler can handle the documented syntax 4ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# for macro instructions 5ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic#------------------------------------------------------------------------------ 6ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# Load immediate instructions 7ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic#------------------------------------------------------------------------------ 8ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: ori $5, $zero, 123 # encoding: [0xa0,0x50,0x7b,0x00] 9ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addiu $6, $zero, -2345 # encoding: [0xc0,0x30,0xd7,0xf6] 10ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $7, 1 # encoding: [0xa7,0x41,0x01,0x00] 11ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: ori $7, $7, 2 # encoding: [0xe7,0x50,0x02,0x00] 12ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addiu $4, $zero, 20 # encoding: [0x80,0x30,0x14,0x00] 13ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $7, 1 # encoding: [0xa7,0x41,0x01,0x00] 14ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: ori $7, $7, 2 # encoding: [0xe7,0x50,0x02,0x00] 15ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addiu $4, $5, 20 # encoding: [0x85,0x30,0x14,0x00] 16ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $7, 1 # encoding: [0xa7,0x41,0x01,0x00] 17ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: ori $7, $7, 2 # encoding: [0xe7,0x50,0x02,0x00] 18ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addu $7, $7, $8 # encoding: [0x07,0x01,0x50,0x39] 19ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $10, %hi(symbol) # encoding: [0xaa'A',0x41'A',0x00,0x00] 20ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: # fixup A - offset: 0, 21ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: value: symbol@ABS_HI, 22ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: kind: fixup_MICROMIPS_HI16 23ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addu $10, $10, $4 # encoding: [0x8a,0x00,0x50,0x51] 24ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lw $10, %lo(symbol)($10) # encoding: [0x4a'A',0xfd'A',0x00,0x00] 25ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: # fixup A - offset: 0, 26ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: value: symbol@ABS_LO, 27ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: kind: fixup_MICROMIPS_LO16 28ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $1, %hi(symbol) # encoding: [0xa1'A',0x41'A',0x00,0x00] 29ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: # fixup A - offset: 0, 30ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: value: symbol@ABS_HI, 31ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: kind: fixup_MICROMIPS_HI16 32ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addu $1, $1, $9 # encoding: [0x21,0x01,0x50,0x09] 33ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: sw $10, %lo(symbol)($1) # encoding: [0x41'A',0xf9'A',0x00,0x00] 34ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: # fixup A - offset: 0, 35ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: value: symbol@ABS_LO, 36ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: kind: fixup_MICROMIPS_LO16 37ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $10, 10 # encoding: [0xaa,0x41,0x0a,0x00] 38ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addu $10, $10, $4 # encoding: [0x8a,0x00,0x50,0x51] 39ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lw $10, 123($10) # encoding: [0x4a,0xfd,0x7b,0x00] 40ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: lui $1, 2 # encoding: [0xa1,0x41,0x02,0x00] 41ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: addu $1, $1, $9 # encoding: [0x21,0x01,0x50,0x09] 42ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic# CHECK: sw $10, 57920($1) # encoding: [0x41,0xf9,0x40,0xe2] 43ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic 44ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic li $5,123 45ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic li $6,-2345 46ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic li $7,65538 47ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic 48ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic la $a0, 20 49ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic la $7,65538 50ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic la $a0, 20($a1) 51ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic la $7,65538($8) 52ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic 53ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic lw $t2, symbol($a0) 54ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic sw $t2, symbol($t1) 55ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic 56ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic lw $t2, 655483($a0) 57ef713e27b1b9f685adc1ae35526d92c6ad0324e5Zoran Jovanovic sw $t2, 123456($t1) 58