| ## Test data directives. |
| # RUN: llvm-mc --triple=loongarch32 < %s \ |
| # RUN: | FileCheck --check-prefix=CHECK-ASM %s |
| # RUN: llvm-mc --triple=loongarch64 < %s \ |
| # RUN: | FileCheck --check-prefix=CHECK-ASM %s |
| # RUN: llvm-mc --triple=loongarch32 --filetype=obj < %s | llvm-objdump -s - \ |
| # RUN: | FileCheck --check-prefix=CHECK-DATA %s |
| # RUN: llvm-mc --triple=loongarch64 --filetype=obj < %s | llvm-objdump -s - \ |
| # RUN: | FileCheck --check-prefix=CHECK-DATA %s |
| # RUN: not llvm-mc --triple=loongarch32 --defsym=ERR=1 < %s 2>&1 \ |
| # RUN: | FileCheck %s --check-prefix=CHECK-ERR |
| # RUN: not llvm-mc --triple=loongarch64 --defsym=ERR=1 < %s 2>&1 \ |
| # RUN: | FileCheck %s --check-prefix=CHECK-ERR |
| |
| .data |
| |
| # CHECK-ASM: .byte 0 |
| # CHECK-ASM-NEXT: .byte 1 |
| # CHECK-ASM-NEXT: .byte 171 |
| # CHECK-ASM-NEXT: .byte 255 |
| # CHECK-DATA: Contents of section .data: |
| # CHECK-DATA-NEXT: 0000 0001abff 0100ffff 0100ffff 0100ffff |
| .byte 0 |
| .byte 1 |
| .byte 0xab |
| .byte 0xff |
| |
| # CHECK-ASM: .half 1 |
| # CHECK-ASM-NEXT: .half 65535 |
| .half 0x1 |
| .half 0xffff |
| |
| # CHECK-ASM: .half 1 |
| # CHECK-ASM-NEXT: .half 65535 |
| .2byte 0x1 |
| .2byte 0xffff |
| |
| # CHECK-ASM: .half 1 |
| # CHECK-ASM-NEXT: .half 65535 |
| .short 0x1 |
| .short 0xffff |
| |
| # CHECK-ASM: .half 0 |
| # CHECK-ASM-NEXT: .half 1 |
| # CHECK-ASM-NEXT: .half 4660 |
| # CHECK-ASM-NEXT: .half 65535 |
| # CHECK-DATA-NEXT: 0010 00000100 3412ffff 01000000 ffffffff |
| .hword 0 |
| .hword 0x1 |
| .hword 0x1234 |
| .hword 0xffff |
| |
| # CHECK-ASM: .word 1 |
| # CHECK-ASM-NEXT: .word 4294967295 |
| .word 0x1 |
| .word 0xffffffff |
| |
| # CHECK-ASM: .word 1 |
| # CHECK-ASM-NEXT: .word 4294967295 |
| # CHECK-DATA-NEXT: 0020 01000000 ffffffff 01000000 ffffffff |
| .long 0x1 |
| .long 0xffffffff |
| |
| # CHECK-ASM: .word 1 |
| # CHECK-ASM-NEXT: .word 4294967295 |
| .4byte 0x1 |
| .4byte 0xffffffff |
| |
| # CHECK-ASM: .dword 1 |
| # CHECK-ASM-NEXT: .dword 1234605616436508552 |
| # CHECK-DATA-NEXT: 0030 01000000 00000000 88776655 44332211 |
| .dword 0x1 |
| .dword 0x1122334455667788 |
| |
| # CHECK-ASM: .dword 1 |
| # CHECK-ASM-NEXT: .dword 1234605616436508552 |
| # CHECK-DATA-NEXT: 0040 01000000 00000000 88776655 44332211 |
| .8byte 0x1 |
| .8byte 0x1122334455667788 |
| |
| .ifdef ERR |
| # CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value |
| .byte 0xffa |
| # CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value |
| .half 0xffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value |
| .short 0xffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value |
| .hword 0xffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value |
| .2byte 0xffffa |
| # CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value |
| .word 0xffffffffa |
| # CHECK-ERR: :[[#@LINE+1]]:7: error: out of range literal value |
| .long 0xffffffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: out of range literal value |
| .4byte 0xffffffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: literal value out of range for directive |
| .dword 0xffffffffffffffffa |
| # CHECK-ERR: :[[#@LINE+1]]:8: error: literal value out of range for directive |
| .8byte 0xffffffffffffffffa |
| .endif |