| OLD | NEW |
| 1 ; Show that we know how to translate move (immediate) ARM instruction. | 1 ; Show that we know how to translate move (immediate) ARM instruction. |
| 2 | 2 |
| 3 ; REQUIRES: allow_dump | 3 ; REQUIRES: allow_dump |
| 4 | 4 |
| 5 ; Compile using standalone assembler. | 5 ; Compile using standalone assembler. |
| 6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ | 6 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ |
| 7 ; RUN: | FileCheck %s --check-prefix=ASM | 7 ; RUN: | FileCheck %s --check-prefix=ASM |
| 8 | 8 |
| 9 ; Show bytes in assembled standalone code. | 9 ; Show bytes in assembled standalone code. |
| 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ | 10 ; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 ; IASM-LABEL: Imm1: | 31 ; IASM-LABEL: Imm1: |
| 32 ; IASM: .byte 0x1 | 32 ; IASM: .byte 0x1 |
| 33 ; IASM: .byte 0x0 | 33 ; IASM: .byte 0x0 |
| 34 ; IASM: .byte 0xa0 | 34 ; IASM: .byte 0xa0 |
| 35 ; IASM: .byte 0xe3 | 35 ; IASM: .byte 0xe3 |
| 36 | 36 |
| 37 | 37 |
| 38 define internal i32 @rotateFImmAA() { | 38 define internal i32 @rotateFImmAA() { |
| 39 ; immediate = 0x000002a8 = b 0000 0000 0000 0000 0000 0010 1010 1000 | 39 ; immediate = 0x000002a8 = b 0000 0000 0000 0000 0000 0010 1010 1000 |
| 40 ret i32 680 | 40 ret i32 680 |
| 41 } | 41 } |
| 42 | 42 |
| 43 ; ASM-LABEL: rotateFImmAA: | 43 ; ASM-LABEL: rotateFImmAA: |
| 44 ; ASM: mov r0, #680 | 44 ; ASM: mov r0, #680 |
| 45 | 45 |
| 46 ; DIS-LABEL:00000010 <rotateFImmAA>: | 46 ; DIS-LABEL:00000010 <rotateFImmAA>: |
| 47 ; DIS-NEXT: 10: e3a00faa | 47 ; DIS-NEXT: 10: e3a00faa |
| 48 | 48 |
| 49 ; IASM-LABEL: rotateFImmAA: | 49 ; IASM-LABEL: rotateFImmAA: |
| 50 ; IASM: .byte 0xaa | 50 ; IASM: .byte 0xaa |
| (...skipping 13 matching lines...) Expand all Loading... |
| 64 ; DIS-NEXT: 20: e3a00eaa | 64 ; DIS-NEXT: 20: e3a00eaa |
| 65 | 65 |
| 66 ; IASM-LABEL: rotateEImmAA: | 66 ; IASM-LABEL: rotateEImmAA: |
| 67 ; IASM: .byte 0xaa | 67 ; IASM: .byte 0xaa |
| 68 ; IASM: .byte 0xe | 68 ; IASM: .byte 0xe |
| 69 ; IASM: .byte 0xa0 | 69 ; IASM: .byte 0xa0 |
| 70 ; IASM: .byte 0xe3 | 70 ; IASM: .byte 0xe3 |
| 71 | 71 |
| 72 define internal i32 @rotateDImmAA() { | 72 define internal i32 @rotateDImmAA() { |
| 73 ; immediate = 0x00002a80 = b 0000 0000 0000 0000 0010 1010 1000 0000 | 73 ; immediate = 0x00002a80 = b 0000 0000 0000 0000 0010 1010 1000 0000 |
| 74 ret i32 10880 | 74 ret i32 10880 |
| 75 } | 75 } |
| 76 | 76 |
| 77 ; ASM-LABEL: rotateDImmAA: | 77 ; ASM-LABEL: rotateDImmAA: |
| 78 ; ASM: mov r0, #10880 | 78 ; ASM: mov r0, #10880 |
| 79 | 79 |
| 80 ; DIS-LABEL:00000030 <rotateDImmAA>: | 80 ; DIS-LABEL:00000030 <rotateDImmAA>: |
| 81 ; DIS-NEXT: 30: e3a00daa | 81 ; DIS-NEXT: 30: e3a00daa |
| 82 | 82 |
| 83 ; IASM-LABEL: rotateDImmAA: | 83 ; IASM-LABEL: rotateDImmAA: |
| 84 ; IASM: .byte 0xaa | 84 ; IASM: .byte 0xaa |
| 85 ; IASM: .byte 0xd | 85 ; IASM: .byte 0xd |
| 86 ; IASM: .byte 0xa0 | 86 ; IASM: .byte 0xa0 |
| 87 ; IASM: .byte 0xe3 | 87 ; IASM: .byte 0xe3 |
| 88 | 88 |
| 89 define internal i32 @rotateCImmAA() { | 89 define internal i32 @rotateCImmAA() { |
| 90 ; immediate = 0x0000aa00 = b 0000 0000 0000 0000 1010 1010 0000 0000 | 90 ; immediate = 0x0000aa00 = b 0000 0000 0000 0000 1010 1010 0000 0000 |
| 91 ret i32 43520 | 91 ret i32 43520 |
| 92 } | 92 } |
| 93 | 93 |
| 94 ; ASM-LABEL: rotateCImmAA: | 94 ; ASM-LABEL: rotateCImmAA: |
| 95 ; ASM: mov r0, #43520 | 95 ; ASM: mov r0, #43520 |
| 96 | 96 |
| 97 ; DIS-LABEL:00000040 <rotateCImmAA>: | 97 ; DIS-LABEL:00000040 <rotateCImmAA>: |
| 98 ; DIS-NEXT: 40: e3a00caa | 98 ; DIS-NEXT: 40: e3a00caa |
| 99 | 99 |
| 100 ; IASM-LABEL: rotateCImmAA: | 100 ; IASM-LABEL: rotateCImmAA: |
| 101 ; IASM: .byte 0xaa | 101 ; IASM: .byte 0xaa |
| 102 ; IASM: .byte 0xc | 102 ; IASM: .byte 0xc |
| 103 ; IASM: .byte 0xa0 | 103 ; IASM: .byte 0xa0 |
| 104 ; IASM: .byte 0xe3 | 104 ; IASM: .byte 0xe3 |
| 105 | 105 |
| 106 define internal i32 @rotateBImmAA() { | 106 define internal i32 @rotateBImmAA() { |
| 107 ; immediate = 0x0002a800 = b 0000 0000 0000 0010 1010 1000 0000 0000 | 107 ; immediate = 0x0002a800 = b 0000 0000 0000 0010 1010 1000 0000 0000 |
| 108 ret i32 174080 | 108 ret i32 174080 |
| 109 } | 109 } |
| 110 | 110 |
| 111 ; ASM-LABEL: rotateBImmAA: | 111 ; ASM-LABEL: rotateBImmAA: |
| 112 ; ASM: mov r0, #174080 | 112 ; ASM: mov r0, #174080 |
| 113 | 113 |
| 114 ; DIS-LABEL:00000050 <rotateBImmAA>: | 114 ; DIS-LABEL:00000050 <rotateBImmAA>: |
| 115 ; DIS-NEXT: 50: e3a00baa | 115 ; DIS-NEXT: 50: e3a00baa |
| 116 | 116 |
| 117 ; IASM-LABEL: rotateBImmAA: | 117 ; IASM-LABEL: rotateBImmAA: |
| 118 ; IASM: .byte 0xaa | 118 ; IASM: .byte 0xaa |
| 119 ; IASM: .byte 0xb | 119 ; IASM: .byte 0xb |
| 120 ; IASM: .byte 0xa0 | 120 ; IASM: .byte 0xa0 |
| 121 ; IASM: .byte 0xe3 | 121 ; IASM: .byte 0xe3 |
| 122 | 122 |
| 123 define internal i32 @rotateAImmAA() { | 123 define internal i32 @rotateAImmAA() { |
| 124 ; immediate = 0x000aa000 = b 0000 0000 0000 1010 1010 0000 0000 0000 | 124 ; immediate = 0x000aa000 = b 0000 0000 0000 1010 1010 0000 0000 0000 |
| 125 ret i32 696320 | 125 ret i32 696320 |
| 126 } | 126 } |
| 127 | 127 |
| 128 ; ASM-LABEL: rotateAImmAA: | 128 ; ASM-LABEL: rotateAImmAA: |
| 129 ; ASM: mov r0, #696320 | 129 ; ASM: mov r0, #696320 |
| 130 | 130 |
| 131 ; DIS-LABEL:00000060 <rotateAImmAA>: | 131 ; DIS-LABEL:00000060 <rotateAImmAA>: |
| 132 ; DIS-NEXT: 60: e3a00aaa | 132 ; DIS-NEXT: 60: e3a00aaa |
| 133 | 133 |
| 134 ; IASM-LABEL: rotateAImmAA: | 134 ; IASM-LABEL: rotateAImmAA: |
| 135 ; IASM: .byte 0xaa | 135 ; IASM: .byte 0xaa |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 ; ASM: mov r0, #170 | 299 ; ASM: mov r0, #170 |
| 300 | 300 |
| 301 ; DIS-LABEL:00000100 <rotate0ImmAA>: | 301 ; DIS-LABEL:00000100 <rotate0ImmAA>: |
| 302 ; DIS-NEXT: 100: e3a000aa | 302 ; DIS-NEXT: 100: e3a000aa |
| 303 | 303 |
| 304 ; IASM-LABEL: rotate0ImmAA: | 304 ; IASM-LABEL: rotate0ImmAA: |
| 305 ; IASM: .byte 0xaa | 305 ; IASM: .byte 0xaa |
| 306 ; IASM: .byte 0x0 | 306 ; IASM: .byte 0x0 |
| 307 ; IASM: .byte 0xa0 | 307 ; IASM: .byte 0xa0 |
| 308 ; IASM: .byte 0xe3 | 308 ; IASM: .byte 0xe3 |
| OLD | NEW |