| OLD | NEW |
| 1 ; Tests basics and corner cases of x86-32 sandboxing, using -Om1 in | 1 ; Tests basics and corner cases of x86-32 sandboxing, using -Om1 in |
| 2 ; the hope that the output will remain stable. When packing bundles, | 2 ; the hope that the output will remain stable. When packing bundles, |
| 3 ; we try to limit to a few instructions with well known sizes and | 3 ; we try to limit to a few instructions with well known sizes and |
| 4 ; minimal use of registers and stack slots in the lowering sequence. | 4 ; minimal use of registers and stack slots in the lowering sequence. |
| 5 | 5 |
| 6 ; RUN: %p2i -i %s --assemble --disassemble --args -Om1 --verbose none \ | 6 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 \ |
| 7 ; RUN: -ffunction-sections -sandbox | FileCheck %s | 7 ; RUN: -ffunction-sections -sandbox | FileCheck %s |
| 8 | 8 |
| 9 declare void @call_target() | 9 declare void @call_target() |
| 10 @global_byte = internal global [1 x i8] zeroinitializer | 10 @global_byte = internal global [1 x i8] zeroinitializer |
| 11 @global_short = internal global [2 x i8] zeroinitializer | 11 @global_short = internal global [2 x i8] zeroinitializer |
| 12 | 12 |
| 13 ; A direct call sequence uses the right mask and register-call sequence. | 13 ; A direct call sequence uses the right mask and register-call sequence. |
| 14 define void @test_direct_call() { | 14 define void @test_direct_call() { |
| 15 entry: | 15 entry: |
| 16 call void @call_target() | 16 call void @call_target() |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 ret void | 243 ret void |
| 244 } | 244 } |
| 245 ; CHECK-LABEL: checkpoint_restore_stack_adjustment | 245 ; CHECK-LABEL: checkpoint_restore_stack_adjustment |
| 246 ; CHECK: call | 246 ; CHECK: call |
| 247 ; CHECK: sub esp,0x10 | 247 ; CHECK: sub esp,0x10 |
| 248 ; The address of %arg should be [esp+0x20], not [esp+0x30]. | 248 ; The address of %arg should be [esp+0x20], not [esp+0x30]. |
| 249 ; CHECK-NEXT: mov [[REG:.*]],DWORD PTR [esp+0x20] | 249 ; CHECK-NEXT: mov [[REG:.*]],DWORD PTR [esp+0x20] |
| 250 ; CHECK-NEXT: mov DWORD PTR [esp],[[REG]] | 250 ; CHECK-NEXT: mov DWORD PTR [esp],[[REG]] |
| 251 ; CHECK: call | 251 ; CHECK: call |
| 252 ; CHECK: add esp,0x10 | 252 ; CHECK: add esp,0x10 |
| OLD | NEW |