399 lines · plain
1## A larger branch relaxation test that requires multiple relaxation steps.2# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t3# RUN: llvm-objdump -d %t | FileCheck %s4 5## Regression test that we use jump short instead of jump near6## (see the reverted be5a845e4c29aadb513ae6e5e2879dccf37efdbb).7# CHECK: 4a9: eb 00 jmp 0x4ab8# CHECK: 5a3: eb 00 jmp 0x5a59# CHECK-NEXT: 5a5: eb 00 jmp 0x5a710# CHECK-NEXT: 5a7: eb 00 jmp 0x5a911# CHECK-NEXT: 5a9: eb 00 jmp 0x5ab12# CHECK-NEXT: 5ab: e9 fb fe ff ff jmp 0x4ab13# CHECK-NEXT: 5b0: eb 00 jmp 0x5b214 15 pushq %rbp16 movq %rsp, %rbp17 movq %rcx, (%rbp)18 movq %r8, (%rbp)19 movl $0, (%rbp)20 movl $0, (%rbp)21 movl $0, (%rbp)22 cmpq $0, (%rbp)23 je .LBB0_224 movl $0, (%rbp)25 jmp .LBB0_3026.LBB0_2:27 jmp .LBB0_328.LBB0_3:29 movq (%rbp), %rax30 movsbl (%rax), %ecx31 xorl %eax, %eax32 cmpl %ecx, %eax33 jne .LBB0_2934 jmp .LBB0_535.LBB0_5:36 movb $0, %al37 callq sqlite3_stepPLT38 movl %eax, (%rbp)39 cmpq $0, (%rbp)40 je .LBB0_2341 movl $100, %eax42 cmpl (%rbp), %eax43 sete %al44 andb $1, %al45 movzbl %al, %eax46 cmpl (%rbp), %eax47 jne .LBB0_2348 cmpl $0, (%rbp)49 je .LBB0_2350 movq (%rbp), %rax51 movl (%rax), %eax52 andl $256, %eax53 cmpl $0, %eax54 je .LBB0_2355 cmpl $0, (%rbp)56 je .LBB0_2257 movl $0, (%rbp)58.LBB0_11:59 cmpl $0, (%rbp)60 je .LBB0_1361 movl (%rbp), %esi62 xorl %edi, %edi63 movb $0, %al64 callq sqlite3_free_tablePLT65 jmp .LBB0_1166.LBB0_13:67 movq (%rbp), %rax68 movslq (%rbp), %rcx69 cmpb $0, (%rax,%rcx)70 je .LBB0_1571 movq (%rbp), %rax72 movb $1, 8(%rax)73.LBB0_15:74 movq (%rbp), %rax75 movslq (%rbp), %rcx76 addq %rcx, %rax77 movq %rax, (%rip)78 movl $0, (%rbp)79.LBB0_16:80 movl (%rbp), %eax81 cmpl (%rbp), %eax82 jge .LBB0_2183 movl $0, (%rbp)84 movl $0, (%rbp)85 movq (%rbp), %rdi86 movb $0, %al87 callq sqlite3_free_tablePLT88 movq (%rip), %rax89 movslq (%rbp), %rcx90 movl $5, %edx91 cmpq %rdx, (%rax,%rcx,)92 je .LBB0_1993 movq (%rbp), %rax94 movb $1, 8(%rax)95 jmp .LBB0_3096.LBB0_19:97 jmp .LBB0_2098.LBB0_20:99 movl (%rbp), %eax100 addl $1, %eax101 movl %eax, (%rbp)102 jmp .LBB0_16103.LBB0_21:104 jmp .LBB0_22105.LBB0_22:106 jmp .LBB0_23107.LBB0_23:108 cmpl $0, (%rbp)109 je .LBB0_27110 movb $0, %al111 callq sqlite3_stepPLT112 movl %eax, (%rbp)113 movl $0, (%rbp)114 cmpl $0, (%rbp)115 je .LBB0_26116 jmp .LBB0_28117.LBB0_26:118 jmp .LBB0_27119.LBB0_27:120 jmp .LBB0_5121.LBB0_28:122 jmp .LBB0_3123.LBB0_29:124 jmp .LBB0_30125.LBB0_30:126 movl (%rbp), %eax127 addq $96, %rsp128 popq %rbp129 retq130 .p2align 4, 0x90131 movq %rsp, %rbp132 subq $48, %rsp133 movq %rdi, (%rbp)134 movl %esi, (%rbp)135 movl %edx, (%rbp)136 cmpq $0, sqlite3_get_table_res_00137 movq (%rbp), %rax138 jmp .LBB1_8139 movq $0, (%rbp)140 movq (%rbp), %rdi141 leaq sqlite3_get_table_zSql0, %rsi142 leaq sqlite3_get_table_cb0, %rdx143 leaq sqlite3_get_table_res0, %rcx144 leaq (%rip), %r8145 callq sqlite3_exec146 movl %eax, (%rip)147 movslq (%rbp), %rax148 movq %rax, (%rbp)149 movl (%rip), %eax150 andl $5, %eax151 cmpl $0, %eax152 je .LBB1_4153 movl (%rip), %ecx154 movq (%rbp), %rax155 movl %ecx, (%rax)156 movl (rip), %eax157 movl %eax, (%rbp)158 jmp .LBB1_8159.LBB1_4:160 movsbl (%rip), %edi161 movb $0, %al162 callq sqlite3_free_tablePLT163 cmpl $0, (%rip)164 je .LBB1_6165 movq (%rip), %rax166 movsbl (%rax), %edi167 movb $0, %al168 callq sqlite3_free_tablePLT169.LBB1_6:170 movq (rip), %rdi171 movslq (%rbp), %rsi172 shlq $0, %rsi173 addq $1, %rsi174 movb $0, %al175 callq sqlite3_mallocPLT176 movq %rax, (%rbp)177 cmpq $0, (%rbp)178 je .LBB1_8179 movl $1, (%rbp)180.LBB1_8:181 movl (%rbp), %eax182 addq $48, %rsp183 .p2align 4, 0x90184 movq (%rbp), %rax185 movl 28(%rax), %eax186 movq (%rbp), %rcx187 addl 16(%rcx), %eax188 cmpl $0, %eax189 movq (%rbp), %rax190 movl 16(%rax), %ecx191 addl (%rbp), %ecx192 addl $1, %ecx193 movq (%rbp), %rax194 movl %ecx, 16(%rax)195 jmp .LBB2_14196 movq (%rbp), %rax197 cmpl $0, 20(%rax)198 je .LBB2_10199 movl $0, (%rbp)200 movq (%rbp), %rax201 movl $0, 24(%rax)202.LBB2_4:203 movl (%rbp), %eax204 cmpl (%rbp), %eax205 jge .LBB2_7206 movq (%rbp), %rax207 movslq (%rbp), %rcx208 movsbl (%rax,%rcx), %esi209 leaq .str, %rdi210 movb $0, %al211 callq sqlite3_mprintf@PLT212 movq %rax, -64(%rbp)213 movl -56(%rbp), %eax214 addl $1, %eax215 movl %eax, -56(%rbp)216 jmp .LBB2_4217.LBB2_7:218 cmpq $0, -64(%rbp)219 je .LBB2_9220 jmp .LBB2_9221.LBB2_9:222 movq -64(%rbp), %rdx223 movq -48(%rbp), %rax224 movq (%rax), %rax225 movq -48(%rbp), %rsi226 movl 28(%rsi), %ecx227 movl %ecx, %edi228 addl $1, %edi229 movl %edi, 28(%rsi)230 movslq %ecx, %rcx231 movq %rdx, (%rax,%rcx,8)232 jmp .LBB2_13233.LBB2_10:234 movq -48(%rbp), %rax235 movslq -20(%rbp), %rcx236 cmpq %rcx, %rax237 je .LBB2_12238 movq -48(%rbp), %rax239 movq 8(%rax), %rdi240 movb $0, %al241 callq sqlite3_free_table@PLT242 leaq .L.str, %rdi243 movb $0, %al244 callq sqlite3_mprintf@PLT245 movq %rax, %rcx246 movq -48(%rbp), %rax247 movq %rcx, 8(%rax)248 movq -48(%rbp), %rax249 movl $1, 32(%rax)250 movl $1, -4(%rbp)251 jmp .LBB2_15252.LBB2_12:253 jmp .LBB2_13254.LBB2_13:255 movl $0, -4(%rbp)256 jmp .LBB2_15257.LBB2_14:258.LBB2_15:259 movl -4(%rbp), %eax260 addq $64, %rsp261 popq %rbp262 .p2align 4, 0x90263sqlite3_complete:264 je .LBB3_54265 je .LBB3_25266 je .LBB3_25267 je .LBB3_25268 jmp .LBB3_28269 movl $42, %eax270 cmpq %rax, -160271 je .LBB3_5272 jmp .LBB3_53273.LBB3_5:274 jmp .LBB3_6275.LBB3_6:276 movq -160, %rax277 movsbl 0, %ecx278 xorl %eax, %eax279 movb $1, %al280 movl $42, %ecx281 cmpq %rcx, -160282 movb %al, -340283 jne .LBB3_9284 movq -160, %rax285 movsbl 10, %eax286 cmpl $0, %eax287 setne %al288 movb %al, -340289.LBB3_9:290 movb -340, %al291 movb %al, -330292 movb -330, %al293 testb $1, %al294 jne .LBB3_11295 jmp .LBB3_14296.LBB3_11:297 movq -160, %rax298 movsbl 0, %eax299 cmpl $0, %eax300 jne .LBB3_13301 movl $0, -40302 jmp .LBB3_54303.LBB3_13:304 jmp .LBB3_6305.LBB3_14:306 jmp .LBB3_53307 movq -160, %rax308 movsbl 10, %eax309 cmpl $45, %eax310 je .LBB3_17311 movb $2, -170312 jmp .LBB3_53313.LBB3_17:314 jmp .LBB3_18315.LBB3_18:316 movq -160, %rax317 movsbl 0, %ecx318 xorl %eax, %eax319 cmpl $0, %ecx320 movb %al, -350321 jmp .LBB3_53322.LBB3_25:323 movl $0, -40324 jmp .LBB3_54325 jmp .LBB3_53326.LBB3_28:327 je .LBB3_52328 jmp .LBB3_52329 jmp .LBB3_31330.LBB3_31:331 movq -160, %rax332 movslq -280, %rcx333 movsbl 0, %ecx334 movb -360, %al335 andb $1, %cl336 movzbl %cl, %ecx337 movl %ecx, -240338 testb $1, %al339 jne .LBB3_36340 jmp .LBB3_51341.LBB3_36:342 movq -160, %rax343 movsbl 0, %eax344 orl $32, %eax345 cmpl $0, -280346 je .LBB3_40347 movq -160, %rdi348 leaq .L.str, %rsi349 movl $7, %edx350 movb $0, %al351 callq sqlite3StrNICmp@PLT352 cmpl $0, %eax353 je .LBB3_40354 jmp .LBB3_48355.LBB3_40:356 cmpl $0, -280357 je .LBB3_43358 movq -160, %rdi359 leaq .L.str, %rsi360 movl $4, %edx361 movb $0, %al362 callq sqlite3StrNICmp@PLT363 cmpl $0, %eax364 je .LBB3_43365 movb $5, -170366 jmp .LBB3_47367.LBB3_43:368 cmpl $0, -280369 je .LBB3_46370 movq -160, %rdi371 leaq .L.str, %rsi372 movl $9, %edx373 movb $0, %al374 callq sqlite3StrNICmp@PLT375 cmpl $0, %eax376 je .LBB3_46377 movl -280, %ecx378 subl $1, %ecx379 movq -160, %rax380 movslq %ecx, %rcx381 addq %rcx, %rax382 movq %rax, -160383.LBB3_46:384 jmp .LBB3_47385.LBB3_47:386 jmp .LBB3_48387.LBB3_48:388 jmp .LBB3_49389.LBB3_49:390 jmp .LBB3_50391.LBB3_50:392 jmp .LBB3_31393.LBB3_51:394 jmp .LBB3_52395.LBB3_52:396.LBB3_53:397.LBB3_54:398.L.str:399