xref: /llvm-project/llvm/test/MC/Sparc/sparc-assembly-exprs.s (revision 252c42354eca54274ed7b10c32c73c6937478e8b)
1! RUN: llvm-mc %s -triple=sparc   -show-encoding | FileCheck %s
2! RUN: llvm-mc %s -triple=sparc -filetype=obj | llvm-objdump -r -d - | FileCheck %s --check-prefix=OBJDUMP
3
4        ! CHECK: mov 1033, %o1  ! encoding: [0x92,0x10,0x24,0x09]
5        mov      (0x400|9), %o1
6        ! CHECK: mov 60, %o2    ! encoding: [0x94,0x10,0x20,0x3c]
7        mov      ((12+3)<<2), %o2
8
9        ! CHECK:   ba      symStart+4           ! encoding: [0x10,0b10AAAAAA,A,A]
10        ! CHECK:   fixup A - offset: 0, value: symStart+4, kind: fixup_sparc_br22
11        ! OBJDUMP: ba    1
12symStart:
13        b        symStart + 4
14
15        ! CHECK:   mov     symEnd-symStart, %g1 ! encoding: [0x82,0x10,0b001AAAAA,A]
16        ! CHECK:   fixup A - offset: 0, value: symEnd-symStart, kind: fixup_sparc_13
17        ! OBJDUMP: mov	   24, %g1
18        mov      symEnd - symStart, %g1
19
20        ! CHECK:   sethi %hi(sym+10), %g2       ! encoding: [0x05,0b00AAAAAA,A,A]
21        ! CHECK:   fixup A - offset: 0, value: %hi(sym+10), kind: fixup_sparc_hi22
22        ! OBJDUMP: R_SPARC_HI22	sym+0xa
23        sethi    %hi(sym + 10), %g2
24
25        ! CHECK:   call foo+40                  ! encoding: [0b01AAAAAA,A,A,A]
26        ! CHECK:   fixup A - offset: 0, value: foo+40, kind: fixup_sparc_call30
27        ! OBJDUMP: R_SPARC_WDISP30 foo+0x28
28        call     foo + 40
29
30        ! CHECK:   add %g1, val+100, %g1        ! encoding: [0x82,0x00,0b011AAAAA,A]
31        ! CHECK:   fixup A - offset: 0, value: val+100, kind: fixup_sparc_13
32        ! OBJDUMP: R_SPARC_13 val+0x64
33        add      %g1, val + 100, %g1
34
35        ! CHECK:   add %g1, 100+val, %g2        ! encoding: [0x84,0x00,0b011AAAAA,A]
36        ! CHECK:   fixup A - offset: 0, value: 100+val, kind: fixup_sparc_13
37        ! OBJDUMP: R_SPARC_13	val+0x64
38        add      %g1, 100 + val, %g2
39symEnd:
40
41! "." is exactly like a temporary symbol equated to the current line.
42! RUN: llvm-mc %s -triple=sparc | FileCheck %s --check-prefix=DOTEXPR
43
44        ! DOTEXPR: .Ltmp0
45        ! DOTEXPR-NEXT: ba .Ltmp0+8
46        b . + 8
47