1// This file is generated from a similarly-named Perl script in the BoringSSL 2// source tree. Do not edit by hand. 3 4#include <openssl/asm_base.h> 5 6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__) 7.text 8 9 10 11 12 13 14 15 16.type abi_test_trampoline, @function 17.globl abi_test_trampoline 18.hidden abi_test_trampoline 19.align 16 20abi_test_trampoline: 21.cfi_startproc 22 23_CET_ENDBR 24 25 26 27 28 29 30 31 32 33 subq $120,%rsp 34.cfi_adjust_cfa_offset 120 35 36 movq %r8,48(%rsp) 37 movq %rbx,64(%rsp) 38.cfi_offset rbx, -64 39 40 movq %rbp,72(%rsp) 41.cfi_offset rbp, -56 42 43 movq %r12,80(%rsp) 44.cfi_offset r12, -48 45 46 movq %r13,88(%rsp) 47.cfi_offset r13, -40 48 49 movq %r14,96(%rsp) 50.cfi_offset r14, -32 51 52 movq %r15,104(%rsp) 53.cfi_offset r15, -24 54 55 movq 0(%rsi),%rbx 56 movq 8(%rsi),%rbp 57 movq 16(%rsi),%r12 58 movq 24(%rsi),%r13 59 movq 32(%rsi),%r14 60 movq 40(%rsi),%r15 61 62 movq %rdi,32(%rsp) 63 movq %rsi,40(%rsp) 64 65 66 67 68 movq %rdx,%r10 69 movq %rcx,%r11 70 decq %r11 71 js .Largs_done 72 movq (%r10),%rdi 73 addq $8,%r10 74 decq %r11 75 js .Largs_done 76 movq (%r10),%rsi 77 addq $8,%r10 78 decq %r11 79 js .Largs_done 80 movq (%r10),%rdx 81 addq $8,%r10 82 decq %r11 83 js .Largs_done 84 movq (%r10),%rcx 85 addq $8,%r10 86 decq %r11 87 js .Largs_done 88 movq (%r10),%r8 89 addq $8,%r10 90 decq %r11 91 js .Largs_done 92 movq (%r10),%r9 93 addq $8,%r10 94 leaq 0(%rsp),%rax 95.Largs_loop: 96 decq %r11 97 js .Largs_done 98 99 100 101 102 103 104 movq %r11,56(%rsp) 105 movq (%r10),%r11 106 movq %r11,(%rax) 107 movq 56(%rsp),%r11 108 109 addq $8,%r10 110 addq $8,%rax 111 jmp .Largs_loop 112 113.Largs_done: 114 movq 32(%rsp),%rax 115 movq 48(%rsp),%r10 116 testq %r10,%r10 117 jz .Lno_unwind 118 119 120 pushfq 121 orq $0x100,0(%rsp) 122 popfq 123 124 125 126 nop 127.globl abi_test_unwind_start 128.hidden abi_test_unwind_start 129abi_test_unwind_start: 130 131 call *%rax 132.globl abi_test_unwind_return 133.hidden abi_test_unwind_return 134abi_test_unwind_return: 135 136 137 138 139 pushfq 140 andq $-0x101,0(%rsp) 141 popfq 142.globl abi_test_unwind_stop 143.hidden abi_test_unwind_stop 144abi_test_unwind_stop: 145 146 jmp .Lcall_done 147 148.Lno_unwind: 149 call *%rax 150 151.Lcall_done: 152 153 movq 40(%rsp),%rsi 154 movq %rbx,0(%rsi) 155 movq %rbp,8(%rsi) 156 movq %r12,16(%rsi) 157 movq %r13,24(%rsi) 158 movq %r14,32(%rsi) 159 movq %r15,40(%rsi) 160 movq 64(%rsp),%rbx 161.cfi_restore rbx 162 movq 72(%rsp),%rbp 163.cfi_restore rbp 164 movq 80(%rsp),%r12 165.cfi_restore r12 166 movq 88(%rsp),%r13 167.cfi_restore r13 168 movq 96(%rsp),%r14 169.cfi_restore r14 170 movq 104(%rsp),%r15 171.cfi_restore r15 172 addq $120,%rsp 173.cfi_adjust_cfa_offset -120 174 175 176 ret 177.cfi_endproc 178 179.size abi_test_trampoline,.-abi_test_trampoline 180.type abi_test_clobber_rax, @function 181.globl abi_test_clobber_rax 182.hidden abi_test_clobber_rax 183.align 16 184abi_test_clobber_rax: 185_CET_ENDBR 186 xorq %rax,%rax 187 ret 188.size abi_test_clobber_rax,.-abi_test_clobber_rax 189.type abi_test_clobber_rbx, @function 190.globl abi_test_clobber_rbx 191.hidden abi_test_clobber_rbx 192.align 16 193abi_test_clobber_rbx: 194_CET_ENDBR 195 xorq %rbx,%rbx 196 ret 197.size abi_test_clobber_rbx,.-abi_test_clobber_rbx 198.type abi_test_clobber_rcx, @function 199.globl abi_test_clobber_rcx 200.hidden abi_test_clobber_rcx 201.align 16 202abi_test_clobber_rcx: 203_CET_ENDBR 204 xorq %rcx,%rcx 205 ret 206.size abi_test_clobber_rcx,.-abi_test_clobber_rcx 207.type abi_test_clobber_rdx, @function 208.globl abi_test_clobber_rdx 209.hidden abi_test_clobber_rdx 210.align 16 211abi_test_clobber_rdx: 212_CET_ENDBR 213 xorq %rdx,%rdx 214 ret 215.size abi_test_clobber_rdx,.-abi_test_clobber_rdx 216.type abi_test_clobber_rdi, @function 217.globl abi_test_clobber_rdi 218.hidden abi_test_clobber_rdi 219.align 16 220abi_test_clobber_rdi: 221_CET_ENDBR 222 xorq %rdi,%rdi 223 ret 224.size abi_test_clobber_rdi,.-abi_test_clobber_rdi 225.type abi_test_clobber_rsi, @function 226.globl abi_test_clobber_rsi 227.hidden abi_test_clobber_rsi 228.align 16 229abi_test_clobber_rsi: 230_CET_ENDBR 231 xorq %rsi,%rsi 232 ret 233.size abi_test_clobber_rsi,.-abi_test_clobber_rsi 234.type abi_test_clobber_rbp, @function 235.globl abi_test_clobber_rbp 236.hidden abi_test_clobber_rbp 237.align 16 238abi_test_clobber_rbp: 239_CET_ENDBR 240 xorq %rbp,%rbp 241 ret 242.size abi_test_clobber_rbp,.-abi_test_clobber_rbp 243.type abi_test_clobber_r8, @function 244.globl abi_test_clobber_r8 245.hidden abi_test_clobber_r8 246.align 16 247abi_test_clobber_r8: 248_CET_ENDBR 249 xorq %r8,%r8 250 ret 251.size abi_test_clobber_r8,.-abi_test_clobber_r8 252.type abi_test_clobber_r9, @function 253.globl abi_test_clobber_r9 254.hidden abi_test_clobber_r9 255.align 16 256abi_test_clobber_r9: 257_CET_ENDBR 258 xorq %r9,%r9 259 ret 260.size abi_test_clobber_r9,.-abi_test_clobber_r9 261.type abi_test_clobber_r10, @function 262.globl abi_test_clobber_r10 263.hidden abi_test_clobber_r10 264.align 16 265abi_test_clobber_r10: 266_CET_ENDBR 267 xorq %r10,%r10 268 ret 269.size abi_test_clobber_r10,.-abi_test_clobber_r10 270.type abi_test_clobber_r11, @function 271.globl abi_test_clobber_r11 272.hidden abi_test_clobber_r11 273.align 16 274abi_test_clobber_r11: 275_CET_ENDBR 276 xorq %r11,%r11 277 ret 278.size abi_test_clobber_r11,.-abi_test_clobber_r11 279.type abi_test_clobber_r12, @function 280.globl abi_test_clobber_r12 281.hidden abi_test_clobber_r12 282.align 16 283abi_test_clobber_r12: 284_CET_ENDBR 285 xorq %r12,%r12 286 ret 287.size abi_test_clobber_r12,.-abi_test_clobber_r12 288.type abi_test_clobber_r13, @function 289.globl abi_test_clobber_r13 290.hidden abi_test_clobber_r13 291.align 16 292abi_test_clobber_r13: 293_CET_ENDBR 294 xorq %r13,%r13 295 ret 296.size abi_test_clobber_r13,.-abi_test_clobber_r13 297.type abi_test_clobber_r14, @function 298.globl abi_test_clobber_r14 299.hidden abi_test_clobber_r14 300.align 16 301abi_test_clobber_r14: 302_CET_ENDBR 303 xorq %r14,%r14 304 ret 305.size abi_test_clobber_r14,.-abi_test_clobber_r14 306.type abi_test_clobber_r15, @function 307.globl abi_test_clobber_r15 308.hidden abi_test_clobber_r15 309.align 16 310abi_test_clobber_r15: 311_CET_ENDBR 312 xorq %r15,%r15 313 ret 314.size abi_test_clobber_r15,.-abi_test_clobber_r15 315.type abi_test_clobber_xmm0, @function 316.globl abi_test_clobber_xmm0 317.hidden abi_test_clobber_xmm0 318.align 16 319abi_test_clobber_xmm0: 320_CET_ENDBR 321 pxor %xmm0,%xmm0 322 ret 323.size abi_test_clobber_xmm0,.-abi_test_clobber_xmm0 324.type abi_test_clobber_xmm1, @function 325.globl abi_test_clobber_xmm1 326.hidden abi_test_clobber_xmm1 327.align 16 328abi_test_clobber_xmm1: 329_CET_ENDBR 330 pxor %xmm1,%xmm1 331 ret 332.size abi_test_clobber_xmm1,.-abi_test_clobber_xmm1 333.type abi_test_clobber_xmm2, @function 334.globl abi_test_clobber_xmm2 335.hidden abi_test_clobber_xmm2 336.align 16 337abi_test_clobber_xmm2: 338_CET_ENDBR 339 pxor %xmm2,%xmm2 340 ret 341.size abi_test_clobber_xmm2,.-abi_test_clobber_xmm2 342.type abi_test_clobber_xmm3, @function 343.globl abi_test_clobber_xmm3 344.hidden abi_test_clobber_xmm3 345.align 16 346abi_test_clobber_xmm3: 347_CET_ENDBR 348 pxor %xmm3,%xmm3 349 ret 350.size abi_test_clobber_xmm3,.-abi_test_clobber_xmm3 351.type abi_test_clobber_xmm4, @function 352.globl abi_test_clobber_xmm4 353.hidden abi_test_clobber_xmm4 354.align 16 355abi_test_clobber_xmm4: 356_CET_ENDBR 357 pxor %xmm4,%xmm4 358 ret 359.size abi_test_clobber_xmm4,.-abi_test_clobber_xmm4 360.type abi_test_clobber_xmm5, @function 361.globl abi_test_clobber_xmm5 362.hidden abi_test_clobber_xmm5 363.align 16 364abi_test_clobber_xmm5: 365_CET_ENDBR 366 pxor %xmm5,%xmm5 367 ret 368.size abi_test_clobber_xmm5,.-abi_test_clobber_xmm5 369.type abi_test_clobber_xmm6, @function 370.globl abi_test_clobber_xmm6 371.hidden abi_test_clobber_xmm6 372.align 16 373abi_test_clobber_xmm6: 374_CET_ENDBR 375 pxor %xmm6,%xmm6 376 ret 377.size abi_test_clobber_xmm6,.-abi_test_clobber_xmm6 378.type abi_test_clobber_xmm7, @function 379.globl abi_test_clobber_xmm7 380.hidden abi_test_clobber_xmm7 381.align 16 382abi_test_clobber_xmm7: 383_CET_ENDBR 384 pxor %xmm7,%xmm7 385 ret 386.size abi_test_clobber_xmm7,.-abi_test_clobber_xmm7 387.type abi_test_clobber_xmm8, @function 388.globl abi_test_clobber_xmm8 389.hidden abi_test_clobber_xmm8 390.align 16 391abi_test_clobber_xmm8: 392_CET_ENDBR 393 pxor %xmm8,%xmm8 394 ret 395.size abi_test_clobber_xmm8,.-abi_test_clobber_xmm8 396.type abi_test_clobber_xmm9, @function 397.globl abi_test_clobber_xmm9 398.hidden abi_test_clobber_xmm9 399.align 16 400abi_test_clobber_xmm9: 401_CET_ENDBR 402 pxor %xmm9,%xmm9 403 ret 404.size abi_test_clobber_xmm9,.-abi_test_clobber_xmm9 405.type abi_test_clobber_xmm10, @function 406.globl abi_test_clobber_xmm10 407.hidden abi_test_clobber_xmm10 408.align 16 409abi_test_clobber_xmm10: 410_CET_ENDBR 411 pxor %xmm10,%xmm10 412 ret 413.size abi_test_clobber_xmm10,.-abi_test_clobber_xmm10 414.type abi_test_clobber_xmm11, @function 415.globl abi_test_clobber_xmm11 416.hidden abi_test_clobber_xmm11 417.align 16 418abi_test_clobber_xmm11: 419_CET_ENDBR 420 pxor %xmm11,%xmm11 421 ret 422.size abi_test_clobber_xmm11,.-abi_test_clobber_xmm11 423.type abi_test_clobber_xmm12, @function 424.globl abi_test_clobber_xmm12 425.hidden abi_test_clobber_xmm12 426.align 16 427abi_test_clobber_xmm12: 428_CET_ENDBR 429 pxor %xmm12,%xmm12 430 ret 431.size abi_test_clobber_xmm12,.-abi_test_clobber_xmm12 432.type abi_test_clobber_xmm13, @function 433.globl abi_test_clobber_xmm13 434.hidden abi_test_clobber_xmm13 435.align 16 436abi_test_clobber_xmm13: 437_CET_ENDBR 438 pxor %xmm13,%xmm13 439 ret 440.size abi_test_clobber_xmm13,.-abi_test_clobber_xmm13 441.type abi_test_clobber_xmm14, @function 442.globl abi_test_clobber_xmm14 443.hidden abi_test_clobber_xmm14 444.align 16 445abi_test_clobber_xmm14: 446_CET_ENDBR 447 pxor %xmm14,%xmm14 448 ret 449.size abi_test_clobber_xmm14,.-abi_test_clobber_xmm14 450.type abi_test_clobber_xmm15, @function 451.globl abi_test_clobber_xmm15 452.hidden abi_test_clobber_xmm15 453.align 16 454abi_test_clobber_xmm15: 455_CET_ENDBR 456 pxor %xmm15,%xmm15 457 ret 458.size abi_test_clobber_xmm15,.-abi_test_clobber_xmm15 459 460 461 462.type abi_test_bad_unwind_wrong_register, @function 463.globl abi_test_bad_unwind_wrong_register 464.hidden abi_test_bad_unwind_wrong_register 465.align 16 466abi_test_bad_unwind_wrong_register: 467.cfi_startproc 468 469_CET_ENDBR 470 pushq %r12 471.cfi_adjust_cfa_offset 8 472.cfi_offset %r13,-16 473 474 475 476 477 nop 478 popq %r12 479.cfi_adjust_cfa_offset -8 480.cfi_restore %r12 481 ret 482 483.cfi_endproc 484.size abi_test_bad_unwind_wrong_register,.-abi_test_bad_unwind_wrong_register 485 486 487 488 489.type abi_test_bad_unwind_temporary, @function 490.globl abi_test_bad_unwind_temporary 491.hidden abi_test_bad_unwind_temporary 492.align 16 493abi_test_bad_unwind_temporary: 494.cfi_startproc 495 496_CET_ENDBR 497 pushq %r12 498.cfi_adjust_cfa_offset 8 499.cfi_offset %r12,-16 500 501 502 movq %r12,%rax 503 incq %rax 504 movq %rax,(%rsp) 505 506 507 508 movq %r12,(%rsp) 509 510 511 popq %r12 512.cfi_adjust_cfa_offset -8 513.cfi_restore %r12 514 ret 515.cfi_endproc 516 517.size abi_test_bad_unwind_temporary,.-abi_test_bad_unwind_temporary 518 519 520 521 522.type abi_test_set_direction_flag, @function 523.globl abi_test_get_and_clear_direction_flag 524.hidden abi_test_get_and_clear_direction_flag 525abi_test_get_and_clear_direction_flag: 526_CET_ENDBR 527 pushfq 528 popq %rax 529 andq $0x400,%rax 530 shrq $10,%rax 531 cld 532 ret 533.size abi_test_get_and_clear_direction_flag,.-abi_test_get_and_clear_direction_flag 534 535 536 537.type abi_test_set_direction_flag, @function 538.globl abi_test_set_direction_flag 539.hidden abi_test_set_direction_flag 540abi_test_set_direction_flag: 541_CET_ENDBR 542 std 543 ret 544.size abi_test_set_direction_flag,.-abi_test_set_direction_flag 545#endif 546