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(__APPLE__) 7.text 8 9 10 11 12 13 14 15 16 17.globl _abi_test_trampoline 18.private_extern _abi_test_trampoline 19.p2align 4 20_abi_test_trampoline: 21 22 23_CET_ENDBR 24 25 26 27 28 29 30 31 32 33 subq $120,%rsp 34 35 36 movq %r8,48(%rsp) 37 movq %rbx,64(%rsp) 38 39 40 movq %rbp,72(%rsp) 41 42 43 movq %r12,80(%rsp) 44 45 46 movq %r13,88(%rsp) 47 48 49 movq %r14,96(%rsp) 50 51 52 movq %r15,104(%rsp) 53 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 L$args_done 72 movq (%r10),%rdi 73 addq $8,%r10 74 decq %r11 75 js L$args_done 76 movq (%r10),%rsi 77 addq $8,%r10 78 decq %r11 79 js L$args_done 80 movq (%r10),%rdx 81 addq $8,%r10 82 decq %r11 83 js L$args_done 84 movq (%r10),%rcx 85 addq $8,%r10 86 decq %r11 87 js L$args_done 88 movq (%r10),%r8 89 addq $8,%r10 90 decq %r11 91 js L$args_done 92 movq (%r10),%r9 93 addq $8,%r10 94 leaq 0(%rsp),%rax 95L$args_loop: 96 decq %r11 97 js L$args_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 L$args_loop 112 113L$args_done: 114 movq 32(%rsp),%rax 115 movq 48(%rsp),%r10 116 testq %r10,%r10 117 jz L$no_unwind 118 119 120 pushfq 121 orq $0x100,0(%rsp) 122 popfq 123 124 125 126 nop 127.globl _abi_test_unwind_start 128.private_extern _abi_test_unwind_start 129_abi_test_unwind_start: 130 131 call *%rax 132.globl _abi_test_unwind_return 133.private_extern _abi_test_unwind_return 134_abi_test_unwind_return: 135 136 137 138 139 pushfq 140 andq $-0x101,0(%rsp) 141 popfq 142.globl _abi_test_unwind_stop 143.private_extern _abi_test_unwind_stop 144_abi_test_unwind_stop: 145 146 jmp L$call_done 147 148L$no_unwind: 149 call *%rax 150 151L$call_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 162 movq 72(%rsp),%rbp 163 164 movq 80(%rsp),%r12 165 166 movq 88(%rsp),%r13 167 168 movq 96(%rsp),%r14 169 170 movq 104(%rsp),%r15 171 172 addq $120,%rsp 173 174 175 176 ret 177 178 179 180 181.globl _abi_test_clobber_rax 182.private_extern _abi_test_clobber_rax 183.p2align 4 184_abi_test_clobber_rax: 185_CET_ENDBR 186 xorq %rax,%rax 187 ret 188 189 190.globl _abi_test_clobber_rbx 191.private_extern _abi_test_clobber_rbx 192.p2align 4 193_abi_test_clobber_rbx: 194_CET_ENDBR 195 xorq %rbx,%rbx 196 ret 197 198 199.globl _abi_test_clobber_rcx 200.private_extern _abi_test_clobber_rcx 201.p2align 4 202_abi_test_clobber_rcx: 203_CET_ENDBR 204 xorq %rcx,%rcx 205 ret 206 207 208.globl _abi_test_clobber_rdx 209.private_extern _abi_test_clobber_rdx 210.p2align 4 211_abi_test_clobber_rdx: 212_CET_ENDBR 213 xorq %rdx,%rdx 214 ret 215 216 217.globl _abi_test_clobber_rdi 218.private_extern _abi_test_clobber_rdi 219.p2align 4 220_abi_test_clobber_rdi: 221_CET_ENDBR 222 xorq %rdi,%rdi 223 ret 224 225 226.globl _abi_test_clobber_rsi 227.private_extern _abi_test_clobber_rsi 228.p2align 4 229_abi_test_clobber_rsi: 230_CET_ENDBR 231 xorq %rsi,%rsi 232 ret 233 234 235.globl _abi_test_clobber_rbp 236.private_extern _abi_test_clobber_rbp 237.p2align 4 238_abi_test_clobber_rbp: 239_CET_ENDBR 240 xorq %rbp,%rbp 241 ret 242 243 244.globl _abi_test_clobber_r8 245.private_extern _abi_test_clobber_r8 246.p2align 4 247_abi_test_clobber_r8: 248_CET_ENDBR 249 xorq %r8,%r8 250 ret 251 252 253.globl _abi_test_clobber_r9 254.private_extern _abi_test_clobber_r9 255.p2align 4 256_abi_test_clobber_r9: 257_CET_ENDBR 258 xorq %r9,%r9 259 ret 260 261 262.globl _abi_test_clobber_r10 263.private_extern _abi_test_clobber_r10 264.p2align 4 265_abi_test_clobber_r10: 266_CET_ENDBR 267 xorq %r10,%r10 268 ret 269 270 271.globl _abi_test_clobber_r11 272.private_extern _abi_test_clobber_r11 273.p2align 4 274_abi_test_clobber_r11: 275_CET_ENDBR 276 xorq %r11,%r11 277 ret 278 279 280.globl _abi_test_clobber_r12 281.private_extern _abi_test_clobber_r12 282.p2align 4 283_abi_test_clobber_r12: 284_CET_ENDBR 285 xorq %r12,%r12 286 ret 287 288 289.globl _abi_test_clobber_r13 290.private_extern _abi_test_clobber_r13 291.p2align 4 292_abi_test_clobber_r13: 293_CET_ENDBR 294 xorq %r13,%r13 295 ret 296 297 298.globl _abi_test_clobber_r14 299.private_extern _abi_test_clobber_r14 300.p2align 4 301_abi_test_clobber_r14: 302_CET_ENDBR 303 xorq %r14,%r14 304 ret 305 306 307.globl _abi_test_clobber_r15 308.private_extern _abi_test_clobber_r15 309.p2align 4 310_abi_test_clobber_r15: 311_CET_ENDBR 312 xorq %r15,%r15 313 ret 314 315 316.globl _abi_test_clobber_xmm0 317.private_extern _abi_test_clobber_xmm0 318.p2align 4 319_abi_test_clobber_xmm0: 320_CET_ENDBR 321 pxor %xmm0,%xmm0 322 ret 323 324 325.globl _abi_test_clobber_xmm1 326.private_extern _abi_test_clobber_xmm1 327.p2align 4 328_abi_test_clobber_xmm1: 329_CET_ENDBR 330 pxor %xmm1,%xmm1 331 ret 332 333 334.globl _abi_test_clobber_xmm2 335.private_extern _abi_test_clobber_xmm2 336.p2align 4 337_abi_test_clobber_xmm2: 338_CET_ENDBR 339 pxor %xmm2,%xmm2 340 ret 341 342 343.globl _abi_test_clobber_xmm3 344.private_extern _abi_test_clobber_xmm3 345.p2align 4 346_abi_test_clobber_xmm3: 347_CET_ENDBR 348 pxor %xmm3,%xmm3 349 ret 350 351 352.globl _abi_test_clobber_xmm4 353.private_extern _abi_test_clobber_xmm4 354.p2align 4 355_abi_test_clobber_xmm4: 356_CET_ENDBR 357 pxor %xmm4,%xmm4 358 ret 359 360 361.globl _abi_test_clobber_xmm5 362.private_extern _abi_test_clobber_xmm5 363.p2align 4 364_abi_test_clobber_xmm5: 365_CET_ENDBR 366 pxor %xmm5,%xmm5 367 ret 368 369 370.globl _abi_test_clobber_xmm6 371.private_extern _abi_test_clobber_xmm6 372.p2align 4 373_abi_test_clobber_xmm6: 374_CET_ENDBR 375 pxor %xmm6,%xmm6 376 ret 377 378 379.globl _abi_test_clobber_xmm7 380.private_extern _abi_test_clobber_xmm7 381.p2align 4 382_abi_test_clobber_xmm7: 383_CET_ENDBR 384 pxor %xmm7,%xmm7 385 ret 386 387 388.globl _abi_test_clobber_xmm8 389.private_extern _abi_test_clobber_xmm8 390.p2align 4 391_abi_test_clobber_xmm8: 392_CET_ENDBR 393 pxor %xmm8,%xmm8 394 ret 395 396 397.globl _abi_test_clobber_xmm9 398.private_extern _abi_test_clobber_xmm9 399.p2align 4 400_abi_test_clobber_xmm9: 401_CET_ENDBR 402 pxor %xmm9,%xmm9 403 ret 404 405 406.globl _abi_test_clobber_xmm10 407.private_extern _abi_test_clobber_xmm10 408.p2align 4 409_abi_test_clobber_xmm10: 410_CET_ENDBR 411 pxor %xmm10,%xmm10 412 ret 413 414 415.globl _abi_test_clobber_xmm11 416.private_extern _abi_test_clobber_xmm11 417.p2align 4 418_abi_test_clobber_xmm11: 419_CET_ENDBR 420 pxor %xmm11,%xmm11 421 ret 422 423 424.globl _abi_test_clobber_xmm12 425.private_extern _abi_test_clobber_xmm12 426.p2align 4 427_abi_test_clobber_xmm12: 428_CET_ENDBR 429 pxor %xmm12,%xmm12 430 ret 431 432 433.globl _abi_test_clobber_xmm13 434.private_extern _abi_test_clobber_xmm13 435.p2align 4 436_abi_test_clobber_xmm13: 437_CET_ENDBR 438 pxor %xmm13,%xmm13 439 ret 440 441 442.globl _abi_test_clobber_xmm14 443.private_extern _abi_test_clobber_xmm14 444.p2align 4 445_abi_test_clobber_xmm14: 446_CET_ENDBR 447 pxor %xmm14,%xmm14 448 ret 449 450 451.globl _abi_test_clobber_xmm15 452.private_extern _abi_test_clobber_xmm15 453.p2align 4 454_abi_test_clobber_xmm15: 455_CET_ENDBR 456 pxor %xmm15,%xmm15 457 ret 458 459 460 461 462 463.globl _abi_test_bad_unwind_wrong_register 464.private_extern _abi_test_bad_unwind_wrong_register 465.p2align 4 466_abi_test_bad_unwind_wrong_register: 467 468 469_CET_ENDBR 470 pushq %r12 471 472 473 474 475 476 nop 477 popq %r12 478 479 ret 480 481 482 483 484 485 486 487 488.globl _abi_test_bad_unwind_temporary 489.private_extern _abi_test_bad_unwind_temporary 490.p2align 4 491_abi_test_bad_unwind_temporary: 492 493 494_CET_ENDBR 495 pushq %r12 496 497 498 499 movq %r12,%rax 500 incq %rax 501 movq %rax,(%rsp) 502 503 504 505 movq %r12,(%rsp) 506 507 508 popq %r12 509 510 ret 511 512 513 514 515 516 517 518 519.globl _abi_test_get_and_clear_direction_flag 520.private_extern _abi_test_get_and_clear_direction_flag 521_abi_test_get_and_clear_direction_flag: 522_CET_ENDBR 523 pushfq 524 popq %rax 525 andq $0x400,%rax 526 shrq $10,%rax 527 cld 528 ret 529 530 531 532 533 534.globl _abi_test_set_direction_flag 535.private_extern _abi_test_set_direction_flag 536_abi_test_set_direction_flag: 537_CET_ENDBR 538 std 539 ret 540 541#endif 542