Created
March 8, 2024 22:11
-
-
Save brandtbucher/9d3cc396dcb15d13f7e971175e987f3a to your computer and use it in GitHub Desktop.
x86_64-unknown-linux-gnu
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// a7920fd5915afd41455261c42b6e8788c63acc748805d466190366e56bbc90eb | |
// $ /home/brandtbucher/.pyenv/versions/3.13-dev/bin/python3.13 ./Tools/jit/build.py x86_64-pc-linux-gnu | |
typedef enum { | |
HoleKind_ARM64_RELOC_GOT_LOAD_PAGE21, | |
HoleKind_ARM64_RELOC_GOT_LOAD_PAGEOFF12, | |
HoleKind_ARM64_RELOC_PAGE21, | |
HoleKind_ARM64_RELOC_PAGEOFF12, | |
HoleKind_ARM64_RELOC_UNSIGNED, | |
HoleKind_IMAGE_REL_AMD64_REL32, | |
HoleKind_IMAGE_REL_ARM64_BRANCH26, | |
HoleKind_IMAGE_REL_ARM64_PAGEBASE_REL21, | |
HoleKind_IMAGE_REL_ARM64_PAGEOFFSET_12A, | |
HoleKind_IMAGE_REL_ARM64_PAGEOFFSET_12L, | |
HoleKind_IMAGE_REL_I386_DIR32, | |
HoleKind_IMAGE_REL_I386_REL32, | |
HoleKind_R_AARCH64_ABS64, | |
HoleKind_R_AARCH64_ADR_GOT_PAGE, | |
HoleKind_R_AARCH64_CALL26, | |
HoleKind_R_AARCH64_JUMP26, | |
HoleKind_R_AARCH64_LD64_GOT_LO12_NC, | |
HoleKind_R_AARCH64_MOVW_UABS_G0_NC, | |
HoleKind_R_AARCH64_MOVW_UABS_G1_NC, | |
HoleKind_R_AARCH64_MOVW_UABS_G2_NC, | |
HoleKind_R_AARCH64_MOVW_UABS_G3, | |
HoleKind_R_X86_64_64, | |
HoleKind_R_X86_64_GOTPCREL, | |
HoleKind_R_X86_64_GOTPCRELX, | |
HoleKind_R_X86_64_PC32, | |
HoleKind_R_X86_64_REX_GOTPCRELX, | |
HoleKind_X86_64_RELOC_BRANCH, | |
HoleKind_X86_64_RELOC_GOT, | |
HoleKind_X86_64_RELOC_GOT_LOAD, | |
HoleKind_X86_64_RELOC_SIGNED, | |
HoleKind_X86_64_RELOC_UNSIGNED, | |
} HoleKind; | |
typedef enum { | |
HoleValue_CODE, | |
HoleValue_CONTINUE, | |
HoleValue_DATA, | |
HoleValue_EXECUTOR, | |
HoleValue_GOT, | |
HoleValue_OPARG, | |
HoleValue_OPERAND, | |
HoleValue_TARGET, | |
HoleValue_TOP, | |
HoleValue_ZERO, | |
} HoleValue; | |
typedef struct { | |
const uint64_t offset; | |
const HoleKind kind; | |
const HoleValue value; | |
const void *symbol; | |
const uint64_t addend; | |
} Hole; | |
typedef struct { | |
const size_t body_size; | |
const unsigned char * const body; | |
const size_t holes_size; | |
const Hole * const holes; | |
} Stencil; | |
typedef struct { | |
const Stencil code; | |
const Stencil data; | |
} StencilGroup; | |
// _BEFORE_ASYNC_WITH | |
// | |
// /tmp/tmp2mfmnab2/_BEFORE_ASYNC_WITH.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 18: be 40 68 00 00 movl $0x6840, %esi # imm = 0x6840 | |
// 1d: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 24: 4c 89 ef movq %r13, %rdi | |
// 27: ff 15 00 00 00 00 callq *(%rip) # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4 | |
// 2d: 48 85 c0 testq %rax, %rax | |
// 30: 0f 84 90 00 00 00 je 0xc6 <_JIT_ENTRY+0xc6> | |
// 36: 49 89 c4 movq %rax, %r12 | |
// 39: be 78 68 00 00 movl $0x6878, %esi # imm = 0x6878 | |
// 3e: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 45: 4c 89 ef movq %r13, %rdi | |
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4 | |
// 4e: 48 85 c0 testq %rax, %rax | |
// 51: 0f 84 a9 00 00 00 je 0x100 <_JIT_ENTRY+0x100> | |
// 57: 48 89 c5 movq %rax, %rbp | |
// 5a: 49 8b 45 00 movq (%r13), %rax | |
// 5e: 85 c0 testl %eax, %eax | |
// 60: 78 12 js 0x74 <_JIT_ENTRY+0x74> | |
// 62: 48 ff c8 decq %rax | |
// 65: 49 89 45 00 movq %rax, (%r13) | |
// 69: 75 09 jne 0x74 <_JIT_ENTRY+0x74> | |
// 6b: 4c 89 ef movq %r13, %rdi | |
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74> | |
// 0000000000000070: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 74: 4c 89 e7 movq %r12, %rdi | |
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d> | |
// 0000000000000079: R_X86_64_GOTPCRELX PyObject_CallNoArgs-0x4 | |
// 7d: 49 89 c5 movq %rax, %r13 | |
// 80: 49 8b 04 24 movq (%r12), %rax | |
// 84: 85 c0 testl %eax, %eax | |
// 86: 78 0d js 0x95 <_JIT_ENTRY+0x95> | |
// 88: 48 ff c8 decq %rax | |
// 8b: 49 89 04 24 movq %rax, (%r12) | |
// 8f: 0f 84 b5 00 00 00 je 0x14a <_JIT_ENTRY+0x14a> | |
// 95: 4d 85 ed testq %r13, %r13 | |
// 98: 0f 84 be 00 00 00 je 0x15c <_JIT_ENTRY+0x15c> | |
// 9e: 48 89 6b f8 movq %rbp, -0x8(%rbx) | |
// a2: 4c 89 2b movq %r13, (%rbx) | |
// a5: 48 83 c3 08 addq $0x8, %rbx | |
// a9: 4c 89 f7 movq %r14, %rdi | |
// ac: 48 89 de movq %rbx, %rsi | |
// af: 4c 89 fa movq %r15, %rdx | |
// b2: 48 83 c4 08 addq $0x8, %rsp | |
// b6: 5b popq %rbx | |
// b7: 41 5c popq %r12 | |
// b9: 41 5d popq %r13 | |
// bb: 41 5e popq %r14 | |
// bd: 41 5f popq %r15 | |
// bf: 5d popq %rbp | |
// c0: ff 25 00 00 00 00 jmpq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6> | |
// 00000000000000c2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// c6: 49 8b 47 70 movq 0x70(%r15), %rax | |
// ca: 48 85 c0 testq %rax, %rax | |
// cd: 74 0b je 0xda <_JIT_ENTRY+0xda> | |
// cf: 48 83 78 08 00 cmpq $0x0, 0x8(%rax) | |
// d4: 0f 85 a0 00 00 00 jne 0x17a <_JIT_ENTRY+0x17a> | |
// da: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe1 <_JIT_ENTRY+0xe1> | |
// 00000000000000dd: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// e1: 48 8b 30 movq (%rax), %rsi | |
// e4: 49 8b 45 08 movq 0x8(%r13), %rax | |
// e8: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// ec: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xf3 <_JIT_ENTRY+0xf3> | |
// 00000000000000ef: R_X86_64_PC32 .L.str.15-0x4 | |
// f3: 4c 89 ff movq %r15, %rdi | |
// f6: 31 c0 xorl %eax, %eax | |
// f8: ff 15 00 00 00 00 callq *(%rip) # 0xfe <_JIT_ENTRY+0xfe> | |
// 00000000000000fa: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// fe: eb 7a jmp 0x17a <_JIT_ENTRY+0x17a> | |
// 100: 49 8b 47 70 movq 0x70(%r15), %rax | |
// 104: 48 85 c0 testq %rax, %rax | |
// 107: 74 07 je 0x110 <_JIT_ENTRY+0x110> | |
// 109: 48 83 78 08 00 cmpq $0x0, 0x8(%rax) | |
// 10e: 75 24 jne 0x134 <_JIT_ENTRY+0x134> | |
// 110: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x117 <_JIT_ENTRY+0x117> | |
// 0000000000000113: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 117: 48 8b 30 movq (%rax), %rsi | |
// 11a: 49 8b 45 08 movq 0x8(%r13), %rax | |
// 11e: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 122: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x129 <_JIT_ENTRY+0x129> | |
// 0000000000000125: R_X86_64_PC32 .L.str.16-0x4 | |
// 129: 4c 89 ff movq %r15, %rdi | |
// 12c: 31 c0 xorl %eax, %eax | |
// 12e: ff 15 00 00 00 00 callq *(%rip) # 0x134 <_JIT_ENTRY+0x134> | |
// 0000000000000130: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// 134: 49 8b 04 24 movq (%r12), %rax | |
// 138: 85 c0 testl %eax, %eax | |
// 13a: 78 3e js 0x17a <_JIT_ENTRY+0x17a> | |
// 13c: 48 ff c8 decq %rax | |
// 13f: 49 89 04 24 movq %rax, (%r12) | |
// 143: 75 35 jne 0x17a <_JIT_ENTRY+0x17a> | |
// 145: 4c 89 e7 movq %r12, %rdi | |
// 148: eb 2a jmp 0x174 <_JIT_ENTRY+0x174> | |
// 14a: 4c 89 e7 movq %r12, %rdi | |
// 14d: ff 15 00 00 00 00 callq *(%rip) # 0x153 <_JIT_ENTRY+0x153> | |
// 000000000000014f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 153: 4d 85 ed testq %r13, %r13 | |
// 156: 0f 85 42 ff ff ff jne 0x9e <_JIT_ENTRY+0x9e> | |
// 15c: 48 83 c3 f8 addq $-0x8, %rbx | |
// 160: 48 8b 45 00 movq (%rbp), %rax | |
// 164: 85 c0 testl %eax, %eax | |
// 166: 78 12 js 0x17a <_JIT_ENTRY+0x17a> | |
// 168: 48 ff c8 decq %rax | |
// 16b: 48 89 45 00 movq %rax, (%rbp) | |
// 16f: 75 09 jne 0x17a <_JIT_ENTRY+0x17a> | |
// 171: 48 89 ef movq %rbp, %rdi | |
// 174: ff 15 00 00 00 00 callq *(%rip) # 0x17a <_JIT_ENTRY+0x17a> | |
// 0000000000000176: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 17a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x181 <_JIT_ENTRY+0x181> | |
// 000000000000017d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 181: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 188: 4c 29 f3 subq %r14, %rbx | |
// 18b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 18f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 193: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 197: 31 c0 xorl %eax, %eax | |
// 199: 48 83 c4 08 addq $0x8, %rsp | |
// 19d: 5b popq %rbx | |
// 19e: 41 5c popq %r12 | |
// 1a0: 41 5d popq %r13 | |
// 1a2: 41 5e popq %r14 | |
// 1a4: 41 5f popq %r15 | |
// 1a6: 5d popq %rbp | |
// 1a7: c3 retq | |
// 1a8: | |
static const unsigned char _BEFORE_ASYNC_WITH_code_body[425] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, | |
0xbe, 0x40, 0x68, 0x00, 0x00, 0x48, 0x03, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, | |
0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0xc4, 0xbe, 0x78, 0x68, 0x00, 0x00, 0x48, 0x03, | |
0x35, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f, | |
0x84, 0xb5, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, | |
0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x6b, 0xf8, 0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3, | |
0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, | |
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, 0x0b, 0x48, | |
0x83, 0x78, 0x08, 0x00, 0x0f, 0x85, 0xa0, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, | |
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x7a, | |
0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, | |
0x07, 0x48, 0x83, 0x78, 0x08, 0x00, 0x75, 0x24, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, 0x48, 0x8b, | |
0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x3e, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x35, 0x4c, 0x89, 0xe7, | |
0xeb, 0x2a, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85, | |
0x42, 0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8, | |
0x48, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x45, 0x00, 0x75, | |
0x09, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, | |
0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BEFORE_ASYNC_WITH_code_holes[17] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0x29, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4}, | |
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xcc}, | |
{0xdd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xd4}, | |
{0xef, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xfa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xdc}, | |
{0x113, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xd4}, | |
{0x125, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x47}, | |
{0x130, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xdc}, | |
{0x14f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0x176, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0x17d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xe4}, | |
}; | |
// 0: "'%.200s' object does not support the asynchronous context manager protocol\x00'%.200s' object does not support the asynchronous context manager protocol (missed __aexit__ method)\x00" | |
// b0: | |
// b0: &_PyRuntime+0x0 | |
// b8: &_PyObject_LookupSpecial+0x0 | |
// c0: &_Py_Dealloc+0x0 | |
// c8: &PyObject_CallNoArgs+0x0 | |
// d0: CONTINUE | |
// d8: &PyExc_TypeError+0x0 | |
// e0: &_PyErr_Format+0x0 | |
// e8: EXECUTOR | |
static const unsigned char _BEFORE_ASYNC_WITH_data_body[241] = { | |
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, | |
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, | |
0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, | |
0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, | |
0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x73, 0x79, | |
0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x6f, 0x75, | |
0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, | |
0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, | |
0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, | |
0x6f, 0x6c, 0x00, 0x27, 0x25, 0x2e, 0x32, 0x30, | |
0x30, 0x73, 0x27, 0x20, 0x6f, 0x62, 0x6a, 0x65, | |
0x63, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x20, | |
0x6e, 0x6f, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, | |
0x6f, 0x72, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, | |
0x61, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, | |
0x6e, 0x6f, 0x75, 0x73, 0x20, 0x63, 0x6f, 0x6e, | |
0x74, 0x65, 0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e, | |
0x61, 0x67, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, | |
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x20, 0x28, 0x6d, | |
0x69, 0x73, 0x73, 0x65, 0x64, 0x20, 0x5f, 0x5f, | |
0x61, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x5f, 0x20, | |
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x29, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BEFORE_ASYNC_WITH_data_holes[9] = { | |
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0}, | |
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_LookupSpecial, 0x0}, | |
{0xc0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0xc8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_CallNoArgs, 0x0}, | |
{0xd0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0xd8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0xe0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0xe8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BEFORE_WITH | |
// | |
// /tmp/tmp2mfmnab2/_BEFORE_WITH.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 18: be 28 70 00 00 movl $0x7028, %esi # imm = 0x7028 | |
// 1d: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 24: 4c 89 ef movq %r13, %rdi | |
// 27: ff 15 00 00 00 00 callq *(%rip) # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4 | |
// 2d: 48 85 c0 testq %rax, %rax | |
// 30: 0f 84 90 00 00 00 je 0xc6 <_JIT_ENTRY+0xc6> | |
// 36: 49 89 c4 movq %rax, %r12 | |
// 39: be 90 70 00 00 movl $0x7090, %esi # imm = 0x7090 | |
// 3e: 48 03 35 00 00 00 00 addq (%rip), %rsi # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 45: 4c 89 ef movq %r13, %rdi | |
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _PyObject_LookupSpecial-0x4 | |
// 4e: 48 85 c0 testq %rax, %rax | |
// 51: 0f 84 a9 00 00 00 je 0x100 <_JIT_ENTRY+0x100> | |
// 57: 48 89 c5 movq %rax, %rbp | |
// 5a: 49 8b 45 00 movq (%r13), %rax | |
// 5e: 85 c0 testl %eax, %eax | |
// 60: 78 12 js 0x74 <_JIT_ENTRY+0x74> | |
// 62: 48 ff c8 decq %rax | |
// 65: 49 89 45 00 movq %rax, (%r13) | |
// 69: 75 09 jne 0x74 <_JIT_ENTRY+0x74> | |
// 6b: 4c 89 ef movq %r13, %rdi | |
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74> | |
// 0000000000000070: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 74: 4c 89 e7 movq %r12, %rdi | |
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d> | |
// 0000000000000079: R_X86_64_GOTPCRELX PyObject_CallNoArgs-0x4 | |
// 7d: 49 89 c5 movq %rax, %r13 | |
// 80: 49 8b 04 24 movq (%r12), %rax | |
// 84: 85 c0 testl %eax, %eax | |
// 86: 78 0d js 0x95 <_JIT_ENTRY+0x95> | |
// 88: 48 ff c8 decq %rax | |
// 8b: 49 89 04 24 movq %rax, (%r12) | |
// 8f: 0f 84 b5 00 00 00 je 0x14a <_JIT_ENTRY+0x14a> | |
// 95: 4d 85 ed testq %r13, %r13 | |
// 98: 0f 84 be 00 00 00 je 0x15c <_JIT_ENTRY+0x15c> | |
// 9e: 48 89 6b f8 movq %rbp, -0x8(%rbx) | |
// a2: 4c 89 2b movq %r13, (%rbx) | |
// a5: 48 83 c3 08 addq $0x8, %rbx | |
// a9: 4c 89 f7 movq %r14, %rdi | |
// ac: 48 89 de movq %rbx, %rsi | |
// af: 4c 89 fa movq %r15, %rdx | |
// b2: 48 83 c4 08 addq $0x8, %rsp | |
// b6: 5b popq %rbx | |
// b7: 41 5c popq %r12 | |
// b9: 41 5d popq %r13 | |
// bb: 41 5e popq %r14 | |
// bd: 41 5f popq %r15 | |
// bf: 5d popq %rbp | |
// c0: ff 25 00 00 00 00 jmpq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6> | |
// 00000000000000c2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// c6: 49 8b 47 70 movq 0x70(%r15), %rax | |
// ca: 48 85 c0 testq %rax, %rax | |
// cd: 74 0b je 0xda <_JIT_ENTRY+0xda> | |
// cf: 48 83 78 08 00 cmpq $0x0, 0x8(%rax) | |
// d4: 0f 85 a0 00 00 00 jne 0x17a <_JIT_ENTRY+0x17a> | |
// da: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe1 <_JIT_ENTRY+0xe1> | |
// 00000000000000dd: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// e1: 48 8b 30 movq (%rax), %rsi | |
// e4: 49 8b 45 08 movq 0x8(%r13), %rax | |
// e8: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// ec: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xf3 <_JIT_ENTRY+0xf3> | |
// 00000000000000ef: R_X86_64_PC32 .L.str.17-0x4 | |
// f3: 4c 89 ff movq %r15, %rdi | |
// f6: 31 c0 xorl %eax, %eax | |
// f8: ff 15 00 00 00 00 callq *(%rip) # 0xfe <_JIT_ENTRY+0xfe> | |
// 00000000000000fa: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// fe: eb 7a jmp 0x17a <_JIT_ENTRY+0x17a> | |
// 100: 49 8b 47 70 movq 0x70(%r15), %rax | |
// 104: 48 85 c0 testq %rax, %rax | |
// 107: 74 07 je 0x110 <_JIT_ENTRY+0x110> | |
// 109: 48 83 78 08 00 cmpq $0x0, 0x8(%rax) | |
// 10e: 75 24 jne 0x134 <_JIT_ENTRY+0x134> | |
// 110: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x117 <_JIT_ENTRY+0x117> | |
// 0000000000000113: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 117: 48 8b 30 movq (%rax), %rsi | |
// 11a: 49 8b 45 08 movq 0x8(%r13), %rax | |
// 11e: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 122: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x129 <_JIT_ENTRY+0x129> | |
// 0000000000000125: R_X86_64_PC32 .L.str.18-0x4 | |
// 129: 4c 89 ff movq %r15, %rdi | |
// 12c: 31 c0 xorl %eax, %eax | |
// 12e: ff 15 00 00 00 00 callq *(%rip) # 0x134 <_JIT_ENTRY+0x134> | |
// 0000000000000130: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// 134: 49 8b 04 24 movq (%r12), %rax | |
// 138: 85 c0 testl %eax, %eax | |
// 13a: 78 3e js 0x17a <_JIT_ENTRY+0x17a> | |
// 13c: 48 ff c8 decq %rax | |
// 13f: 49 89 04 24 movq %rax, (%r12) | |
// 143: 75 35 jne 0x17a <_JIT_ENTRY+0x17a> | |
// 145: 4c 89 e7 movq %r12, %rdi | |
// 148: eb 2a jmp 0x174 <_JIT_ENTRY+0x174> | |
// 14a: 4c 89 e7 movq %r12, %rdi | |
// 14d: ff 15 00 00 00 00 callq *(%rip) # 0x153 <_JIT_ENTRY+0x153> | |
// 000000000000014f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 153: 4d 85 ed testq %r13, %r13 | |
// 156: 0f 85 42 ff ff ff jne 0x9e <_JIT_ENTRY+0x9e> | |
// 15c: 48 83 c3 f8 addq $-0x8, %rbx | |
// 160: 48 8b 45 00 movq (%rbp), %rax | |
// 164: 85 c0 testl %eax, %eax | |
// 166: 78 12 js 0x17a <_JIT_ENTRY+0x17a> | |
// 168: 48 ff c8 decq %rax | |
// 16b: 48 89 45 00 movq %rax, (%rbp) | |
// 16f: 75 09 jne 0x17a <_JIT_ENTRY+0x17a> | |
// 171: 48 89 ef movq %rbp, %rdi | |
// 174: ff 15 00 00 00 00 callq *(%rip) # 0x17a <_JIT_ENTRY+0x17a> | |
// 0000000000000176: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 17a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x181 <_JIT_ENTRY+0x181> | |
// 000000000000017d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 181: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 188: 4c 29 f3 subq %r14, %rbx | |
// 18b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 18f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 193: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 197: 31 c0 xorl %eax, %eax | |
// 199: 48 83 c4 08 addq $0x8, %rsp | |
// 19d: 5b popq %rbx | |
// 19e: 41 5c popq %r12 | |
// 1a0: 41 5d popq %r13 | |
// 1a2: 41 5e popq %r14 | |
// 1a4: 41 5f popq %r15 | |
// 1a6: 5d popq %rbp | |
// 1a7: c3 retq | |
// 1a8: | |
static const unsigned char _BEFORE_WITH_code_body[425] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, | |
0xbe, 0x28, 0x70, 0x00, 0x00, 0x48, 0x03, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, | |
0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0xc4, 0xbe, 0x90, 0x70, 0x00, 0x00, 0x48, 0x03, | |
0x35, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f, | |
0x84, 0xb5, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, | |
0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x6b, 0xf8, 0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3, | |
0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, | |
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, 0x0b, 0x48, | |
0x83, 0x78, 0x08, 0x00, 0x0f, 0x85, 0xa0, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, | |
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x7a, | |
0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0, 0x74, | |
0x07, 0x48, 0x83, 0x78, 0x08, 0x00, 0x75, 0x24, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x30, 0x49, 0x8b, 0x45, 0x08, 0x48, 0x8b, | |
0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x3e, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x35, 0x4c, 0x89, 0xe7, | |
0xeb, 0x2a, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85, | |
0x42, 0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8, | |
0x48, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x45, 0x00, 0x75, | |
0x09, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, | |
0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BEFORE_WITH_code_holes[17] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x94}, | |
{0x29, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c}, | |
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x94}, | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c}, | |
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
{0xdd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0xef, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xfa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4}, | |
{0x113, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0x125, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3a}, | |
{0x130, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc4}, | |
{0x14f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0x176, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0x17d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xcc}, | |
}; | |
// 0: "'%.200s' object does not support the context manager protocol\x00'%.200s' object does not support the context manager protocol (missed __exit__ method)\x00" | |
// 95: 00 00 00 | |
// 98: &_PyRuntime+0x0 | |
// a0: &_PyObject_LookupSpecial+0x0 | |
// a8: &_Py_Dealloc+0x0 | |
// b0: &PyObject_CallNoArgs+0x0 | |
// b8: CONTINUE | |
// c0: &PyExc_TypeError+0x0 | |
// c8: &_PyErr_Format+0x0 | |
// d0: EXECUTOR | |
static const unsigned char _BEFORE_WITH_data_body[217] = { | |
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, | |
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, | |
0x64, 0x6f, 0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, | |
0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, | |
0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, | |
0x74, 0x65, 0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e, | |
0x61, 0x67, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, | |
0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x00, 0x27, 0x25, | |
0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, 0x20, 0x6f, | |
0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x64, 0x6f, | |
0x65, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, | |
0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x74, | |
0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, | |
0x78, 0x74, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, | |
0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, | |
0x63, 0x6f, 0x6c, 0x20, 0x28, 0x6d, 0x69, 0x73, | |
0x73, 0x65, 0x64, 0x20, 0x5f, 0x5f, 0x65, 0x78, | |
0x69, 0x74, 0x5f, 0x5f, 0x20, 0x6d, 0x65, 0x74, | |
0x68, 0x6f, 0x64, 0x29, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BEFORE_WITH_data_holes[9] = { | |
{0x98, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0}, | |
{0xa0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_LookupSpecial, 0x0}, | |
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_CallNoArgs, 0x0}, | |
{0xb8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0xc0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0xc8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0xd0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1c: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 23: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x2a <_JIT_ENTRY+0x2a> | |
// 0000000000000026: R_X86_64_REX_GOTPCRELX _PyEval_BinaryOps-0x4 | |
// 2a: 48 89 ef movq %rbp, %rdi | |
// 2d: 4c 89 ee movq %r13, %rsi | |
// 30: ff 14 c1 callq *(%rcx,%rax,8) | |
// 33: 49 89 c4 movq %rax, %r12 | |
// 36: 48 8b 45 00 movq (%rbp), %rax | |
// 3a: 85 c0 testl %eax, %eax | |
// 3c: 78 09 js 0x47 <_JIT_ENTRY+0x47> | |
// 3e: 48 ff c8 decq %rax | |
// 41: 48 89 45 00 movq %rax, (%rbp) | |
// 45: 74 1c je 0x63 <_JIT_ENTRY+0x63> | |
// 47: 49 8b 45 00 movq (%r13), %rax | |
// 4b: 85 c0 testl %eax, %eax | |
// 4d: 78 25 js 0x74 <_JIT_ENTRY+0x74> | |
// 4f: 48 ff c8 decq %rax | |
// 52: 49 89 45 00 movq %rax, (%r13) | |
// 56: 75 1c jne 0x74 <_JIT_ENTRY+0x74> | |
// 58: 4c 89 ef movq %r13, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 61: eb 11 jmp 0x74 <_JIT_ENTRY+0x74> | |
// 63: 48 89 ef movq %rbp, %rdi | |
// 66: ff 15 00 00 00 00 callq *(%rip) # 0x6c <_JIT_ENTRY+0x6c> | |
// 0000000000000068: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 6c: 49 8b 45 00 movq (%r13), %rax | |
// 70: 85 c0 testl %eax, %eax | |
// 72: 79 db jns 0x4f <_JIT_ENTRY+0x4f> | |
// 74: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 78: 4d 85 e4 testq %r12, %r12 | |
// 7b: 74 24 je 0xa1 <_JIT_ENTRY+0xa1> | |
// 7d: 49 83 c7 f8 addq $-0x8, %r15 | |
// 81: 4c 89 20 movq %r12, (%rax) | |
// 84: 48 89 df movq %rbx, %rdi | |
// 87: 4c 89 fe movq %r15, %rsi | |
// 8a: 4c 89 f2 movq %r14, %rdx | |
// 8d: 48 83 c4 08 addq $0x8, %rsp | |
// 91: 5b popq %rbx | |
// 92: 41 5c popq %r12 | |
// 94: 41 5d popq %r13 | |
// 96: 41 5e popq %r14 | |
// 98: 41 5f popq %r15 | |
// 9a: 5d popq %rbp | |
// 9b: ff 25 00 00 00 00 jmpq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1> | |
// 000000000000009d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a1: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// a8: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// af: 48 29 d8 subq %rbx, %rax | |
// b2: 48 83 c0 b8 addq $-0x48, %rax | |
// b6: 48 c1 e8 03 shrq $0x3, %rax | |
// ba: 89 43 40 movl %eax, 0x40(%rbx) | |
// bd: 31 c0 xorl %eax, %eax | |
// bf: 48 83 c4 08 addq $0x8, %rsp | |
// c3: 5b popq %rbx | |
// c4: 41 5c popq %r12 | |
// c6: 41 5d popq %r13 | |
// c8: 41 5e popq %r14 | |
// ca: 41 5f popq %r15 | |
// cc: 5d popq %rbp | |
// cd: c3 retq | |
// ce: | |
static const unsigned char _BINARY_OP_code_body[207] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x89, 0xef, 0x4c, 0x89, 0xee, | |
0xff, 0x14, 0xc1, 0x49, 0x89, 0xc4, 0x48, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x1c, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x79, 0xdb, 0x49, 0x8d, 0x47, 0xf0, | |
0x4d, 0x85, 0xe4, 0x74, 0x24, 0x49, 0x83, 0xc7, | |
0xf8, 0x4c, 0x89, 0x20, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, | |
0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_OP_code_holes[7] = { | |
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x26, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x68, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyEval_BinaryOps+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
static const unsigned char _BINARY_OP_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_BinaryOps, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_ADD_FLOAT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_FLOAT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero | |
// 20: f2 41 0f 58 44 24 10 addsd 0x10(%r12), %xmm0 | |
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13) | |
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50> | |
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13) | |
// 34: 49 8b 04 24 movq (%r12), %rax | |
// 38: 85 c0 testl %eax, %eax | |
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e> | |
// 3c: 48 ff c8 decq %rax | |
// 3f: 49 89 04 24 movq %rax, (%r12) | |
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e> | |
// 45: 4c 89 e7 movq %r12, %rdi | |
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4 | |
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12) | |
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72> | |
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12) | |
// 5e: 49 8b 45 00 movq (%r13), %rax | |
// 62: 85 c0 testl %eax, %eax | |
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d> | |
// 66: 48 ff c8 decq %rax | |
// 69: 49 89 45 00 movq %rax, (%r13) | |
// 6d: 4d 89 e5 movq %r12, %r13 | |
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4 | |
// 78: 48 85 c0 testq %rax, %rax | |
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe> | |
// 7d: 49 8b 4d 00 movq (%r13), %rcx | |
// 81: 85 c9 testl %ecx, %ecx | |
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c> | |
// 85: 48 ff c9 decq %rcx | |
// 88: 49 89 4d 00 movq %rcx, (%r13) | |
// 8c: 49 8b 0c 24 movq (%r12), %rcx | |
// 90: 85 c9 testl %ecx, %ecx | |
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b> | |
// 94: 48 ff c9 decq %rcx | |
// 97: 49 89 0c 24 movq %rcx, (%r12) | |
// 9b: 49 89 c5 movq %rax, %r13 | |
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx) | |
// a2: 48 83 c3 f8 addq $-0x8, %rbx | |
// a6: 4c 89 f7 movq %r14, %rdi | |
// a9: 48 89 de movq %rbx, %rsi | |
// ac: 4c 89 fa movq %r15, %rdx | |
// af: 5b popq %rbx | |
// b0: 41 5c popq %r12 | |
// b2: 41 5d popq %r13 | |
// b4: 41 5e popq %r14 | |
// b6: 41 5f popq %r15 | |
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe> | |
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5> | |
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// cc: 4c 29 f3 subq %r14, %rbx | |
// cf: 48 83 c3 b8 addq $-0x48, %rbx | |
// d3: 48 c1 eb 03 shrq $0x3, %rbx | |
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// db: 31 c0 xorl %eax, %eax | |
// dd: 5b popq %rbx | |
// de: 41 5c popq %r12 | |
// e0: 41 5d popq %r13 | |
// e2: 41 5e popq %r14 | |
// e4: 41 5f popq %r15 | |
// e6: c3 retq | |
// e7: | |
static const unsigned char _BINARY_OP_ADD_FLOAT_code_body[232] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b, | |
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10, | |
0xf2, 0x41, 0x0f, 0x58, 0x44, 0x24, 0x10, 0x49, | |
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41, | |
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e, | |
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2, | |
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5, | |
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d, | |
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, | |
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24, | |
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49, | |
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89, | |
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _BINARY_OP_ADD_FLOAT_code_holes[5] = { | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyFloat_ExactDealloc+0x0 | |
// 8: &PyFloat_FromDouble+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_ADD_FLOAT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_ADD_FLOAT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_ADD_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp | |
// 1c: 4c 89 ef movq %r13, %rdi | |
// 1f: 48 89 ee movq %rbp, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Add-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _BINARY_OP_ADD_INT_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_OP_ADD_INT_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyLong_Add+0x0 | |
// 8: &PyObject_Free+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_ADD_INT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_ADD_INT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Add, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_ADD_UNICODE | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_ADD_UNICODE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1c: 48 89 ef movq %rbp, %rdi | |
// 1f: 4c 89 ee movq %r13, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX PyUnicode_Concat-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _BINARY_OP_ADD_UNICODE_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_OP_ADD_UNICODE_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &PyUnicode_Concat+0x0 | |
// 8: &_PyUnicode_ExactDealloc+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_ADD_UNICODE_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_ADD_UNICODE_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Concat, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_ExactDealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_MULTIPLY_FLOAT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_MULTIPLY_FLOAT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero | |
// 20: f2 41 0f 59 44 24 10 mulsd 0x10(%r12), %xmm0 | |
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13) | |
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50> | |
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13) | |
// 34: 49 8b 04 24 movq (%r12), %rax | |
// 38: 85 c0 testl %eax, %eax | |
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e> | |
// 3c: 48 ff c8 decq %rax | |
// 3f: 49 89 04 24 movq %rax, (%r12) | |
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e> | |
// 45: 4c 89 e7 movq %r12, %rdi | |
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4 | |
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12) | |
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72> | |
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12) | |
// 5e: 49 8b 45 00 movq (%r13), %rax | |
// 62: 85 c0 testl %eax, %eax | |
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d> | |
// 66: 48 ff c8 decq %rax | |
// 69: 49 89 45 00 movq %rax, (%r13) | |
// 6d: 4d 89 e5 movq %r12, %r13 | |
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4 | |
// 78: 48 85 c0 testq %rax, %rax | |
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe> | |
// 7d: 49 8b 4d 00 movq (%r13), %rcx | |
// 81: 85 c9 testl %ecx, %ecx | |
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c> | |
// 85: 48 ff c9 decq %rcx | |
// 88: 49 89 4d 00 movq %rcx, (%r13) | |
// 8c: 49 8b 0c 24 movq (%r12), %rcx | |
// 90: 85 c9 testl %ecx, %ecx | |
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b> | |
// 94: 48 ff c9 decq %rcx | |
// 97: 49 89 0c 24 movq %rcx, (%r12) | |
// 9b: 49 89 c5 movq %rax, %r13 | |
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx) | |
// a2: 48 83 c3 f8 addq $-0x8, %rbx | |
// a6: 4c 89 f7 movq %r14, %rdi | |
// a9: 48 89 de movq %rbx, %rsi | |
// ac: 4c 89 fa movq %r15, %rdx | |
// af: 5b popq %rbx | |
// b0: 41 5c popq %r12 | |
// b2: 41 5d popq %r13 | |
// b4: 41 5e popq %r14 | |
// b6: 41 5f popq %r15 | |
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe> | |
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5> | |
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// cc: 4c 29 f3 subq %r14, %rbx | |
// cf: 48 83 c3 b8 addq $-0x48, %rbx | |
// d3: 48 c1 eb 03 shrq $0x3, %rbx | |
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// db: 31 c0 xorl %eax, %eax | |
// dd: 5b popq %rbx | |
// de: 41 5c popq %r12 | |
// e0: 41 5d popq %r13 | |
// e2: 41 5e popq %r14 | |
// e4: 41 5f popq %r15 | |
// e6: c3 retq | |
// e7: | |
static const unsigned char _BINARY_OP_MULTIPLY_FLOAT_code_body[232] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b, | |
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10, | |
0xf2, 0x41, 0x0f, 0x59, 0x44, 0x24, 0x10, 0x49, | |
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41, | |
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e, | |
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2, | |
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5, | |
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d, | |
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, | |
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24, | |
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49, | |
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89, | |
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _BINARY_OP_MULTIPLY_FLOAT_code_holes[5] = { | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyFloat_ExactDealloc+0x0 | |
// 8: &PyFloat_FromDouble+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_MULTIPLY_FLOAT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_MULTIPLY_FLOAT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_MULTIPLY_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_MULTIPLY_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp | |
// 1c: 4c 89 ef movq %r13, %rdi | |
// 1f: 48 89 ee movq %rbp, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Multiply-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _BINARY_OP_MULTIPLY_INT_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_OP_MULTIPLY_INT_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyLong_Multiply+0x0 | |
// 8: &PyObject_Free+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_MULTIPLY_INT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_MULTIPLY_INT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Multiply, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_SUBTRACT_FLOAT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_SUBTRACT_FLOAT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 16: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1a: f2 41 0f 10 45 10 movsd 0x10(%r13), %xmm0 # xmm0 = mem[0],zero | |
// 20: f2 41 0f 5c 44 24 10 subsd 0x10(%r12), %xmm0 | |
// 27: 49 83 7d 00 01 cmpq $0x1, (%r13) | |
// 2c: 75 22 jne 0x50 <_JIT_ENTRY+0x50> | |
// 2e: f2 41 0f 11 45 10 movsd %xmm0, 0x10(%r13) | |
// 34: 49 8b 04 24 movq (%r12), %rax | |
// 38: 85 c0 testl %eax, %eax | |
// 3a: 78 62 js 0x9e <_JIT_ENTRY+0x9e> | |
// 3c: 48 ff c8 decq %rax | |
// 3f: 49 89 04 24 movq %rax, (%r12) | |
// 43: 75 59 jne 0x9e <_JIT_ENTRY+0x9e> | |
// 45: 4c 89 e7 movq %r12, %rdi | |
// 48: ff 15 00 00 00 00 callq *(%rip) # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4 | |
// 4e: eb 4e jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 50: 49 83 3c 24 01 cmpq $0x1, (%r12) | |
// 55: 75 1b jne 0x72 <_JIT_ENTRY+0x72> | |
// 57: f2 41 0f 11 44 24 10 movsd %xmm0, 0x10(%r12) | |
// 5e: 49 8b 45 00 movq (%r13), %rax | |
// 62: 85 c0 testl %eax, %eax | |
// 64: 78 07 js 0x6d <_JIT_ENTRY+0x6d> | |
// 66: 48 ff c8 decq %rax | |
// 69: 49 89 45 00 movq %rax, (%r13) | |
// 6d: 4d 89 e5 movq %r12, %r13 | |
// 70: eb 2c jmp 0x9e <_JIT_ENTRY+0x9e> | |
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_GOTPCRELX PyFloat_FromDouble-0x4 | |
// 78: 48 85 c0 testq %rax, %rax | |
// 7b: 74 41 je 0xbe <_JIT_ENTRY+0xbe> | |
// 7d: 49 8b 4d 00 movq (%r13), %rcx | |
// 81: 85 c9 testl %ecx, %ecx | |
// 83: 78 07 js 0x8c <_JIT_ENTRY+0x8c> | |
// 85: 48 ff c9 decq %rcx | |
// 88: 49 89 4d 00 movq %rcx, (%r13) | |
// 8c: 49 8b 0c 24 movq (%r12), %rcx | |
// 90: 85 c9 testl %ecx, %ecx | |
// 92: 78 07 js 0x9b <_JIT_ENTRY+0x9b> | |
// 94: 48 ff c9 decq %rcx | |
// 97: 49 89 0c 24 movq %rcx, (%r12) | |
// 9b: 49 89 c5 movq %rax, %r13 | |
// 9e: 4c 89 6b f0 movq %r13, -0x10(%rbx) | |
// a2: 48 83 c3 f8 addq $-0x8, %rbx | |
// a6: 4c 89 f7 movq %r14, %rdi | |
// a9: 48 89 de movq %rbx, %rsi | |
// ac: 4c 89 fa movq %r15, %rdx | |
// af: 5b popq %rbx | |
// b0: 41 5c popq %r12 | |
// b2: 41 5d popq %r13 | |
// b4: 41 5e popq %r14 | |
// b6: 41 5f popq %r15 | |
// b8: ff 25 00 00 00 00 jmpq *(%rip) # 0xbe <_JIT_ENTRY+0xbe> | |
// 00000000000000ba: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// be: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc5 <_JIT_ENTRY+0xc5> | |
// 00000000000000c1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// c5: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// cc: 4c 29 f3 subq %r14, %rbx | |
// cf: 48 83 c3 b8 addq $-0x48, %rbx | |
// d3: 48 c1 eb 03 shrq $0x3, %rbx | |
// d7: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// db: 31 c0 xorl %eax, %eax | |
// dd: 5b popq %rbx | |
// de: 41 5c popq %r12 | |
// e0: 41 5d popq %r13 | |
// e2: 41 5e popq %r14 | |
// e4: 41 5f popq %r15 | |
// e6: c3 retq | |
// e7: | |
static const unsigned char _BINARY_OP_SUBTRACT_FLOAT_code_body[232] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, 0x4c, 0x8b, | |
0x66, 0xf8, 0xf2, 0x41, 0x0f, 0x10, 0x45, 0x10, | |
0xf2, 0x41, 0x0f, 0x5c, 0x44, 0x24, 0x10, 0x49, | |
0x83, 0x7d, 0x00, 0x01, 0x75, 0x22, 0xf2, 0x41, | |
0x0f, 0x11, 0x45, 0x10, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x62, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x59, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x4e, | |
0x49, 0x83, 0x3c, 0x24, 0x01, 0x75, 0x1b, 0xf2, | |
0x41, 0x0f, 0x11, 0x44, 0x24, 0x10, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x07, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x45, 0x00, 0x4d, 0x89, 0xe5, | |
0xeb, 0x2c, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x85, 0xc0, 0x74, 0x41, 0x49, 0x8b, 0x4d, | |
0x00, 0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, | |
0x49, 0x89, 0x4d, 0x00, 0x49, 0x8b, 0x0c, 0x24, | |
0x85, 0xc9, 0x78, 0x07, 0x48, 0xff, 0xc9, 0x49, | |
0x89, 0x0c, 0x24, 0x49, 0x89, 0xc5, 0x4c, 0x89, | |
0x6b, 0xf0, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _BINARY_OP_SUBTRACT_FLOAT_code_holes[5] = { | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xba, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyFloat_ExactDealloc+0x0 | |
// 8: &PyFloat_FromDouble+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_SUBTRACT_FLOAT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_SUBTRACT_FLOAT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_FromDouble, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_OP_SUBTRACT_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_OP_SUBTRACT_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 48 8b 6e f8 movq -0x8(%rsi), %rbp | |
// 1c: 4c 89 ef movq %r13, %rdi | |
// 1f: 48 89 ee movq %rbp, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _PyLong_Subtract-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _BINARY_OP_SUBTRACT_INT_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x48, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, 0xef, 0x48, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_OP_SUBTRACT_INT_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyLong_Subtract+0x0 | |
// 8: &PyObject_Free+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_OP_SUBTRACT_INT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_OP_SUBTRACT_INT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyLong_Subtract, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_SLICE | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SLICE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 76 f8 movq -0x8(%rsi), %rsi | |
// 18: 4d 8b 67 e8 movq -0x18(%r15), %r12 | |
// 1c: 49 8b 7f f0 movq -0x10(%r15), %rdi | |
// 20: ff 15 00 00 00 00 callq *(%rip) # 0x26 <_JIT_ENTRY+0x26> | |
// 0000000000000022: R_X86_64_GOTPCRELX _PyBuildSlice_ConsumeRefs-0x4 | |
// 26: 48 85 c0 testq %rax, %rax | |
// 29: 74 2e je 0x59 <_JIT_ENTRY+0x59> | |
// 2b: 48 89 c5 movq %rax, %rbp | |
// 2e: 4c 89 e7 movq %r12, %rdi | |
// 31: 48 89 c6 movq %rax, %rsi | |
// 34: ff 15 00 00 00 00 callq *(%rip) # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_GOTPCRELX PyObject_GetItem-0x4 | |
// 3a: 49 89 c5 movq %rax, %r13 | |
// 3d: 48 8b 45 00 movq (%rbp), %rax | |
// 41: 85 c0 testl %eax, %eax | |
// 43: 78 17 js 0x5c <_JIT_ENTRY+0x5c> | |
// 45: 48 ff c8 decq %rax | |
// 48: 48 89 45 00 movq %rax, (%rbp) | |
// 4c: 75 0e jne 0x5c <_JIT_ENTRY+0x5c> | |
// 4e: 48 89 ef movq %rbp, %rdi | |
// 51: ff 15 00 00 00 00 callq *(%rip) # 0x57 <_JIT_ENTRY+0x57> | |
// 0000000000000053: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 57: eb 03 jmp 0x5c <_JIT_ENTRY+0x5c> | |
// 59: 45 31 ed xorl %r13d, %r13d | |
// 5c: 49 8b 04 24 movq (%r12), %rax | |
// 60: 85 c0 testl %eax, %eax | |
// 62: 78 09 js 0x6d <_JIT_ENTRY+0x6d> | |
// 64: 48 ff c8 decq %rax | |
// 67: 49 89 04 24 movq %rax, (%r12) | |
// 6b: 74 2d je 0x9a <_JIT_ENTRY+0x9a> | |
// 6d: 49 8d 47 e8 leaq -0x18(%r15), %rax | |
// 71: 4d 85 ed testq %r13, %r13 | |
// 74: 74 36 je 0xac <_JIT_ENTRY+0xac> | |
// 76: 49 83 c7 f0 addq $-0x10, %r15 | |
// 7a: 4c 89 28 movq %r13, (%rax) | |
// 7d: 48 89 df movq %rbx, %rdi | |
// 80: 4c 89 fe movq %r15, %rsi | |
// 83: 4c 89 f2 movq %r14, %rdx | |
// 86: 48 83 c4 08 addq $0x8, %rsp | |
// 8a: 5b popq %rbx | |
// 8b: 41 5c popq %r12 | |
// 8d: 41 5d popq %r13 | |
// 8f: 41 5e popq %r14 | |
// 91: 41 5f popq %r15 | |
// 93: 5d popq %rbp | |
// 94: ff 25 00 00 00 00 jmpq *(%rip) # 0x9a <_JIT_ENTRY+0x9a> | |
// 0000000000000096: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 9a: 4c 89 e7 movq %r12, %rdi | |
// 9d: ff 15 00 00 00 00 callq *(%rip) # 0xa3 <_JIT_ENTRY+0xa3> | |
// 000000000000009f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// a3: 49 8d 47 e8 leaq -0x18(%r15), %rax | |
// a7: 4d 85 ed testq %r13, %r13 | |
// aa: 75 ca jne 0x76 <_JIT_ENTRY+0x76> | |
// ac: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xb3 <_JIT_ENTRY+0xb3> | |
// 00000000000000af: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// b3: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// ba: 48 29 d8 subq %rbx, %rax | |
// bd: 48 83 c0 b8 addq $-0x48, %rax | |
// c1: 48 c1 e8 03 shrq $0x3, %rax | |
// c5: 89 43 40 movl %eax, 0x40(%rbx) | |
// c8: 31 c0 xorl %eax, %eax | |
// ca: 48 83 c4 08 addq $0x8, %rsp | |
// ce: 5b popq %rbx | |
// cf: 41 5c popq %r12 | |
// d1: 41 5d popq %r13 | |
// d3: 41 5e popq %r14 | |
// d5: 41 5f popq %r15 | |
// d7: 5d popq %rbp | |
// d8: c3 retq | |
// d9: | |
static const unsigned char _BINARY_SLICE_code_body[218] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x76, 0xf8, | |
0x4d, 0x8b, 0x67, 0xe8, 0x49, 0x8b, 0x7f, 0xf0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x74, 0x2e, 0x48, 0x89, 0xc5, 0x4c, 0x89, | |
0xe7, 0x48, 0x89, 0xc6, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0xc5, 0x48, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x17, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x45, 0x00, 0x75, 0x0e, 0x48, 0x89, | |
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, | |
0x03, 0x45, 0x31, 0xed, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x74, 0x2d, 0x49, 0x8d, 0x47, | |
0xe8, 0x4d, 0x85, 0xed, 0x74, 0x36, 0x49, 0x83, | |
0xc7, 0xf0, 0x4c, 0x89, 0x28, 0x48, 0x89, 0xdf, | |
0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8d, 0x47, 0xe8, 0x4d, | |
0x85, 0xed, 0x75, 0xca, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, | |
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, | |
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xc3, | |
}; | |
static const Hole _BINARY_SLICE_code_holes[7] = { | |
{0x22, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x53, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x96, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x9f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xaf, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &_PyBuildSlice_ConsumeRefs+0x0 | |
// 8: &PyObject_GetItem+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
static const unsigned char _BINARY_SLICE_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SLICE_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyBuildSlice_ConsumeRefs, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetItem, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_SUBSCR | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1c: 48 89 ef movq %rbp, %rdi | |
// 1f: 4c 89 ee movq %r13, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_GetItem-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _BINARY_SUBSCR_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_SUBSCR_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &PyObject_GetItem+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BINARY_SUBSCR_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SUBSCR_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetItem, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BINARY_SUBSCR_DICT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_DICT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 49 8b 45 08 movq 0x8(%r13), %rax | |
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4 | |
// 23: 74 3f je 0x64 <_JIT_ENTRY+0x64> | |
// 25: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2c <_JIT_ENTRY+0x2c> | |
// 0000000000000028: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2c: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 33: 49 29 de subq %rbx, %r14 | |
// 36: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3a: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3e: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 42: 48 8b 03 movq (%rbx), %rax | |
// 45: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4b: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 4f: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 55: 48 83 c4 08 addq $0x8, %rsp | |
// 59: 5b popq %rbx | |
// 5a: 41 5c popq %r12 | |
// 5c: 41 5d popq %r13 | |
// 5e: 41 5e popq %r14 | |
// 60: 41 5f popq %r15 | |
// 62: 5d popq %rbp | |
// 63: c3 retq | |
// 64: 4d 8b 66 f8 movq -0x8(%r14), %r12 | |
// 68: 48 89 e2 movq %rsp, %rdx | |
// 6b: 4c 89 ef movq %r13, %rdi | |
// 6e: 4c 89 e6 movq %r12, %rsi | |
// 71: ff 15 00 00 00 00 callq *(%rip) # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_GOTPCRELX PyDict_GetItemRef-0x4 | |
// 77: 89 c5 movl %eax, %ebp | |
// 79: 85 c0 testl %eax, %eax | |
// 7b: 74 0a je 0x87 <_JIT_ENTRY+0x87> | |
// 7d: 49 8b 45 00 movq (%r13), %rax | |
// 81: 85 c0 testl %eax, %eax | |
// 83: 79 13 jns 0x98 <_JIT_ENTRY+0x98> | |
// 85: eb 23 jmp 0xaa <_JIT_ENTRY+0xaa> | |
// 87: 4c 89 e7 movq %r12, %rdi | |
// 8a: ff 15 00 00 00 00 callq *(%rip) # 0x90 <_JIT_ENTRY+0x90> | |
// 000000000000008c: R_X86_64_GOTPCRELX _PyErr_SetKeyError-0x4 | |
// 90: 49 8b 45 00 movq (%r13), %rax | |
// 94: 85 c0 testl %eax, %eax | |
// 96: 78 12 js 0xaa <_JIT_ENTRY+0xaa> | |
// 98: 48 ff c8 decq %rax | |
// 9b: 49 89 45 00 movq %rax, (%r13) | |
// 9f: 75 09 jne 0xaa <_JIT_ENTRY+0xaa> | |
// a1: 4c 89 ef movq %r13, %rdi | |
// a4: ff 15 00 00 00 00 callq *(%rip) # 0xaa <_JIT_ENTRY+0xaa> | |
// 00000000000000a6: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// aa: 49 8b 04 24 movq (%r12), %rax | |
// ae: 85 c0 testl %eax, %eax | |
// b0: 78 09 js 0xbb <_JIT_ENTRY+0xbb> | |
// b2: 48 ff c8 decq %rax | |
// b5: 49 89 04 24 movq %rax, (%r12) | |
// b9: 74 30 je 0xeb <_JIT_ENTRY+0xeb> | |
// bb: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// bf: 85 ed testl %ebp, %ebp | |
// c1: 7e 39 jle 0xfc <_JIT_ENTRY+0xfc> | |
// c3: 49 83 c6 f8 addq $-0x8, %r14 | |
// c7: 48 8b 0c 24 movq (%rsp), %rcx | |
// cb: 48 89 08 movq %rcx, (%rax) | |
// ce: 48 89 df movq %rbx, %rdi | |
// d1: 4c 89 f6 movq %r14, %rsi | |
// d4: 4c 89 fa movq %r15, %rdx | |
// d7: 48 83 c4 08 addq $0x8, %rsp | |
// db: 5b popq %rbx | |
// dc: 41 5c popq %r12 | |
// de: 41 5d popq %r13 | |
// e0: 41 5e popq %r14 | |
// e2: 41 5f popq %r15 | |
// e4: 5d popq %rbp | |
// e5: ff 25 00 00 00 00 jmpq *(%rip) # 0xeb <_JIT_ENTRY+0xeb> | |
// 00000000000000e7: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// eb: 4c 89 e7 movq %r12, %rdi | |
// ee: ff 15 00 00 00 00 callq *(%rip) # 0xf4 <_JIT_ENTRY+0xf4> | |
// 00000000000000f0: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f4: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f8: 85 ed testl %ebp, %ebp | |
// fa: 7f c7 jg 0xc3 <_JIT_ENTRY+0xc3> | |
// fc: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x103 <_JIT_ENTRY+0x103> | |
// 00000000000000ff: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 103: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 10a: 48 29 d8 subq %rbx, %rax | |
// 10d: 48 83 c0 b8 addq $-0x48, %rax | |
// 111: 48 c1 e8 03 shrq $0x3, %rax | |
// 115: 89 43 40 movl %eax, 0x40(%rbx) | |
// 118: 31 c0 xorl %eax, %eax | |
// 11a: e9 36 ff ff ff jmp 0x55 <_JIT_ENTRY+0x55> | |
// 11f: | |
static const unsigned char _BINARY_SUBSCR_DICT_code_body[288] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x49, 0x8b, 0x45, 0x08, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, | |
0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, | |
0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, | |
0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, | |
0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x66, 0xf8, | |
0x48, 0x89, 0xe2, 0x4c, 0x89, 0xef, 0x4c, 0x89, | |
0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x89, | |
0xc5, 0x85, 0xc0, 0x74, 0x0a, 0x49, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x79, 0x13, 0xeb, 0x23, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, | |
0x09, 0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, | |
0x24, 0x74, 0x30, 0x49, 0x8d, 0x46, 0xf0, 0x85, | |
0xed, 0x7e, 0x39, 0x49, 0x83, 0xc6, 0xf8, 0x48, | |
0x8b, 0x0c, 0x24, 0x48, 0x89, 0x08, 0x48, 0x89, | |
0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, | |
0x85, 0xed, 0x7f, 0xc7, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, | |
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, | |
0x31, 0xc0, 0xe9, 0x36, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _BINARY_SUBSCR_DICT_code_holes[10] = { | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x28, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xa6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xf0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xff, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyDict_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &PyDict_GetItemRef+0x0 | |
// 20: &_PyErr_SetKeyError+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: CONTINUE | |
static const unsigned char _BINARY_SUBSCR_DICT_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SUBSCR_DICT_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_GetItemRef, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetKeyError, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _BINARY_SUBSCR_LIST_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_LIST_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax | |
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4 | |
// 23: 0f 85 8a 00 00 00 jne 0xb3 <_JIT_ENTRY+0xb3> | |
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12 | |
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39> | |
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyList_Type-0x4 | |
// 39: 75 78 jne 0xb3 <_JIT_ENTRY+0xb3> | |
// 3b: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi) | |
// 40: 77 71 ja 0xb3 <_JIT_ENTRY+0xb3> | |
// 42: 8b 47 18 movl 0x18(%rdi), %eax | |
// 45: 49 39 44 24 10 cmpq %rax, 0x10(%r12) | |
// 4a: 7e 67 jle 0xb3 <_JIT_ENTRY+0xb3> | |
// 4c: 49 8b 4c 24 18 movq 0x18(%r12), %rcx | |
// 51: 48 8b 2c c1 movq (%rcx,%rax,8), %rbp | |
// 55: 8b 45 00 movl (%rbp), %eax | |
// 58: ff c0 incl %eax | |
// 5a: 74 03 je 0x5f <_JIT_ENTRY+0x5f> | |
// 5c: 89 45 00 movl %eax, (%rbp) | |
// 5f: 48 8b 07 movq (%rdi), %rax | |
// 62: 85 c0 testl %eax, %eax | |
// 64: 78 0e js 0x74 <_JIT_ENTRY+0x74> | |
// 66: 48 ff c8 decq %rax | |
// 69: 48 89 07 movq %rax, (%rdi) | |
// 6c: 75 06 jne 0x74 <_JIT_ENTRY+0x74> | |
// 6e: ff 15 00 00 00 00 callq *(%rip) # 0x74 <_JIT_ENTRY+0x74> | |
// 0000000000000070: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 74: 4d 8d 6e f8 leaq -0x8(%r14), %r13 | |
// 78: 49 8b 04 24 movq (%r12), %rax | |
// 7c: 85 c0 testl %eax, %eax | |
// 7e: 78 12 js 0x92 <_JIT_ENTRY+0x92> | |
// 80: 48 ff c8 decq %rax | |
// 83: 49 89 04 24 movq %rax, (%r12) | |
// 87: 75 09 jne 0x92 <_JIT_ENTRY+0x92> | |
// 89: 4c 89 e7 movq %r12, %rdi | |
// 8c: ff 15 00 00 00 00 callq *(%rip) # 0x92 <_JIT_ENTRY+0x92> | |
// 000000000000008e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 92: 49 89 6e f0 movq %rbp, -0x10(%r14) | |
// 96: 48 89 df movq %rbx, %rdi | |
// 99: 4c 89 ee movq %r13, %rsi | |
// 9c: 4c 89 fa movq %r15, %rdx | |
// 9f: 48 83 c4 08 addq $0x8, %rsp | |
// a3: 5b popq %rbx | |
// a4: 41 5c popq %r12 | |
// a6: 41 5d popq %r13 | |
// a8: 41 5e popq %r14 | |
// aa: 41 5f popq %r15 | |
// ac: 5d popq %rbp | |
// ad: ff 25 00 00 00 00 jmpq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3> | |
// 00000000000000af: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// b3: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xba <_JIT_ENTRY+0xba> | |
// 00000000000000b6: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// ba: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// c1: 49 29 de subq %rbx, %r14 | |
// c4: 49 83 c6 b8 addq $-0x48, %r14 | |
// c8: 49 c1 ee 03 shrq $0x3, %r14 | |
// cc: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// d0: 48 8b 03 movq (%rbx), %rax | |
// d3: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xd9 <_JIT_ENTRY+0xd9> | |
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// d9: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// dd: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// e3: 48 83 c4 08 addq $0x8, %rsp | |
// e7: 5b popq %rbx | |
// e8: 41 5c popq %r12 | |
// ea: 41 5d popq %r13 | |
// ec: 41 5e popq %r14 | |
// ee: 41 5f popq %r15 | |
// f0: 5d popq %rbp | |
// f1: c3 retq | |
// f2: | |
static const unsigned char _BINARY_SUBSCR_LIST_INT_code_body[243] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8, | |
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0x85, 0x8a, 0x00, 0x00, | |
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44, | |
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x75, 0x78, 0x48, 0x83, 0x7f, 0x10, 0x08, | |
0x77, 0x71, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44, | |
0x24, 0x10, 0x7e, 0x67, 0x49, 0x8b, 0x4c, 0x24, | |
0x18, 0x48, 0x8b, 0x2c, 0xc1, 0x8b, 0x45, 0x00, | |
0xff, 0xc0, 0x74, 0x03, 0x89, 0x45, 0x00, 0x48, | |
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4d, 0x8d, 0x6e, 0xf8, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, | |
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x6e, 0xf0, 0x48, 0x89, | |
0xdf, 0x4c, 0x89, 0xee, 0x4c, 0x89, 0xfa, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, | |
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40, | |
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, | |
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_SUBSCR_LIST_INT_code_holes[8] = { | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x70, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x8e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb6, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xd5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: | |
// 0: &PyLong_Type+0x0 | |
// 8: &PyList_Type+0x0 | |
// 10: &PyObject_Free+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: CONTINUE | |
// 28: EXECUTOR | |
// 30: TARGET | |
static const unsigned char _BINARY_SUBSCR_LIST_INT_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SUBSCR_LIST_INT_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyList_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _BINARY_SUBSCR_STR_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_STR_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax | |
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4 | |
// 23: 0f 85 c2 00 00 00 jne 0xeb <_JIT_ENTRY+0xeb> | |
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12 | |
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39> | |
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// 39: 0f 85 ac 00 00 00 jne 0xeb <_JIT_ENTRY+0xeb> | |
// 3f: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi) | |
// 44: 0f 87 a1 00 00 00 ja 0xeb <_JIT_ENTRY+0xeb> | |
// 4a: 8b 47 18 movl 0x18(%rdi), %eax | |
// 4d: 49 39 44 24 10 cmpq %rax, 0x10(%r12) | |
// 52: 0f 8e 93 00 00 00 jle 0xeb <_JIT_ENTRY+0xeb> | |
// 58: 41 8b 4c 24 20 movl 0x20(%r12), %ecx | |
// 5d: 89 ca movl %ecx, %edx | |
// 5f: c1 ea 02 shrl $0x2, %edx | |
// 62: 83 e2 07 andl $0x7, %edx | |
// 65: 83 fa 02 cmpl $0x2, %edx | |
// 68: 74 15 je 0x7f <_JIT_ENTRY+0x7f> | |
// 6a: 83 fa 01 cmpl $0x1, %edx | |
// 6d: 75 20 jne 0x8f <_JIT_ENTRY+0x8f> | |
// 6f: f6 c1 20 testb $0x20, %cl | |
// 72: 75 27 jne 0x9b <_JIT_ENTRY+0x9b> | |
// 74: 49 8b 4c 24 38 movq 0x38(%r12), %rcx | |
// 79: 0f b6 2c 01 movzbl (%rcx,%rax), %ebp | |
// 7d: eb 67 jmp 0xe6 <_JIT_ENTRY+0xe6> | |
// 7f: f6 c1 20 testb $0x20, %cl | |
// 82: 75 31 jne 0xb5 <_JIT_ENTRY+0xb5> | |
// 84: 49 8b 4c 24 38 movq 0x38(%r12), %rcx | |
// 89: 0f b7 2c 41 movzwl (%rcx,%rax,2), %ebp | |
// 8d: eb 57 jmp 0xe6 <_JIT_ENTRY+0xe6> | |
// 8f: f6 c1 20 testb $0x20, %cl | |
// 92: 75 3b jne 0xcf <_JIT_ENTRY+0xcf> | |
// 94: 49 8b 4c 24 38 movq 0x38(%r12), %rcx | |
// 99: eb 48 jmp 0xe3 <_JIT_ENTRY+0xe3> | |
// 9b: 31 d2 xorl %edx, %edx | |
// 9d: f6 c1 40 testb $0x40, %cl | |
// a0: 0f 94 c2 sete %dl | |
// a3: 48 c1 e2 04 shlq $0x4, %rdx | |
// a7: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx | |
// ab: 48 83 c1 28 addq $0x28, %rcx | |
// af: 0f b6 2c 01 movzbl (%rcx,%rax), %ebp | |
// b3: eb 31 jmp 0xe6 <_JIT_ENTRY+0xe6> | |
// b5: 31 d2 xorl %edx, %edx | |
// b7: f6 c1 40 testb $0x40, %cl | |
// ba: 0f 94 c2 sete %dl | |
// bd: 48 c1 e2 04 shlq $0x4, %rdx | |
// c1: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx | |
// c5: 48 83 c1 28 addq $0x28, %rcx | |
// c9: 0f b7 2c 41 movzwl (%rcx,%rax,2), %ebp | |
// cd: eb 17 jmp 0xe6 <_JIT_ENTRY+0xe6> | |
// cf: 31 d2 xorl %edx, %edx | |
// d1: f6 c1 40 testb $0x40, %cl | |
// d4: 0f 94 c2 sete %dl | |
// d7: 48 c1 e2 04 shlq $0x4, %rdx | |
// db: 4a 8d 0c 22 leaq (%rdx,%r12), %rcx | |
// df: 48 83 c1 28 addq $0x28, %rcx | |
// e3: 8b 2c 81 movl (%rcx,%rax,4), %ebp | |
// e6: 83 fd 7f cmpl $0x7f, %ebp | |
// e9: 76 3f jbe 0x12a <_JIT_ENTRY+0x12a> | |
// eb: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// f2: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// f9: 49 29 de subq %rbx, %r14 | |
// fc: 49 83 c6 b8 addq $-0x48, %r14 | |
// 100: 49 c1 ee 03 shrq $0x3, %r14 | |
// 104: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 108: 48 8b 03 movq (%rbx), %rax | |
// 10b: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x111 <_JIT_ENTRY+0x111> | |
// 000000000000010d: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 111: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 115: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 11b: 48 83 c4 08 addq $0x8, %rsp | |
// 11f: 5b popq %rbx | |
// 120: 41 5c popq %r12 | |
// 122: 41 5d popq %r13 | |
// 124: 41 5e popq %r14 | |
// 126: 41 5f popq %r15 | |
// 128: 5d popq %rbp | |
// 129: c3 retq | |
// 12a: 48 8b 07 movq (%rdi), %rax | |
// 12d: 85 c0 testl %eax, %eax | |
// 12f: 78 0e js 0x13f <_JIT_ENTRY+0x13f> | |
// 131: 48 ff c8 decq %rax | |
// 134: 48 89 07 movq %rax, (%rdi) | |
// 137: 75 06 jne 0x13f <_JIT_ENTRY+0x13f> | |
// 139: ff 15 00 00 00 00 callq *(%rip) # 0x13f <_JIT_ENTRY+0x13f> | |
// 000000000000013b: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 13f: 4d 8d 6e f8 leaq -0x8(%r14), %r13 | |
// 143: 49 8b 04 24 movq (%r12), %rax | |
// 147: 85 c0 testl %eax, %eax | |
// 149: 78 12 js 0x15d <_JIT_ENTRY+0x15d> | |
// 14b: 48 ff c8 decq %rax | |
// 14e: 49 89 04 24 movq %rax, (%r12) | |
// 152: 75 09 jne 0x15d <_JIT_ENTRY+0x15d> | |
// 154: 4c 89 e7 movq %r12, %rdi | |
// 157: ff 15 00 00 00 00 callq *(%rip) # 0x15d <_JIT_ENTRY+0x15d> | |
// 0000000000000159: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 15d: 89 e8 movl %ebp, %eax | |
// 15f: 48 8d 04 40 leaq (%rax,%rax,2), %rax | |
// 163: 48 c1 e0 04 shlq $0x4, %rax | |
// 167: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x16e <_JIT_ENTRY+0x16e> | |
// 000000000000016a: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 16e: 48 01 c8 addq %rcx, %rax | |
// 171: 48 05 70 fa 00 00 addq $0xfa70, %rax # imm = 0xFA70 | |
// 177: 49 89 46 f0 movq %rax, -0x10(%r14) | |
// 17b: 48 89 df movq %rbx, %rdi | |
// 17e: 4c 89 ee movq %r13, %rsi | |
// 181: 4c 89 fa movq %r15, %rdx | |
// 184: 48 83 c4 08 addq $0x8, %rsp | |
// 188: 5b popq %rbx | |
// 189: 41 5c popq %r12 | |
// 18b: 41 5d popq %r13 | |
// 18d: 41 5e popq %r14 | |
// 18f: 41 5f popq %r15 | |
// 191: 5d popq %rbp | |
// 192: ff 25 00 00 00 00 jmpq *(%rip) # 0x198 <_JIT_ENTRY+0x198> | |
// 0000000000000194: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 192: | |
static const unsigned char _BINARY_SUBSCR_STR_INT_code_body[403] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8, | |
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0x85, 0xc2, 0x00, 0x00, | |
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44, | |
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x0f, 0x85, 0xac, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0x7f, 0x10, 0x08, 0x0f, 0x87, 0xa1, 0x00, | |
0x00, 0x00, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44, | |
0x24, 0x10, 0x0f, 0x8e, 0x93, 0x00, 0x00, 0x00, | |
0x41, 0x8b, 0x4c, 0x24, 0x20, 0x89, 0xca, 0xc1, | |
0xea, 0x02, 0x83, 0xe2, 0x07, 0x83, 0xfa, 0x02, | |
0x74, 0x15, 0x83, 0xfa, 0x01, 0x75, 0x20, 0xf6, | |
0xc1, 0x20, 0x75, 0x27, 0x49, 0x8b, 0x4c, 0x24, | |
0x38, 0x0f, 0xb6, 0x2c, 0x01, 0xeb, 0x67, 0xf6, | |
0xc1, 0x20, 0x75, 0x31, 0x49, 0x8b, 0x4c, 0x24, | |
0x38, 0x0f, 0xb7, 0x2c, 0x41, 0xeb, 0x57, 0xf6, | |
0xc1, 0x20, 0x75, 0x3b, 0x49, 0x8b, 0x4c, 0x24, | |
0x38, 0xeb, 0x48, 0x31, 0xd2, 0xf6, 0xc1, 0x40, | |
0x0f, 0x94, 0xc2, 0x48, 0xc1, 0xe2, 0x04, 0x4a, | |
0x8d, 0x0c, 0x22, 0x48, 0x83, 0xc1, 0x28, 0x0f, | |
0xb6, 0x2c, 0x01, 0xeb, 0x31, 0x31, 0xd2, 0xf6, | |
0xc1, 0x40, 0x0f, 0x94, 0xc2, 0x48, 0xc1, 0xe2, | |
0x04, 0x4a, 0x8d, 0x0c, 0x22, 0x48, 0x83, 0xc1, | |
0x28, 0x0f, 0xb7, 0x2c, 0x41, 0xeb, 0x17, 0x31, | |
0xd2, 0xf6, 0xc1, 0x40, 0x0f, 0x94, 0xc2, 0x48, | |
0xc1, 0xe2, 0x04, 0x4a, 0x8d, 0x0c, 0x22, 0x48, | |
0x83, 0xc1, 0x28, 0x8b, 0x2c, 0x81, 0x83, 0xfd, | |
0x7f, 0x76, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, | |
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40, | |
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, | |
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xc3, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, | |
0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, | |
0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, | |
0x8d, 0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xe8, 0x48, | |
0x8d, 0x04, 0x40, 0x48, 0xc1, 0xe0, 0x04, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x01, | |
0xc8, 0x48, 0x05, 0x70, 0xfa, 0x00, 0x00, 0x49, | |
0x89, 0x46, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89, | |
0xee, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, | |
}; | |
static const Hole _BINARY_SUBSCR_STR_INT_code_holes[8] = { | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xee, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x10d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x13b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x159, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x16a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: | |
// 0: &PyLong_Type+0x0 | |
// 8: &PyUnicode_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &PyObject_Free+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: &_PyRuntime+0x0 | |
static const unsigned char _BINARY_SUBSCR_STR_INT_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SUBSCR_STR_INT_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0}, | |
}; | |
// _BINARY_SUBSCR_TUPLE_INT | |
// | |
// /tmp/tmp2mfmnab2/_BINARY_SUBSCR_TUPLE_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 18: 48 8b 47 08 movq 0x8(%rdi), %rax | |
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4 | |
// 23: 0f 85 86 00 00 00 jne 0xaf <_JIT_ENTRY+0xaf> | |
// 29: 4d 8b 66 f0 movq -0x10(%r14), %r12 | |
// 2d: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 32: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x39 <_JIT_ENTRY+0x39> | |
// 0000000000000035: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// 39: 75 74 jne 0xaf <_JIT_ENTRY+0xaf> | |
// 3b: 48 83 7f 10 08 cmpq $0x8, 0x10(%rdi) | |
// 40: 77 6d ja 0xaf <_JIT_ENTRY+0xaf> | |
// 42: 8b 47 18 movl 0x18(%rdi), %eax | |
// 45: 49 39 44 24 10 cmpq %rax, 0x10(%r12) | |
// 4a: 7e 63 jle 0xaf <_JIT_ENTRY+0xaf> | |
// 4c: 49 8b 6c c4 18 movq 0x18(%r12,%rax,8), %rbp | |
// 51: 8b 45 00 movl (%rbp), %eax | |
// 54: ff c0 incl %eax | |
// 56: 74 03 je 0x5b <_JIT_ENTRY+0x5b> | |
// 58: 89 45 00 movl %eax, (%rbp) | |
// 5b: 48 8b 07 movq (%rdi), %rax | |
// 5e: 85 c0 testl %eax, %eax | |
// 60: 78 0e js 0x70 <_JIT_ENTRY+0x70> | |
// 62: 48 ff c8 decq %rax | |
// 65: 48 89 07 movq %rax, (%rdi) | |
// 68: 75 06 jne 0x70 <_JIT_ENTRY+0x70> | |
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 70: 4d 8d 6e f8 leaq -0x8(%r14), %r13 | |
// 74: 49 8b 04 24 movq (%r12), %rax | |
// 78: 85 c0 testl %eax, %eax | |
// 7a: 78 12 js 0x8e <_JIT_ENTRY+0x8e> | |
// 7c: 48 ff c8 decq %rax | |
// 7f: 49 89 04 24 movq %rax, (%r12) | |
// 83: 75 09 jne 0x8e <_JIT_ENTRY+0x8e> | |
// 85: 4c 89 e7 movq %r12, %rdi | |
// 88: ff 15 00 00 00 00 callq *(%rip) # 0x8e <_JIT_ENTRY+0x8e> | |
// 000000000000008a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 8e: 49 89 6e f0 movq %rbp, -0x10(%r14) | |
// 92: 48 89 df movq %rbx, %rdi | |
// 95: 4c 89 ee movq %r13, %rsi | |
// 98: 4c 89 fa movq %r15, %rdx | |
// 9b: 48 83 c4 08 addq $0x8, %rsp | |
// 9f: 5b popq %rbx | |
// a0: 41 5c popq %r12 | |
// a2: 41 5d popq %r13 | |
// a4: 41 5e popq %r14 | |
// a6: 41 5f popq %r15 | |
// a8: 5d popq %rbp | |
// a9: ff 25 00 00 00 00 jmpq *(%rip) # 0xaf <_JIT_ENTRY+0xaf> | |
// 00000000000000ab: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// af: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb6 <_JIT_ENTRY+0xb6> | |
// 00000000000000b2: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// b6: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// bd: 49 29 de subq %rbx, %r14 | |
// c0: 49 83 c6 b8 addq $-0x48, %r14 | |
// c4: 49 c1 ee 03 shrq $0x3, %r14 | |
// c8: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// cc: 48 8b 03 movq (%rbx), %rax | |
// cf: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xd5 <_JIT_ENTRY+0xd5> | |
// 00000000000000d1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// d5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// d9: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// df: 48 83 c4 08 addq $0x8, %rsp | |
// e3: 5b popq %rbx | |
// e4: 41 5c popq %r12 | |
// e6: 41 5d popq %r13 | |
// e8: 41 5e popq %r14 | |
// ea: 41 5f popq %r15 | |
// ec: 5d popq %rbp | |
// ed: c3 retq | |
// ee: | |
static const unsigned char _BINARY_SUBSCR_TUPLE_INT_code_body[239] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x7e, 0xf8, | |
0x48, 0x8b, 0x47, 0x08, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0x85, 0x86, 0x00, 0x00, | |
0x00, 0x4d, 0x8b, 0x66, 0xf0, 0x49, 0x8b, 0x44, | |
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x75, 0x74, 0x48, 0x83, 0x7f, 0x10, 0x08, | |
0x77, 0x6d, 0x8b, 0x47, 0x18, 0x49, 0x39, 0x44, | |
0x24, 0x10, 0x7e, 0x63, 0x49, 0x8b, 0x6c, 0xc4, | |
0x18, 0x8b, 0x45, 0x00, 0xff, 0xc0, 0x74, 0x03, | |
0x89, 0x45, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, | |
0x78, 0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, | |
0x75, 0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x8d, 0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x6e, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xee, | |
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, | |
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, | |
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BINARY_SUBSCR_TUPLE_INT_code_holes[8] = { | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x35, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x8a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xab, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xd1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: | |
// 0: &PyLong_Type+0x0 | |
// 8: &PyTuple_Type+0x0 | |
// 10: &PyObject_Free+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: CONTINUE | |
// 28: EXECUTOR | |
// 30: TARGET | |
static const unsigned char _BINARY_SUBSCR_TUPLE_INT_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BINARY_SUBSCR_TUPLE_INT_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _BUILD_CONST_KEY_MAP | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_CONST_KEY_MAP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 18: 49 8b 45 08 movq 0x8(%r13), %rax | |
// 1c: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// 23: 0f 85 8e 00 00 00 jne 0xb7 <_JIT_ENTRY+0xb7> | |
// 29: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x30 <_JIT_ENTRY+0x30> | |
// 000000000000002c: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 30: 49 39 45 10 cmpq %rax, 0x10(%r13) | |
// 34: 0f 85 7d 00 00 00 jne 0xb7 <_JIT_ENTRY+0xb7> | |
// 3a: 8b 05 00 00 00 00 movl (%rip), %eax # 0x40 <_JIT_ENTRY+0x40> | |
// 000000000000003c: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 40: f7 d0 notl %eax | |
// 42: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 47: 48 98 cltq | |
// 49: 4d 8d 24 c7 leaq (%r15,%rax,8), %r12 | |
// 4d: 49 8d 7d 18 leaq 0x18(%r13), %rdi | |
// 51: 48 8b 2d 00 00 00 00 movq (%rip), %rbp # 0x58 <_JIT_ENTRY+0x58> | |
// 0000000000000054: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 58: 44 0f b7 c5 movzwl %bp, %r8d | |
// 5c: be 01 00 00 00 movl $0x1, %esi | |
// 61: b9 01 00 00 00 movl $0x1, %ecx | |
// 66: 4c 89 e2 movq %r12, %rdx | |
// 69: ff 15 00 00 00 00 callq *(%rip) # 0x6f <_JIT_ENTRY+0x6f> | |
// 000000000000006b: R_X86_64_GOTPCRELX _PyDict_FromItems-0x4 | |
// 6f: 48 89 04 24 movq %rax, (%rsp) | |
// 73: f7 c5 ff ff 00 00 testl $0xffff, %ebp # imm = 0xFFFF | |
// 79: 0f 8e 83 00 00 00 jle 0x102 <_JIT_ENTRY+0x102> | |
// 7f: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x86 <_JIT_ENTRY+0x86> | |
// 0000000000000082: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 86: 48 ff c5 incq %rbp | |
// 89: eb 0e jmp 0x99 <_JIT_ENTRY+0x99> | |
// 8b: 0f 1f 44 00 00 nopl (%rax,%rax) | |
// 90: 48 ff cd decq %rbp | |
// 93: 48 83 fd 01 cmpq $0x1, %rbp | |
// 97: 7e 69 jle 0x102 <_JIT_ENTRY+0x102> | |
// 99: 8d 45 fe leal -0x2(%rbp), %eax | |
// 9c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi | |
// a0: 48 8b 07 movq (%rdi), %rax | |
// a3: 85 c0 testl %eax, %eax | |
// a5: 78 e9 js 0x90 <_JIT_ENTRY+0x90> | |
// a7: 48 ff c8 decq %rax | |
// aa: 48 89 07 movq %rax, (%rdi) | |
// ad: 75 e1 jne 0x90 <_JIT_ENTRY+0x90> | |
// af: ff 15 00 00 00 00 callq *(%rip) # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// b5: eb d9 jmp 0x90 <_JIT_ENTRY+0x90> | |
// b7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xbe <_JIT_ENTRY+0xbe> | |
// 00000000000000ba: R_X86_64_REX_GOTPCRELX PyExc_SystemError-0x4 | |
// be: 48 8b 30 movq (%rax), %rsi | |
// c1: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xc8 <_JIT_ENTRY+0xc8> | |
// 00000000000000c4: R_X86_64_PC32 .L.str.12-0x4 | |
// c8: 4c 89 f7 movq %r14, %rdi | |
// cb: ff 15 00 00 00 00 callq *(%rip) # 0xd1 <_JIT_ENTRY+0xd1> | |
// 00000000000000cd: R_X86_64_GOTPCRELX _PyErr_SetString-0x4 | |
// d1: 4d 89 fc movq %r15, %r12 | |
// d4: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xdb <_JIT_ENTRY+0xdb> | |
// 00000000000000d7: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// db: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// e2: 49 29 dc subq %rbx, %r12 | |
// e5: 49 83 c4 b8 addq $-0x48, %r12 | |
// e9: 49 c1 ec 03 shrq $0x3, %r12 | |
// ed: 44 89 63 40 movl %r12d, 0x40(%rbx) | |
// f1: 31 c0 xorl %eax, %eax | |
// f3: 48 83 c4 08 addq $0x8, %rsp | |
// f7: 5b popq %rbx | |
// f8: 41 5c popq %r12 | |
// fa: 41 5d popq %r13 | |
// fc: 41 5e popq %r14 | |
// fe: 41 5f popq %r15 | |
// 100: 5d popq %rbp | |
// 101: c3 retq | |
// 102: 49 8b 45 00 movq (%r13), %rax | |
// 106: 85 c0 testl %eax, %eax | |
// 108: 78 12 js 0x11c <_JIT_ENTRY+0x11c> | |
// 10a: 48 ff c8 decq %rax | |
// 10d: 49 89 45 00 movq %rax, (%r13) | |
// 111: 75 09 jne 0x11c <_JIT_ENTRY+0x11c> | |
// 113: 4c 89 ef movq %r13, %rdi | |
// 116: ff 15 00 00 00 00 callq *(%rip) # 0x11c <_JIT_ENTRY+0x11c> | |
// 0000000000000118: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 11c: 48 8b 14 24 movq (%rsp), %rdx | |
// 120: 48 85 d2 testq %rdx, %rdx | |
// 123: 74 af je 0xd4 <_JIT_ENTRY+0xd4> | |
// 125: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x12c <_JIT_ENTRY+0x12c> | |
// 0000000000000128: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 12c: 0f b7 c8 movzwl %ax, %ecx | |
// 12f: f7 d0 notl %eax | |
// 131: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 136: 48 98 cltq | |
// 138: 49 89 14 c7 movq %rdx, (%r15,%rax,8) | |
// 13c: 48 c1 e1 03 shlq $0x3, %rcx | |
// 140: 49 29 cf subq %rcx, %r15 | |
// 143: 48 89 df movq %rbx, %rdi | |
// 146: 4c 89 fe movq %r15, %rsi | |
// 149: 4c 89 f2 movq %r14, %rdx | |
// 14c: 48 83 c4 08 addq $0x8, %rsp | |
// 150: 5b popq %rbx | |
// 151: 41 5c popq %r12 | |
// 153: 41 5d popq %r13 | |
// 155: 41 5e popq %r14 | |
// 157: 41 5f popq %r15 | |
// 159: 5d popq %rbp | |
// 15a: ff 25 00 00 00 00 jmpq *(%rip) # 0x160 <_JIT_ENTRY+0x160> | |
// 000000000000015c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 15a: | |
static const unsigned char _BUILD_CONST_KEY_MAP_code_body[347] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf8, | |
0x49, 0x8b, 0x45, 0x08, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0x85, 0x8e, 0x00, 0x00, | |
0x00, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x39, 0x45, 0x10, 0x0f, 0x85, 0x7d, 0x00, | |
0x00, 0x00, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0xf7, 0xd0, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, | |
0x98, 0x4d, 0x8d, 0x24, 0xc7, 0x49, 0x8d, 0x7d, | |
0x18, 0x48, 0x8b, 0x2d, 0x00, 0x00, 0x00, 0x00, | |
0x44, 0x0f, 0xb7, 0xc5, 0xbe, 0x01, 0x00, 0x00, | |
0x00, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xe2, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x04, 0x24, 0xf7, 0xc5, 0xff, 0xff, 0x00, | |
0x00, 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, 0x0f, | |
0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xff, | |
0xc5, 0xeb, 0x0e, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e, | |
0x69, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x30, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x4d, 0x89, 0xfc, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83, 0xc4, | |
0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89, 0x63, | |
0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xc3, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x14, 0x24, | |
0x48, 0x85, 0xd2, 0x74, 0xaf, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, 0xc8, 0xf7, | |
0xd0, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, 0x98, | |
0x49, 0x89, 0x14, 0xc7, 0x48, 0xc1, 0xe1, 0x03, | |
0x49, 0x29, 0xcf, 0x48, 0x89, 0xdf, 0x4c, 0x89, | |
0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, | |
}; | |
static const Hole _BUILD_CONST_KEY_MAP_code_holes[14] = { | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x2c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c}, | |
{0x3c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x54, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x82, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xba, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0xc4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xcd, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0xd7, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x118, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x128, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: 'bad BUILD_CONST_KEY_MAP keys argument\x00' | |
// 26: 00 00 | |
// 28: &PyTuple_Type+0x0 | |
// 30: OPARG | |
// 38: &_PyDict_FromItems+0x0 | |
// 40: &_Py_Dealloc+0x0 | |
// 48: &PyExc_SystemError+0x0 | |
// 50: &_PyErr_SetString+0x0 | |
// 58: EXECUTOR | |
static const unsigned char _BUILD_CONST_KEY_MAP_data_body[97] = { | |
0x62, 0x61, 0x64, 0x20, 0x42, 0x55, 0x49, 0x4c, | |
0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x5f, | |
0x4b, 0x45, 0x59, 0x5f, 0x4d, 0x41, 0x50, 0x20, | |
0x6b, 0x65, 0x79, 0x73, 0x20, 0x61, 0x72, 0x67, | |
0x75, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_CONST_KEY_MAP_data_holes[8] = { | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_FromItems, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_SystemError, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_LIST | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_LIST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d6 movq %rdx, %r14 | |
// b: 49 89 f7 movq %rsi, %r15 | |
// e: 48 89 fb movq %rdi, %rbx | |
// 11: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 18: 48 8d 04 f5 00 00 00 00 leaq (,%rsi,8), %rax | |
// 20: 4d 89 fc movq %r15, %r12 | |
// 23: 49 29 c4 subq %rax, %r12 | |
// 26: 4c 89 e7 movq %r12, %rdi | |
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f> | |
// 000000000000002b: R_X86_64_GOTPCRELX _PyList_FromArraySteal-0x4 | |
// 2f: 48 85 c0 testq %rax, %rax | |
// 32: 74 3c je 0x70 <_JIT_ENTRY+0x70> | |
// 34: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 3b: 0f b7 d1 movzwl %cx, %edx | |
// 3e: 0f b7 c9 movzwl %cx, %ecx | |
// 41: 48 c1 e1 03 shlq $0x3, %rcx | |
// 45: 48 f7 d9 negq %rcx | |
// 48: 49 89 04 0f movq %rax, (%r15,%rcx) | |
// 4c: b8 01 00 00 00 movl $0x1, %eax | |
// 51: 29 d0 subl %edx, %eax | |
// 53: 48 98 cltq | |
// 55: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi | |
// 59: 48 89 df movq %rbx, %rdi | |
// 5c: 4c 89 f2 movq %r14, %rdx | |
// 5f: 48 83 c4 08 addq $0x8, %rsp | |
// 63: 5b popq %rbx | |
// 64: 41 5c popq %r12 | |
// 66: 41 5e popq %r14 | |
// 68: 41 5f popq %r15 | |
// 6a: ff 25 00 00 00 00 jmpq *(%rip) # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 77: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 7e: 49 29 dc subq %rbx, %r12 | |
// 81: 49 83 c4 b8 addq $-0x48, %r12 | |
// 85: 49 c1 ec 03 shrq $0x3, %r12 | |
// 89: 44 89 63 40 movl %r12d, 0x40(%rbx) | |
// 8d: 31 c0 xorl %eax, %eax | |
// 8f: 48 83 c4 08 addq $0x8, %rsp | |
// 93: 5b popq %rbx | |
// 94: 41 5c popq %r12 | |
// 96: 41 5e popq %r14 | |
// 98: 41 5f popq %r15 | |
// 9a: c3 retq | |
// 9b: | |
static const unsigned char _BUILD_LIST_code_body[156] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd6, 0x49, 0x89, 0xf7, 0x48, 0x89, | |
0xfb, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x89, 0xfc, 0x49, 0x29, 0xc4, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x85, 0xc0, 0x74, 0x3c, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xd1, 0x0f, 0xb7, | |
0xc9, 0x48, 0xc1, 0xe1, 0x03, 0x48, 0xf7, 0xd9, | |
0x49, 0x89, 0x04, 0x0f, 0xb8, 0x01, 0x00, 0x00, | |
0x00, 0x29, 0xd0, 0x48, 0x98, 0x49, 0x8d, 0x34, | |
0xc7, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf2, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x86, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, | |
0xdc, 0x49, 0x83, 0xc4, 0xb8, 0x49, 0xc1, 0xec, | |
0x03, 0x44, 0x89, 0x63, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _BUILD_LIST_code_holes[6] = { | |
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyList_FromArraySteal+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BUILD_LIST_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_LIST_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_FromArraySteal, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_MAP | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_MAP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 48 89 14 24 movq %rdx, (%rsp) | |
// f: 49 89 f7 movq %rsi, %r15 | |
// 12: 48 89 fb movq %rdi, %rbx | |
// 15: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1c: 0f b7 e8 movzwl %ax, %ebp | |
// 1f: 89 e9 movl %ebp, %ecx | |
// 21: f7 d9 negl %ecx | |
// 23: 01 c9 addl %ecx, %ecx | |
// 25: 48 63 c9 movslq %ecx, %rcx | |
// 28: 4c 8d 24 ce leaq (%rsi,%rcx,8), %r12 | |
// 2c: 48 8d 14 ce leaq (%rsi,%rcx,8), %rdx | |
// 30: 48 83 c2 08 addq $0x8, %rdx | |
// 34: 44 0f b7 c0 movzwl %ax, %r8d | |
// 38: be 02 00 00 00 movl $0x2, %esi | |
// 3d: b9 02 00 00 00 movl $0x2, %ecx | |
// 42: 4c 89 e7 movq %r12, %rdi | |
// 45: ff 15 00 00 00 00 callq *(%rip) # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_GOTPCRELX _PyDict_FromItems-0x4 | |
// 4b: 49 89 c5 movq %rax, %r13 | |
// 4e: 01 ed addl %ebp, %ebp | |
// 50: 85 ed testl %ebp, %ebp | |
// 52: 7e 40 jle 0x94 <_JIT_ENTRY+0x94> | |
// 54: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x5b <_JIT_ENTRY+0x5b> | |
// 0000000000000057: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 5b: 48 8d 2c 00 leaq (%rax,%rax), %rbp | |
// 5f: 48 ff c5 incq %rbp | |
// 62: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x69 <_JIT_ENTRY+0x69> | |
// 0000000000000065: R_X86_64_REX_GOTPCRELX _Py_Dealloc-0x4 | |
// 69: eb 0e jmp 0x79 <_JIT_ENTRY+0x79> | |
// 6b: 0f 1f 44 00 00 nopl (%rax,%rax) | |
// 70: 48 ff cd decq %rbp | |
// 73: 48 83 fd 01 cmpq $0x1, %rbp | |
// 77: 7e 1b jle 0x94 <_JIT_ENTRY+0x94> | |
// 79: 8d 45 fe leal -0x2(%rbp), %eax | |
// 7c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi | |
// 80: 48 8b 07 movq (%rdi), %rax | |
// 83: 85 c0 testl %eax, %eax | |
// 85: 78 e9 js 0x70 <_JIT_ENTRY+0x70> | |
// 87: 48 ff c8 decq %rax | |
// 8a: 48 89 07 movq %rax, (%rdi) | |
// 8d: 75 e1 jne 0x70 <_JIT_ENTRY+0x70> | |
// 8f: 41 ff d6 callq *%r14 | |
// 92: eb dc jmp 0x70 <_JIT_ENTRY+0x70> | |
// 94: 4d 85 ed testq %r13, %r13 | |
// 97: 74 3f je 0xd8 <_JIT_ENTRY+0xd8> | |
// 99: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0xa0 <_JIT_ENTRY+0xa0> | |
// 000000000000009c: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// a0: 89 c1 movl %eax, %ecx | |
// a2: f7 d9 negl %ecx | |
// a4: 01 c9 addl %ecx, %ecx | |
// a6: 48 63 c9 movslq %ecx, %rcx | |
// a9: 4d 89 2c cf movq %r13, (%r15,%rcx,8) | |
// ad: 01 c0 addl %eax, %eax | |
// af: b9 01 00 00 00 movl $0x1, %ecx | |
// b4: 29 c1 subl %eax, %ecx | |
// b6: 48 63 c1 movslq %ecx, %rax | |
// b9: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi | |
// bd: 48 89 df movq %rbx, %rdi | |
// c0: 48 8b 14 24 movq (%rsp), %rdx | |
// c4: 48 83 c4 08 addq $0x8, %rsp | |
// c8: 5b popq %rbx | |
// c9: 41 5c popq %r12 | |
// cb: 41 5d popq %r13 | |
// cd: 41 5e popq %r14 | |
// cf: 41 5f popq %r15 | |
// d1: 5d popq %rbp | |
// d2: ff 25 00 00 00 00 jmpq *(%rip) # 0xd8 <_JIT_ENTRY+0xd8> | |
// 00000000000000d4: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// d8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xdf <_JIT_ENTRY+0xdf> | |
// 00000000000000db: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// df: 48 8b 0c 24 movq (%rsp), %rcx | |
// e3: 48 89 81 28 01 00 00 movq %rax, 0x128(%rcx) | |
// ea: 49 29 dc subq %rbx, %r12 | |
// ed: 49 83 c4 b8 addq $-0x48, %r12 | |
// f1: 49 c1 ec 03 shrq $0x3, %r12 | |
// f5: 44 89 63 40 movl %r12d, 0x40(%rbx) | |
// f9: 31 c0 xorl %eax, %eax | |
// fb: 48 83 c4 08 addq $0x8, %rsp | |
// ff: 5b popq %rbx | |
// 100: 41 5c popq %r12 | |
// 102: 41 5d popq %r13 | |
// 104: 41 5e popq %r14 | |
// 106: 41 5f popq %r15 | |
// 108: 5d popq %rbp | |
// 109: c3 retq | |
// 10a: | |
static const unsigned char _BUILD_MAP_code_body[267] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x48, 0x89, 0x14, 0x24, 0x49, | |
0x89, 0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, 0xe8, 0x89, | |
0xe9, 0xf7, 0xd9, 0x01, 0xc9, 0x48, 0x63, 0xc9, | |
0x4c, 0x8d, 0x24, 0xce, 0x48, 0x8d, 0x14, 0xce, | |
0x48, 0x83, 0xc2, 0x08, 0x44, 0x0f, 0xb7, 0xc0, | |
0xbe, 0x02, 0x00, 0x00, 0x00, 0xb9, 0x02, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x01, 0xed, | |
0x85, 0xed, 0x7e, 0x40, 0x0f, 0xb7, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8d, 0x2c, 0x00, 0x48, | |
0xff, 0xc5, 0x4c, 0x8b, 0x35, 0x00, 0x00, 0x00, | |
0x00, 0xeb, 0x0e, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e, | |
0x1b, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0x41, | |
0xff, 0xd6, 0xeb, 0xdc, 0x4d, 0x85, 0xed, 0x74, | |
0x3f, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc1, 0xf7, 0xd9, 0x01, 0xc9, 0x48, 0x63, | |
0xc9, 0x4d, 0x89, 0x2c, 0xcf, 0x01, 0xc0, 0xb9, | |
0x01, 0x00, 0x00, 0x00, 0x29, 0xc1, 0x48, 0x63, | |
0xc1, 0x49, 0x8d, 0x34, 0xc7, 0x48, 0x89, 0xdf, | |
0x48, 0x8b, 0x14, 0x24, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x0c, 0x24, 0x48, 0x89, 0x81, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83, 0xc4, | |
0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89, 0x63, | |
0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xc3, | |
}; | |
static const Hole _BUILD_MAP_code_holes[8] = { | |
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x57, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x65, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x9c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0xd4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xdb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyDict_FromItems+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
static const unsigned char _BUILD_MAP_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_MAP_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_FromItems, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_SET | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_SET.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d6 movq %rdx, %r14 | |
// 11: 49 89 f5 movq %rsi, %r13 | |
// 14: 48 89 fb movq %rdi, %rbx | |
// 17: 31 ff xorl %edi, %edi | |
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f> | |
// 000000000000001b: R_X86_64_GOTPCRELX PySet_New-0x4 | |
// 1f: 48 85 c0 testq %rax, %rax | |
// 22: 0f 84 92 00 00 00 je 0xba <_JIT_ENTRY+0xba> | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x32 <_JIT_ENTRY+0x32> | |
// 000000000000002e: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 32: 66 85 c0 testw %ax, %ax | |
// 35: 0f 84 de 00 00 00 je 0x119 <_JIT_ENTRY+0x119> | |
// 3b: 4c 89 74 24 08 movq %r14, 0x8(%rsp) | |
// 40: 48 89 5c 24 10 movq %rbx, 0x10(%rsp) | |
// 45: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 4c: 48 8d 0c c5 00 00 00 00 leaq (,%rax,8), %rcx | |
// 54: 4c 89 2c 24 movq %r13, (%rsp) | |
// 58: 4d 89 ef movq %r13, %r15 | |
// 5b: 49 29 cf subq %rcx, %r15 | |
// 5e: 83 f8 02 cmpl $0x2, %eax | |
// 61: bb 01 00 00 00 movl $0x1, %ebx | |
// 66: 0f 43 d8 cmovael %eax, %ebx | |
// 69: 45 31 f6 xorl %r14d, %r14d | |
// 6c: 31 ed xorl %ebp, %ebp | |
// 6e: eb 08 jmp 0x78 <_JIT_ENTRY+0x78> | |
// 70: 49 ff c6 incq %r14 | |
// 73: 4c 39 f3 cmpq %r14, %rbx | |
// 76: 74 47 je 0xbf <_JIT_ENTRY+0xbf> | |
// 78: 4f 8b 2c f7 movq (%r15,%r14,8), %r13 | |
// 7c: 85 ed testl %ebp, %ebp | |
// 7e: 74 10 je 0x90 <_JIT_ENTRY+0x90> | |
// 80: 49 8b 45 00 movq (%r13), %rax | |
// 84: 85 c0 testl %eax, %eax | |
// 86: 78 e8 js 0x70 <_JIT_ENTRY+0x70> | |
// 88: eb 1c jmp 0xa6 <_JIT_ENTRY+0xa6> | |
// 8a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 90: 4c 89 e7 movq %r12, %rdi | |
// 93: 4c 89 ee movq %r13, %rsi | |
// 96: ff 15 00 00 00 00 callq *(%rip) # 0x9c <_JIT_ENTRY+0x9c> | |
// 0000000000000098: R_X86_64_GOTPCRELX PySet_Add-0x4 | |
// 9c: 89 c5 movl %eax, %ebp | |
// 9e: 49 8b 45 00 movq (%r13), %rax | |
// a2: 85 c0 testl %eax, %eax | |
// a4: 78 ca js 0x70 <_JIT_ENTRY+0x70> | |
// a6: 48 ff c8 decq %rax | |
// a9: 49 89 45 00 movq %rax, (%r13) | |
// ad: 75 c1 jne 0x70 <_JIT_ENTRY+0x70> | |
// af: 4c 89 ef movq %r13, %rdi | |
// b2: ff 15 00 00 00 00 callq *(%rip) # 0xb8 <_JIT_ENTRY+0xb8> | |
// 00000000000000b4: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// b8: eb b6 jmp 0x70 <_JIT_ENTRY+0x70> | |
// ba: 4d 89 ef movq %r13, %r15 | |
// bd: eb 2c jmp 0xeb <_JIT_ENTRY+0xeb> | |
// bf: 85 ed testl %ebp, %ebp | |
// c1: 48 8b 5c 24 10 movq 0x10(%rsp), %rbx | |
// c6: 4c 8b 74 24 08 movq 0x8(%rsp), %r14 | |
// cb: 4c 8b 2c 24 movq (%rsp), %r13 | |
// cf: 74 48 je 0x119 <_JIT_ENTRY+0x119> | |
// d1: 49 8b 04 24 movq (%r12), %rax | |
// d5: 85 c0 testl %eax, %eax | |
// d7: 78 12 js 0xeb <_JIT_ENTRY+0xeb> | |
// d9: 48 ff c8 decq %rax | |
// dc: 49 89 04 24 movq %rax, (%r12) | |
// e0: 75 09 jne 0xeb <_JIT_ENTRY+0xeb> | |
// e2: 4c 89 e7 movq %r12, %rdi | |
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb> | |
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// eb: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// f2: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// f9: 49 29 df subq %rbx, %r15 | |
// fc: 49 83 c7 b8 addq $-0x48, %r15 | |
// 100: 49 c1 ef 03 shrq $0x3, %r15 | |
// 104: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 108: 31 c0 xorl %eax, %eax | |
// 10a: 48 83 c4 18 addq $0x18, %rsp | |
// 10e: 5b popq %rbx | |
// 10f: 41 5c popq %r12 | |
// 111: 41 5d popq %r13 | |
// 113: 41 5e popq %r14 | |
// 115: 41 5f popq %r15 | |
// 117: 5d popq %rbp | |
// 118: c3 retq | |
// 119: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x120 <_JIT_ENTRY+0x120> | |
// 000000000000011c: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 120: 0f b7 c8 movzwl %ax, %ecx | |
// 123: 0f b7 c0 movzwl %ax, %eax | |
// 126: 48 c1 e0 03 shlq $0x3, %rax | |
// 12a: 48 f7 d8 negq %rax | |
// 12d: 4d 89 64 05 00 movq %r12, (%r13,%rax) | |
// 132: b8 01 00 00 00 movl $0x1, %eax | |
// 137: 29 c8 subl %ecx, %eax | |
// 139: 48 98 cltq | |
// 13b: 48 8d 34 c5 00 00 00 00 leaq (,%rax,8), %rsi | |
// 143: 4c 01 ee addq %r13, %rsi | |
// 146: 48 89 df movq %rbx, %rdi | |
// 149: 4c 89 f2 movq %r14, %rdx | |
// 14c: 48 83 c4 18 addq $0x18, %rsp | |
// 150: 5b popq %rbx | |
// 151: 41 5c popq %r12 | |
// 153: 41 5d popq %r13 | |
// 155: 41 5e popq %r14 | |
// 157: 41 5f popq %r15 | |
// 159: 5d popq %rbp | |
// 15a: ff 25 00 00 00 00 jmpq *(%rip) # 0x160 <_JIT_ENTRY+0x160> | |
// 000000000000015c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 15a: | |
static const unsigned char _BUILD_SET_code_body[347] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd6, 0x49, 0x89, 0xf5, 0x48, 0x89, 0xfb, 0x31, | |
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x85, 0xc0, 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x66, 0x85, 0xc0, 0x0f, 0x84, 0xde, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0x74, 0x24, 0x08, | |
0x48, 0x89, 0x5c, 0x24, 0x10, 0x0f, 0xb7, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x0c, 0xc5, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x2c, 0x24, | |
0x4d, 0x89, 0xef, 0x49, 0x29, 0xcf, 0x83, 0xf8, | |
0x02, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x43, | |
0xd8, 0x45, 0x31, 0xf6, 0x31, 0xed, 0xeb, 0x08, | |
0x49, 0xff, 0xc6, 0x4c, 0x39, 0xf3, 0x74, 0x47, | |
0x4f, 0x8b, 0x2c, 0xf7, 0x85, 0xed, 0x74, 0x10, | |
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0xe8, | |
0xeb, 0x1c, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0xca, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0xc1, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0xb6, 0x4d, 0x89, 0xef, 0xeb, 0x2c, 0x85, | |
0xed, 0x48, 0x8b, 0x5c, 0x24, 0x10, 0x4c, 0x8b, | |
0x74, 0x24, 0x08, 0x4c, 0x8b, 0x2c, 0x24, 0x74, | |
0x48, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01, 0x00, | |
0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7, 0xb8, | |
0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b, 0x40, | |
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xc3, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x0f, 0xb7, 0xc8, 0x0f, 0xb7, 0xc0, 0x48, 0xc1, | |
0xe0, 0x03, 0x48, 0xf7, 0xd8, 0x4d, 0x89, 0x64, | |
0x05, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x29, | |
0xc8, 0x48, 0x98, 0x48, 0x8d, 0x34, 0xc5, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x01, 0xee, 0x48, 0x89, | |
0xdf, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x18, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, | |
}; | |
static const Hole _BUILD_SET_code_holes[9] = { | |
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4}, | |
{0x98, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xb4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xee, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x11c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PySet_New+0x0 | |
// 8: OPARG | |
// 10: &PySet_Add+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: EXECUTOR | |
static const unsigned char _BUILD_SET_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_SET_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_New, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_Add, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_SLICE | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_SLICE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 48 89 14 24 movq %rdx, (%rsp) | |
// 12: 49 89 f7 movq %rsi, %r15 | |
// 15: 48 89 7c 24 08 movq %rdi, 0x8(%rsp) | |
// 1a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x21 <_JIT_ENTRY+0x21> | |
// 000000000000001d: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 21: 66 83 f8 03 cmpw $0x3, %ax | |
// 25: 75 17 jne 0x3e <_JIT_ENTRY+0x3e> | |
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e> | |
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 2e: 31 c9 xorl %ecx, %ecx | |
// 30: 66 83 f8 03 cmpw $0x3, %ax | |
// 34: 0f 95 c1 setne %cl | |
// 37: 4d 8b 64 cf f8 movq -0x8(%r15,%rcx,8), %r12 | |
// 3c: eb 03 jmp 0x41 <_JIT_ENTRY+0x41> | |
// 3e: 45 31 e4 xorl %r12d, %r12d | |
// 41: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x48 <_JIT_ENTRY+0x48> | |
// 0000000000000044: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 48: 31 c9 xorl %ecx, %ecx | |
// 4a: 66 83 f8 03 cmpw $0x3, %ax | |
// 4e: 0f 94 c1 sete %cl | |
// 51: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE | |
// 56: 29 c8 subl %ecx, %eax | |
// 58: f7 d1 notl %ecx | |
// 5a: 48 63 c9 movslq %ecx, %rcx | |
// 5d: 48 89 4c 24 10 movq %rcx, 0x10(%rsp) | |
// 62: 49 8b 2c cf movq (%r15,%rcx,8), %rbp | |
// 66: 48 63 d8 movslq %eax, %rbx | |
// 69: 4d 8b 34 df movq (%r15,%rbx,8), %r14 | |
// 6d: 4c 89 f7 movq %r14, %rdi | |
// 70: 48 89 ee movq %rbp, %rsi | |
// 73: 4c 89 e2 movq %r12, %rdx | |
// 76: ff 15 00 00 00 00 callq *(%rip) # 0x7c <_JIT_ENTRY+0x7c> | |
// 0000000000000078: R_X86_64_GOTPCRELX PySlice_New-0x4 | |
// 7c: 49 89 c5 movq %rax, %r13 | |
// 7f: 49 8b 06 movq (%r14), %rax | |
// 82: 85 c0 testl %eax, %eax | |
// 84: 78 08 js 0x8e <_JIT_ENTRY+0x8e> | |
// 86: 48 ff c8 decq %rax | |
// 89: 49 89 06 movq %rax, (%r14) | |
// 8c: 74 1c je 0xaa <_JIT_ENTRY+0xaa> | |
// 8e: 48 8b 45 00 movq (%rbp), %rax | |
// 92: 85 c0 testl %eax, %eax | |
// 94: 78 25 js 0xbb <_JIT_ENTRY+0xbb> | |
// 96: 48 ff c8 decq %rax | |
// 99: 48 89 45 00 movq %rax, (%rbp) | |
// 9d: 75 1c jne 0xbb <_JIT_ENTRY+0xbb> | |
// 9f: 48 89 ef movq %rbp, %rdi | |
// a2: ff 15 00 00 00 00 callq *(%rip) # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// a8: eb 11 jmp 0xbb <_JIT_ENTRY+0xbb> | |
// aa: 4c 89 f7 movq %r14, %rdi | |
// ad: ff 15 00 00 00 00 callq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3> | |
// 00000000000000af: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// b3: 48 8b 45 00 movq (%rbp), %rax | |
// b7: 85 c0 testl %eax, %eax | |
// b9: 79 db jns 0x96 <_JIT_ENTRY+0x96> | |
// bb: 4d 85 e4 testq %r12, %r12 | |
// be: 74 11 je 0xd1 <_JIT_ENTRY+0xd1> | |
// c0: 49 8b 04 24 movq (%r12), %rax | |
// c4: 85 c0 testl %eax, %eax | |
// c6: 78 09 js 0xd1 <_JIT_ENTRY+0xd1> | |
// c8: 48 ff c8 decq %rax | |
// cb: 49 89 04 24 movq %rax, (%r12) | |
// cf: 74 32 je 0x103 <_JIT_ENTRY+0x103> | |
// d1: 49 8d 04 df leaq (%r15,%rbx,8), %rax | |
// d5: 4d 85 ed testq %r13, %r13 | |
// d8: 74 3b je 0x115 <_JIT_ENTRY+0x115> | |
// da: 48 8b 4c 24 10 movq 0x10(%rsp), %rcx | |
// df: 49 8d 34 cf leaq (%r15,%rcx,8), %rsi | |
// e3: 4c 89 28 movq %r13, (%rax) | |
// e6: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// eb: 48 8b 14 24 movq (%rsp), %rdx | |
// ef: 48 83 c4 18 addq $0x18, %rsp | |
// f3: 5b popq %rbx | |
// f4: 41 5c popq %r12 | |
// f6: 41 5d popq %r13 | |
// f8: 41 5e popq %r14 | |
// fa: 41 5f popq %r15 | |
// fc: 5d popq %rbp | |
// fd: ff 25 00 00 00 00 jmpq *(%rip) # 0x103 <_JIT_ENTRY+0x103> | |
// 00000000000000ff: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 103: 4c 89 e7 movq %r12, %rdi | |
// 106: ff 15 00 00 00 00 callq *(%rip) # 0x10c <_JIT_ENTRY+0x10c> | |
// 0000000000000108: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 10c: 49 8d 04 df leaq (%r15,%rbx,8), %rax | |
// 110: 4d 85 ed testq %r13, %r13 | |
// 113: 75 c5 jne 0xda <_JIT_ENTRY+0xda> | |
// 115: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x11c <_JIT_ENTRY+0x11c> | |
// 0000000000000118: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 11c: 48 8b 14 24 movq (%rsp), %rdx | |
// 120: 48 89 8a 28 01 00 00 movq %rcx, 0x128(%rdx) | |
// 127: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx | |
// 12c: 48 29 c8 subq %rcx, %rax | |
// 12f: 48 83 c0 b8 addq $-0x48, %rax | |
// 133: 48 c1 e8 03 shrq $0x3, %rax | |
// 137: 89 41 40 movl %eax, 0x40(%rcx) | |
// 13a: 31 c0 xorl %eax, %eax | |
// 13c: 48 83 c4 18 addq $0x18, %rsp | |
// 140: 5b popq %rbx | |
// 141: 41 5c popq %r12 | |
// 143: 41 5d popq %r13 | |
// 145: 41 5e popq %r14 | |
// 147: 41 5f popq %r15 | |
// 149: 5d popq %rbp | |
// 14a: c3 retq | |
// 14b: | |
static const unsigned char _BUILD_SLICE_code_body[332] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x48, 0x89, | |
0x14, 0x24, 0x49, 0x89, 0xf7, 0x48, 0x89, 0x7c, | |
0x24, 0x08, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x66, 0x83, 0xf8, 0x03, 0x75, 0x17, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x31, 0xc9, | |
0x66, 0x83, 0xf8, 0x03, 0x0f, 0x95, 0xc1, 0x4d, | |
0x8b, 0x64, 0xcf, 0xf8, 0xeb, 0x03, 0x45, 0x31, | |
0xe4, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x31, 0xc9, 0x66, 0x83, 0xf8, 0x03, 0x0f, 0x94, | |
0xc1, 0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc8, | |
0xf7, 0xd1, 0x48, 0x63, 0xc9, 0x48, 0x89, 0x4c, | |
0x24, 0x10, 0x49, 0x8b, 0x2c, 0xcf, 0x48, 0x63, | |
0xd8, 0x4d, 0x8b, 0x34, 0xdf, 0x4c, 0x89, 0xf7, | |
0x48, 0x89, 0xee, 0x4c, 0x89, 0xe2, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x49, | |
0x8b, 0x06, 0x85, 0xc0, 0x78, 0x08, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x06, 0x74, 0x1c, 0x48, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x45, 0x00, 0x75, 0x1c, 0x48, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x11, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x79, 0xdb, 0x4d, 0x85, 0xe4, 0x74, 0x11, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x09, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x74, | |
0x32, 0x49, 0x8d, 0x04, 0xdf, 0x4d, 0x85, 0xed, | |
0x74, 0x3b, 0x48, 0x8b, 0x4c, 0x24, 0x10, 0x49, | |
0x8d, 0x34, 0xcf, 0x4c, 0x89, 0x28, 0x48, 0x8b, | |
0x7c, 0x24, 0x08, 0x48, 0x8b, 0x14, 0x24, 0x48, | |
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8d, 0x04, 0xdf, | |
0x4d, 0x85, 0xed, 0x75, 0xc5, 0x48, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x14, 0x24, | |
0x48, 0x89, 0x8a, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x8b, 0x4c, 0x24, 0x08, 0x48, 0x29, 0xc8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x41, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x18, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BUILD_SLICE_code_holes[10] = { | |
{0x1d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x44, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x78, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xa4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xff, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x108, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x118, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PySlice_New+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
static const unsigned char _BUILD_SLICE_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_SLICE_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySlice_New, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_STRING | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_STRING.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 48 89 14 24 movq %rdx, (%rsp) | |
// f: 49 89 f7 movq %rsi, %r15 | |
// 12: 48 89 fb movq %rdi, %rbx | |
// 15: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1c: 41 0f b7 d6 movzwl %r14w, %edx | |
// 20: 48 8d 04 d5 00 00 00 00 leaq (,%rdx,8), %rax | |
// 28: 49 89 f4 movq %rsi, %r12 | |
// 2b: 49 29 c4 subq %rax, %r12 | |
// 2e: bf d8 62 00 00 movl $0x62d8, %edi # imm = 0x62D8 | |
// 33: 48 03 3d 00 00 00 00 addq (%rip), %rdi # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_REX_GOTPCRELX _PyRuntime-0x4 | |
// 3a: 4c 89 e6 movq %r12, %rsi | |
// 3d: ff 15 00 00 00 00 callq *(%rip) # 0x43 <_JIT_ENTRY+0x43> | |
// 000000000000003f: R_X86_64_GOTPCRELX _PyUnicode_JoinArray-0x4 | |
// 43: 49 89 c5 movq %rax, %r13 | |
// 46: 41 f7 c6 ff ff 00 00 testl $0xffff, %r14d # imm = 0xFFFF | |
// 4d: 7e 45 jle 0x94 <_JIT_ENTRY+0x94> | |
// 4f: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 56: 48 ff c5 incq %rbp | |
// 59: 4c 8b 35 00 00 00 00 movq (%rip), %r14 # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_REX_GOTPCRELX _Py_Dealloc-0x4 | |
// 60: eb 17 jmp 0x79 <_JIT_ENTRY+0x79> | |
// 62: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 70: 48 ff cd decq %rbp | |
// 73: 48 83 fd 01 cmpq $0x1, %rbp | |
// 77: 7e 1b jle 0x94 <_JIT_ENTRY+0x94> | |
// 79: 8d 45 fe leal -0x2(%rbp), %eax | |
// 7c: 49 8b 3c c4 movq (%r12,%rax,8), %rdi | |
// 80: 48 8b 07 movq (%rdi), %rax | |
// 83: 85 c0 testl %eax, %eax | |
// 85: 78 e9 js 0x70 <_JIT_ENTRY+0x70> | |
// 87: 48 ff c8 decq %rax | |
// 8a: 48 89 07 movq %rax, (%rdi) | |
// 8d: 75 e1 jne 0x70 <_JIT_ENTRY+0x70> | |
// 8f: 41 ff d6 callq *%r14 | |
// 92: eb dc jmp 0x70 <_JIT_ENTRY+0x70> | |
// 94: 4d 85 ed testq %r13, %r13 | |
// 97: 74 40 je 0xd9 <_JIT_ENTRY+0xd9> | |
// 99: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa0 <_JIT_ENTRY+0xa0> | |
// 000000000000009c: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// a0: 0f b7 c8 movzwl %ax, %ecx | |
// a3: 0f b7 c0 movzwl %ax, %eax | |
// a6: 48 c1 e0 03 shlq $0x3, %rax | |
// aa: 48 f7 d8 negq %rax | |
// ad: 4d 89 2c 07 movq %r13, (%r15,%rax) | |
// b1: b8 01 00 00 00 movl $0x1, %eax | |
// b6: 29 c8 subl %ecx, %eax | |
// b8: 48 98 cltq | |
// ba: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi | |
// be: 48 89 df movq %rbx, %rdi | |
// c1: 48 8b 14 24 movq (%rsp), %rdx | |
// c5: 48 83 c4 08 addq $0x8, %rsp | |
// c9: 5b popq %rbx | |
// ca: 41 5c popq %r12 | |
// cc: 41 5d popq %r13 | |
// ce: 41 5e popq %r14 | |
// d0: 41 5f popq %r15 | |
// d2: 5d popq %rbp | |
// d3: ff 25 00 00 00 00 jmpq *(%rip) # 0xd9 <_JIT_ENTRY+0xd9> | |
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// d9: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe0 <_JIT_ENTRY+0xe0> | |
// 00000000000000dc: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// e0: 48 8b 0c 24 movq (%rsp), %rcx | |
// e4: 48 89 81 28 01 00 00 movq %rax, 0x128(%rcx) | |
// eb: 49 29 dc subq %rbx, %r12 | |
// ee: 49 83 c4 b8 addq $-0x48, %r12 | |
// f2: 49 c1 ec 03 shrq $0x3, %r12 | |
// f6: 44 89 63 40 movl %r12d, 0x40(%rbx) | |
// fa: 31 c0 xorl %eax, %eax | |
// fc: 48 83 c4 08 addq $0x8, %rsp | |
// 100: 5b popq %rbx | |
// 101: 41 5c popq %r12 | |
// 103: 41 5d popq %r13 | |
// 105: 41 5e popq %r14 | |
// 107: 41 5f popq %r15 | |
// 109: 5d popq %rbp | |
// 10a: c3 retq | |
// 10b: | |
static const unsigned char _BUILD_STRING_code_body[268] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x48, 0x89, 0x14, 0x24, 0x49, | |
0x89, 0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x41, 0x0f, 0xb7, 0xd6, | |
0x48, 0x8d, 0x04, 0xd5, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xf4, 0x49, 0x29, 0xc4, 0xbf, 0xd8, | |
0x62, 0x00, 0x00, 0x48, 0x03, 0x3d, 0x00, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, 0x41, 0xf7, | |
0xc6, 0xff, 0xff, 0x00, 0x00, 0x7e, 0x45, 0x0f, | |
0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xff, | |
0xc5, 0x4c, 0x8b, 0x35, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x17, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xff, 0xcd, 0x48, 0x83, 0xfd, 0x01, 0x7e, | |
0x1b, 0x8d, 0x45, 0xfe, 0x49, 0x8b, 0x3c, 0xc4, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0x41, | |
0xff, 0xd6, 0xeb, 0xdc, 0x4d, 0x85, 0xed, 0x74, | |
0x40, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x0f, 0xb7, 0xc8, 0x0f, 0xb7, 0xc0, 0x48, 0xc1, | |
0xe0, 0x03, 0x48, 0xf7, 0xd8, 0x4d, 0x89, 0x2c, | |
0x07, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x29, 0xc8, | |
0x48, 0x98, 0x49, 0x8d, 0x34, 0xc7, 0x48, 0x89, | |
0xdf, 0x48, 0x8b, 0x14, 0x24, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x0c, 0x24, 0x48, 0x89, 0x81, 0x28, | |
0x01, 0x00, 0x00, 0x49, 0x29, 0xdc, 0x49, 0x83, | |
0xc4, 0xb8, 0x49, 0xc1, 0xec, 0x03, 0x44, 0x89, | |
0x63, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _BUILD_STRING_code_holes[9] = { | |
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x36, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x52, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x9c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xd5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xdc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyRuntime+0x0 | |
// 10: &_PyUnicode_JoinArray+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: CONTINUE | |
// 28: EXECUTOR | |
static const unsigned char _BUILD_STRING_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_STRING_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyRuntime, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_JoinArray, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _BUILD_TUPLE | |
// | |
// /tmp/tmp2mfmnab2/_BUILD_TUPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d6 movq %rdx, %r14 | |
// b: 49 89 f7 movq %rsi, %r15 | |
// e: 48 89 fb movq %rdi, %rbx | |
// 11: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 18: 48 8d 04 f5 00 00 00 00 leaq (,%rsi,8), %rax | |
// 20: 4d 89 fc movq %r15, %r12 | |
// 23: 49 29 c4 subq %rax, %r12 | |
// 26: 4c 89 e7 movq %r12, %rdi | |
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f> | |
// 000000000000002b: R_X86_64_GOTPCRELX _PyTuple_FromArraySteal-0x4 | |
// 2f: 48 85 c0 testq %rax, %rax | |
// 32: 74 3c je 0x70 <_JIT_ENTRY+0x70> | |
// 34: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 3b: 0f b7 d1 movzwl %cx, %edx | |
// 3e: 0f b7 c9 movzwl %cx, %ecx | |
// 41: 48 c1 e1 03 shlq $0x3, %rcx | |
// 45: 48 f7 d9 negq %rcx | |
// 48: 49 89 04 0f movq %rax, (%r15,%rcx) | |
// 4c: b8 01 00 00 00 movl $0x1, %eax | |
// 51: 29 d0 subl %edx, %eax | |
// 53: 48 98 cltq | |
// 55: 49 8d 34 c7 leaq (%r15,%rax,8), %rsi | |
// 59: 48 89 df movq %rbx, %rdi | |
// 5c: 4c 89 f2 movq %r14, %rdx | |
// 5f: 48 83 c4 08 addq $0x8, %rsp | |
// 63: 5b popq %rbx | |
// 64: 41 5c popq %r12 | |
// 66: 41 5e popq %r14 | |
// 68: 41 5f popq %r15 | |
// 6a: ff 25 00 00 00 00 jmpq *(%rip) # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 77: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 7e: 49 29 dc subq %rbx, %r12 | |
// 81: 49 83 c4 b8 addq $-0x48, %r12 | |
// 85: 49 c1 ec 03 shrq $0x3, %r12 | |
// 89: 44 89 63 40 movl %r12d, 0x40(%rbx) | |
// 8d: 31 c0 xorl %eax, %eax | |
// 8f: 48 83 c4 08 addq $0x8, %rsp | |
// 93: 5b popq %rbx | |
// 94: 41 5c popq %r12 | |
// 96: 41 5e popq %r14 | |
// 98: 41 5f popq %r15 | |
// 9a: c3 retq | |
// 9b: | |
static const unsigned char _BUILD_TUPLE_code_body[156] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd6, 0x49, 0x89, 0xf7, 0x48, 0x89, | |
0xfb, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x89, 0xfc, 0x49, 0x29, 0xc4, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x85, 0xc0, 0x74, 0x3c, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xd1, 0x0f, 0xb7, | |
0xc9, 0x48, 0xc1, 0xe1, 0x03, 0x48, 0xf7, 0xd9, | |
0x49, 0x89, 0x04, 0x0f, 0xb8, 0x01, 0x00, 0x00, | |
0x00, 0x29, 0xd0, 0x48, 0x98, 0x49, 0x8d, 0x34, | |
0xc7, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf2, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x86, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, | |
0xdc, 0x49, 0x83, 0xc4, 0xb8, 0x49, 0xc1, 0xec, | |
0x03, 0x44, 0x89, 0x63, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _BUILD_TUPLE_code_holes[6] = { | |
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyTuple_FromArraySteal+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _BUILD_TUPLE_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _BUILD_TUPLE_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyTuple_FromArraySteal, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _CALL_BUILTIN_CLASS | |
// | |
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_CLASS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 28 subq $0x28, %rsp | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 18: 44 0f b7 c9 movzwl %cx, %r9d | |
// 1c: 44 89 c8 movl %r9d, %eax | |
// 1f: f7 d0 notl %eax | |
// 21: 4c 63 d0 movslq %eax, %r10 | |
// 24: 4a 8b 04 d6 movq (%rsi,%r10,8), %rax | |
// 28: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE | |
// 2d: 44 29 ce subl %r9d, %esi | |
// 30: 45 8d 69 01 leal 0x1(%r9), %r13d | |
// 34: 0f b7 c9 movzwl %cx, %ecx | |
// 37: 49 89 c8 movq %rcx, %r8 | |
// 3a: 49 f7 d8 negq %r8 | |
// 3d: 48 85 c0 testq %rax, %rax | |
// 40: 45 0f 44 e9 cmovel %r9d, %r13d | |
// 44: 4c 63 f6 movslq %esi, %r14 | |
// 47: 48 f7 d1 notq %rcx | |
// 4a: 49 0f 44 c8 cmoveq %r8, %rcx | |
// 4e: 4f 8b 24 f7 movq (%r15,%r14,8), %r12 | |
// 52: 49 8b 74 24 08 movq 0x8(%r12), %rsi | |
// 57: f6 86 ab 00 00 00 80 testb $-0x80, 0xab(%rsi) | |
// 5e: 0f 84 d0 00 00 00 je 0x134 <_JIT_ENTRY+0x134> | |
// 64: 4d 8b 84 24 90 01 00 00 movq 0x190(%r12), %r8 | |
// 6c: 4d 85 c0 testq %r8, %r8 | |
// 6f: 0f 84 bf 00 00 00 je 0x134 <_JIT_ENTRY+0x134> | |
// 75: 4c 89 54 24 08 movq %r10, 0x8(%rsp) | |
// 7a: 48 89 54 24 18 movq %rdx, 0x18(%rsp) | |
// 7f: 48 89 7c 24 20 movq %rdi, 0x20(%rsp) | |
// 84: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp | |
// 88: 48 85 c0 testq %rax, %rax | |
// 8b: 0f 94 c3 sete %bl | |
// 8e: 44 89 ea movl %r13d, %edx | |
// 91: 4c 89 e7 movq %r12, %rdi | |
// 94: 48 89 ee movq %rbp, %rsi | |
// 97: 31 c9 xorl %ecx, %ecx | |
// 99: 41 ff d0 callq *%r8 | |
// 9c: 48 89 44 24 10 movq %rax, 0x10(%rsp) | |
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// a8: 66 85 c0 testw %ax, %ax | |
// ab: 0f 94 c0 sete %al | |
// ae: 84 c3 testb %al, %bl | |
// b0: 0f 84 bd 00 00 00 je 0x173 <_JIT_ENTRY+0x173> | |
// b6: 49 8b 04 24 movq (%r12), %rax | |
// ba: 85 c0 testl %eax, %eax | |
// bc: 78 12 js 0xd0 <_JIT_ENTRY+0xd0> | |
// be: 48 ff c8 decq %rax | |
// c1: 49 89 04 24 movq %rax, (%r12) | |
// c5: 75 09 jne 0xd0 <_JIT_ENTRY+0xd0> | |
// c7: 4c 89 e7 movq %r12, %rdi | |
// ca: ff 15 00 00 00 00 callq *(%rip) # 0xd0 <_JIT_ENTRY+0xd0> | |
// 00000000000000cc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// d0: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax | |
// d4: 48 8b 54 24 10 movq 0x10(%rsp), %rdx | |
// d9: 48 85 d2 testq %rdx, %rdx | |
// dc: 48 8b 5c 24 20 movq 0x20(%rsp), %rbx | |
// e1: 4c 8b 74 24 18 movq 0x18(%rsp), %r14 | |
// e6: 74 2c je 0x114 <_JIT_ENTRY+0x114> | |
// e8: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx | |
// ed: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15 | |
// f1: 48 89 10 movq %rdx, (%rax) | |
// f4: 49 8b 46 18 movq 0x18(%r14), %rax | |
// f8: 84 c0 testb %al, %al | |
// fa: 0f 84 b8 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 100: 4c 89 f7 movq %r14, %rdi | |
// 103: ff 15 00 00 00 00 callq *(%rip) # 0x109 <_JIT_ENTRY+0x109> | |
// 0000000000000105: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 109: 85 c0 testl %eax, %eax | |
// 10b: 0f 84 a7 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 111: 4c 89 f8 movq %r15, %rax | |
// 114: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x11b <_JIT_ENTRY+0x11b> | |
// 0000000000000117: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 11b: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 122: 48 29 d8 subq %rbx, %rax | |
// 125: 48 83 c0 b8 addq $-0x48, %rax | |
// 129: 48 c1 e8 03 shrq $0x3, %rax | |
// 12d: 89 43 40 movl %eax, 0x40(%rbx) | |
// 130: 31 c0 xorl %eax, %eax | |
// 132: eb 30 jmp 0x164 <_JIT_ENTRY+0x164> | |
// 134: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x13b <_JIT_ENTRY+0x13b> | |
// 0000000000000137: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 13b: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 142: 49 29 ff subq %rdi, %r15 | |
// 145: 49 83 c7 b8 addq $-0x48, %r15 | |
// 149: 49 c1 ef 03 shrq $0x3, %r15 | |
// 14d: 44 89 7f 40 movl %r15d, 0x40(%rdi) | |
// 151: 48 8b 07 movq (%rdi), %rax | |
// 154: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x15a <_JIT_ENTRY+0x15a> | |
// 0000000000000156: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 15a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 15e: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 164: 48 83 c4 28 addq $0x28, %rsp | |
// 168: 5b popq %rbx | |
// 169: 41 5c popq %r12 | |
// 16b: 41 5d popq %r13 | |
// 16d: 41 5e popq %r14 | |
// 16f: 41 5f popq %r15 | |
// 171: 5d popq %rbp | |
// 172: c3 retq | |
// 173: 41 83 fd 02 cmpl $0x2, %r13d | |
// 177: bb 01 00 00 00 movl $0x1, %ebx | |
// 17c: 41 0f 43 dd cmovael %r13d, %ebx | |
// 180: 45 31 ed xorl %r13d, %r13d | |
// 183: eb 17 jmp 0x19c <_JIT_ENTRY+0x19c> | |
// 185: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 190: 49 ff c5 incq %r13 | |
// 193: 4c 39 eb cmpq %r13, %rbx | |
// 196: 0f 84 1a ff ff ff je 0xb6 <_JIT_ENTRY+0xb6> | |
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi | |
// 1a1: 48 8b 07 movq (%rdi), %rax | |
// 1a4: 85 c0 testl %eax, %eax | |
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190> | |
// 1a8: 48 ff c8 decq %rax | |
// 1ab: 48 89 07 movq %rax, (%rdi) | |
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190> | |
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6> | |
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 1b8: 48 89 df movq %rbx, %rdi | |
// 1bb: 4c 89 fe movq %r15, %rsi | |
// 1be: 4c 89 f2 movq %r14, %rdx | |
// 1c1: 48 83 c4 28 addq $0x28, %rsp | |
// 1c5: 5b popq %rbx | |
// 1c6: 41 5c popq %r12 | |
// 1c8: 41 5d popq %r13 | |
// 1ca: 41 5e popq %r14 | |
// 1cc: 41 5f popq %r15 | |
// 1ce: 5d popq %rbp | |
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5> | |
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1cf: | |
static const unsigned char _CALL_BUILTIN_CLASS_code_body[464] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89, | |
0xf7, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x44, 0x0f, 0xb7, 0xc9, 0x44, 0x89, 0xc8, 0xf7, | |
0xd0, 0x4c, 0x63, 0xd0, 0x4a, 0x8b, 0x04, 0xd6, | |
0xbe, 0xfe, 0xff, 0xff, 0xff, 0x44, 0x29, 0xce, | |
0x45, 0x8d, 0x69, 0x01, 0x0f, 0xb7, 0xc9, 0x49, | |
0x89, 0xc8, 0x49, 0xf7, 0xd8, 0x48, 0x85, 0xc0, | |
0x45, 0x0f, 0x44, 0xe9, 0x4c, 0x63, 0xf6, 0x48, | |
0xf7, 0xd1, 0x49, 0x0f, 0x44, 0xc8, 0x4f, 0x8b, | |
0x24, 0xf7, 0x49, 0x8b, 0x74, 0x24, 0x08, 0xf6, | |
0x86, 0xab, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x84, | |
0xd0, 0x00, 0x00, 0x00, 0x4d, 0x8b, 0x84, 0x24, | |
0x90, 0x01, 0x00, 0x00, 0x4d, 0x85, 0xc0, 0x0f, | |
0x84, 0xbf, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x54, | |
0x24, 0x08, 0x48, 0x89, 0x54, 0x24, 0x18, 0x48, | |
0x89, 0x7c, 0x24, 0x20, 0x49, 0x8d, 0x2c, 0xcf, | |
0x48, 0x85, 0xc0, 0x0f, 0x94, 0xc3, 0x44, 0x89, | |
0xea, 0x4c, 0x89, 0xe7, 0x48, 0x89, 0xee, 0x31, | |
0xc9, 0x41, 0xff, 0xd0, 0x48, 0x89, 0x44, 0x24, | |
0x10, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x84, 0xc3, | |
0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24, | |
0x10, 0x48, 0x85, 0xd2, 0x48, 0x8b, 0x5c, 0x24, | |
0x20, 0x4c, 0x8b, 0x74, 0x24, 0x18, 0x74, 0x2c, | |
0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d, 0x8d, 0x3c, | |
0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b, 0x46, 0x18, | |
0x84, 0xc0, 0x0f, 0x84, 0xb8, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x85, 0xc0, 0x0f, 0x84, 0xa7, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, | |
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, | |
0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xff, 0x49, 0x83, 0xc7, | |
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7f, | |
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x28, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd, 0x02, 0xbb, | |
0x01, 0x00, 0x00, 0x00, 0x41, 0x0f, 0x43, 0xdd, | |
0x45, 0x31, 0xed, 0xeb, 0x17, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0xff, 0xc5, 0x4c, 0x39, 0xeb, 0x0f, 0x84, | |
0x1a, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed, | |
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, | |
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_BUILTIN_CLASS_code_holes[9] = { | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xcc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x105, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x117, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x137, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x156, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_Py_Dealloc+0x0 | |
// 10: &_Py_HandlePending+0x0 | |
// 18: EXECUTOR | |
// 20: TARGET | |
static const unsigned char _CALL_BUILTIN_CLASS_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_BUILTIN_CLASS_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CALL_BUILTIN_FAST | |
// | |
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_FAST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 28 subq $0x28, %rsp | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1b: 44 0f b7 c1 movzwl %cx, %r8d | |
// 1f: 44 89 c0 movl %r8d, %eax | |
// 22: f7 d0 notl %eax | |
// 24: 4c 63 c8 movslq %eax, %r9 | |
// 27: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 2b: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE | |
// 30: 44 29 c6 subl %r8d, %esi | |
// 33: 45 8d 68 01 leal 0x1(%r8), %r13d | |
// 37: 0f b7 c9 movzwl %cx, %ecx | |
// 3a: 48 89 cf movq %rcx, %rdi | |
// 3d: 48 f7 df negq %rdi | |
// 40: 48 85 c0 testq %rax, %rax | |
// 43: 45 0f 44 e8 cmovel %r8d, %r13d | |
// 47: 4c 63 d6 movslq %esi, %r10 | |
// 4a: 48 f7 d1 notq %rcx | |
// 4d: 48 0f 44 cf cmoveq %rdi, %rcx | |
// 51: 4f 8b 24 d7 movq (%r15,%r10,8), %r12 | |
// 55: 49 8b 74 24 08 movq 0x8(%r12), %rsi | |
// 5a: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4 | |
// 61: 0f 85 d5 00 00 00 jne 0x13c <_JIT_ENTRY+0x13c> | |
// 67: 4d 8b 44 24 10 movq 0x10(%r12), %r8 | |
// 6c: 41 81 78 10 80 00 00 00 cmpl $0x80, 0x10(%r8) | |
// 74: 0f 85 c2 00 00 00 jne 0x13c <_JIT_ENTRY+0x13c> | |
// 7a: 4c 89 54 24 18 movq %r10, 0x18(%rsp) | |
// 7f: 4c 89 4c 24 08 movq %r9, 0x8(%rsp) | |
// 84: 48 89 54 24 20 movq %rdx, 0x20(%rsp) | |
// 89: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp | |
// 8d: 48 85 c0 testq %rax, %rax | |
// 90: 41 0f 94 c6 sete %r14b | |
// 94: 49 8b 7c 24 18 movq 0x18(%r12), %rdi | |
// 99: 44 89 ea movl %r13d, %edx | |
// 9c: 48 89 ee movq %rbp, %rsi | |
// 9f: 41 ff 50 08 callq *0x8(%r8) | |
// a3: 48 89 44 24 10 movq %rax, 0x10(%rsp) | |
// a8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xaf <_JIT_ENTRY+0xaf> | |
// 00000000000000ab: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// af: 66 85 c0 testw %ax, %ax | |
// b2: 0f 94 c0 sete %al | |
// b5: 41 84 c6 testb %al, %r14b | |
// b8: 0f 84 bd 00 00 00 je 0x17b <_JIT_ENTRY+0x17b> | |
// be: 49 8b 04 24 movq (%r12), %rax | |
// c2: 85 c0 testl %eax, %eax | |
// c4: 4c 8b 74 24 18 movq 0x18(%rsp), %r14 | |
// c9: 78 12 js 0xdd <_JIT_ENTRY+0xdd> | |
// cb: 48 ff c8 decq %rax | |
// ce: 49 89 04 24 movq %rax, (%r12) | |
// d2: 75 09 jne 0xdd <_JIT_ENTRY+0xdd> | |
// d4: 4c 89 e7 movq %r12, %rdi | |
// d7: ff 15 00 00 00 00 callq *(%rip) # 0xdd <_JIT_ENTRY+0xdd> | |
// 00000000000000d9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// dd: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax | |
// e1: 48 8b 54 24 10 movq 0x10(%rsp), %rdx | |
// e6: 48 85 d2 testq %rdx, %rdx | |
// e9: 4c 8b 74 24 20 movq 0x20(%rsp), %r14 | |
// ee: 74 2c je 0x11c <_JIT_ENTRY+0x11c> | |
// f0: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx | |
// f5: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15 | |
// f9: 48 89 10 movq %rdx, (%rax) | |
// fc: 49 8b 46 18 movq 0x18(%r14), %rax | |
// 100: 84 c0 testb %al, %al | |
// 102: 0f 84 b0 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 108: 4c 89 f7 movq %r14, %rdi | |
// 10b: ff 15 00 00 00 00 callq *(%rip) # 0x111 <_JIT_ENTRY+0x111> | |
// 000000000000010d: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 111: 85 c0 testl %eax, %eax | |
// 113: 0f 84 9f 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 119: 4c 89 f8 movq %r15, %rax | |
// 11c: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x123 <_JIT_ENTRY+0x123> | |
// 000000000000011f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 123: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 12a: 48 29 d8 subq %rbx, %rax | |
// 12d: 48 83 c0 b8 addq $-0x48, %rax | |
// 131: 48 c1 e8 03 shrq $0x3, %rax | |
// 135: 89 43 40 movl %eax, 0x40(%rbx) | |
// 138: 31 c0 xorl %eax, %eax | |
// 13a: eb 30 jmp 0x16c <_JIT_ENTRY+0x16c> | |
// 13c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x143 <_JIT_ENTRY+0x143> | |
// 000000000000013f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 143: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 14a: 49 29 df subq %rbx, %r15 | |
// 14d: 49 83 c7 b8 addq $-0x48, %r15 | |
// 151: 49 c1 ef 03 shrq $0x3, %r15 | |
// 155: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 159: 48 8b 03 movq (%rbx), %rax | |
// 15c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x162 <_JIT_ENTRY+0x162> | |
// 000000000000015e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 162: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 166: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 16c: 48 83 c4 28 addq $0x28, %rsp | |
// 170: 5b popq %rbx | |
// 171: 41 5c popq %r12 | |
// 173: 41 5d popq %r13 | |
// 175: 41 5e popq %r14 | |
// 177: 41 5f popq %r15 | |
// 179: 5d popq %rbp | |
// 17a: c3 retq | |
// 17b: 41 83 fd 02 cmpl $0x2, %r13d | |
// 17f: 41 be 01 00 00 00 movl $0x1, %r14d | |
// 185: 45 0f 43 f5 cmovael %r13d, %r14d | |
// 189: 45 31 ed xorl %r13d, %r13d | |
// 18c: eb 0e jmp 0x19c <_JIT_ENTRY+0x19c> | |
// 18e: 66 90 nop | |
// 190: 49 ff c5 incq %r13 | |
// 193: 4d 39 ee cmpq %r13, %r14 | |
// 196: 0f 84 22 ff ff ff je 0xbe <_JIT_ENTRY+0xbe> | |
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi | |
// 1a1: 48 8b 07 movq (%rdi), %rax | |
// 1a4: 85 c0 testl %eax, %eax | |
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190> | |
// 1a8: 48 ff c8 decq %rax | |
// 1ab: 48 89 07 movq %rax, (%rdi) | |
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190> | |
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6> | |
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 1b8: 48 89 df movq %rbx, %rdi | |
// 1bb: 4c 89 fe movq %r15, %rsi | |
// 1be: 4c 89 f2 movq %r14, %rdx | |
// 1c1: 48 83 c4 28 addq $0x28, %rsp | |
// 1c5: 5b popq %rbx | |
// 1c6: 41 5c popq %r12 | |
// 1c8: 41 5d popq %r13 | |
// 1ca: 41 5e popq %r14 | |
// 1cc: 41 5f popq %r15 | |
// 1ce: 5d popq %rbp | |
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5> | |
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1cf: | |
static const unsigned char _CALL_BUILTIN_FAST_code_body[464] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0xc1, 0x44, | |
0x89, 0xc0, 0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, | |
0x8b, 0x04, 0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, | |
0x44, 0x29, 0xc6, 0x45, 0x8d, 0x68, 0x01, 0x0f, | |
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf, | |
0x48, 0x85, 0xc0, 0x45, 0x0f, 0x44, 0xe8, 0x4c, | |
0x63, 0xd6, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, | |
0xcf, 0x4f, 0x8b, 0x24, 0xd7, 0x49, 0x8b, 0x74, | |
0x24, 0x08, 0x48, 0x3b, 0x35, 0x00, 0x00, 0x00, | |
0x00, 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, 0x4d, | |
0x8b, 0x44, 0x24, 0x10, 0x41, 0x81, 0x78, 0x10, | |
0x80, 0x00, 0x00, 0x00, 0x0f, 0x85, 0xc2, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0x54, 0x24, 0x18, 0x4c, | |
0x89, 0x4c, 0x24, 0x08, 0x48, 0x89, 0x54, 0x24, | |
0x20, 0x49, 0x8d, 0x2c, 0xcf, 0x48, 0x85, 0xc0, | |
0x41, 0x0f, 0x94, 0xc6, 0x49, 0x8b, 0x7c, 0x24, | |
0x18, 0x44, 0x89, 0xea, 0x48, 0x89, 0xee, 0x41, | |
0xff, 0x50, 0x08, 0x48, 0x89, 0x44, 0x24, 0x10, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66, | |
0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84, 0xc6, | |
0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x4c, 0x8b, 0x74, 0x24, | |
0x18, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x8d, 0x04, | |
0xf7, 0x48, 0x8b, 0x54, 0x24, 0x10, 0x48, 0x85, | |
0xd2, 0x4c, 0x8b, 0x74, 0x24, 0x20, 0x74, 0x2c, | |
0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d, 0x8d, 0x3c, | |
0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b, 0x46, 0x18, | |
0x84, 0xc0, 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x85, 0xc0, 0x0f, 0x84, 0x9f, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, | |
0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, | |
0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7, | |
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b, | |
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x28, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd, 0x02, 0x41, | |
0xbe, 0x01, 0x00, 0x00, 0x00, 0x45, 0x0f, 0x43, | |
0xf5, 0x45, 0x31, 0xed, 0xeb, 0x0e, 0x66, 0x90, | |
0x49, 0xff, 0xc5, 0x4d, 0x39, 0xee, 0x0f, 0x84, | |
0x22, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed, | |
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, | |
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_BUILTIN_FAST_code_holes[10] = { | |
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x5d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xab, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xd9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x10d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x11f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x13f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x15e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyCFunction_Type+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: &_Py_HandlePending+0x0 | |
// 20: EXECUTOR | |
// 28: TARGET | |
static const unsigned char _CALL_BUILTIN_FAST_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_BUILTIN_FAST_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CALL_BUILTIN_FAST_WITH_KEYWORDS | |
// | |
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_FAST_WITH_KEYWORDS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 28 subq $0x28, %rsp | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1b: 44 0f b7 c1 movzwl %cx, %r8d | |
// 1f: 44 89 c0 movl %r8d, %eax | |
// 22: f7 d0 notl %eax | |
// 24: 4c 63 c8 movslq %eax, %r9 | |
// 27: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 2b: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE | |
// 30: 44 29 c6 subl %r8d, %esi | |
// 33: 45 8d 68 01 leal 0x1(%r8), %r13d | |
// 37: 0f b7 c9 movzwl %cx, %ecx | |
// 3a: 48 89 cf movq %rcx, %rdi | |
// 3d: 48 f7 df negq %rdi | |
// 40: 48 85 c0 testq %rax, %rax | |
// 43: 45 0f 44 e8 cmovel %r8d, %r13d | |
// 47: 4c 63 d6 movslq %esi, %r10 | |
// 4a: 48 f7 d1 notq %rcx | |
// 4d: 48 0f 44 cf cmoveq %rdi, %rcx | |
// 51: 4f 8b 24 d7 movq (%r15,%r10,8), %r12 | |
// 55: 49 8b 74 24 08 movq 0x8(%r12), %rsi | |
// 5a: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4 | |
// 61: 0f 85 d7 00 00 00 jne 0x13e <_JIT_ENTRY+0x13e> | |
// 67: 4d 8b 44 24 10 movq 0x10(%r12), %r8 | |
// 6c: 41 81 78 10 82 00 00 00 cmpl $0x82, 0x10(%r8) | |
// 74: 0f 85 c4 00 00 00 jne 0x13e <_JIT_ENTRY+0x13e> | |
// 7a: 4c 89 54 24 18 movq %r10, 0x18(%rsp) | |
// 7f: 4c 89 4c 24 08 movq %r9, 0x8(%rsp) | |
// 84: 48 89 54 24 20 movq %rdx, 0x20(%rsp) | |
// 89: 49 8d 2c cf leaq (%r15,%rcx,8), %rbp | |
// 8d: 48 85 c0 testq %rax, %rax | |
// 90: 41 0f 94 c6 sete %r14b | |
// 94: 49 8b 7c 24 18 movq 0x18(%r12), %rdi | |
// 99: 44 89 ea movl %r13d, %edx | |
// 9c: 48 89 ee movq %rbp, %rsi | |
// 9f: 31 c9 xorl %ecx, %ecx | |
// a1: 41 ff 50 08 callq *0x8(%r8) | |
// a5: 48 89 44 24 10 movq %rax, 0x10(%rsp) | |
// aa: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb1 <_JIT_ENTRY+0xb1> | |
// 00000000000000ad: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// b1: 66 85 c0 testw %ax, %ax | |
// b4: 0f 94 c0 sete %al | |
// b7: 41 84 c6 testb %al, %r14b | |
// ba: 0f 84 bd 00 00 00 je 0x17d <_JIT_ENTRY+0x17d> | |
// c0: 49 8b 04 24 movq (%r12), %rax | |
// c4: 85 c0 testl %eax, %eax | |
// c6: 4c 8b 74 24 18 movq 0x18(%rsp), %r14 | |
// cb: 78 12 js 0xdf <_JIT_ENTRY+0xdf> | |
// cd: 48 ff c8 decq %rax | |
// d0: 49 89 04 24 movq %rax, (%r12) | |
// d4: 75 09 jne 0xdf <_JIT_ENTRY+0xdf> | |
// d6: 4c 89 e7 movq %r12, %rdi | |
// d9: ff 15 00 00 00 00 callq *(%rip) # 0xdf <_JIT_ENTRY+0xdf> | |
// 00000000000000db: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// df: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax | |
// e3: 48 8b 54 24 10 movq 0x10(%rsp), %rdx | |
// e8: 48 85 d2 testq %rdx, %rdx | |
// eb: 4c 8b 74 24 20 movq 0x20(%rsp), %r14 | |
// f0: 74 2c je 0x11e <_JIT_ENTRY+0x11e> | |
// f2: 48 8b 4c 24 08 movq 0x8(%rsp), %rcx | |
// f7: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15 | |
// fb: 48 89 10 movq %rdx, (%rax) | |
// fe: 49 8b 46 18 movq 0x18(%r14), %rax | |
// 102: 84 c0 testb %al, %al | |
// 104: 0f 84 ae 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 10a: 4c 89 f7 movq %r14, %rdi | |
// 10d: ff 15 00 00 00 00 callq *(%rip) # 0x113 <_JIT_ENTRY+0x113> | |
// 000000000000010f: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 113: 85 c0 testl %eax, %eax | |
// 115: 0f 84 9d 00 00 00 je 0x1b8 <_JIT_ENTRY+0x1b8> | |
// 11b: 4c 89 f8 movq %r15, %rax | |
// 11e: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x125 <_JIT_ENTRY+0x125> | |
// 0000000000000121: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 125: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 12c: 48 29 d8 subq %rbx, %rax | |
// 12f: 48 83 c0 b8 addq $-0x48, %rax | |
// 133: 48 c1 e8 03 shrq $0x3, %rax | |
// 137: 89 43 40 movl %eax, 0x40(%rbx) | |
// 13a: 31 c0 xorl %eax, %eax | |
// 13c: eb 30 jmp 0x16e <_JIT_ENTRY+0x16e> | |
// 13e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x145 <_JIT_ENTRY+0x145> | |
// 0000000000000141: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 145: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 14c: 49 29 df subq %rbx, %r15 | |
// 14f: 49 83 c7 b8 addq $-0x48, %r15 | |
// 153: 49 c1 ef 03 shrq $0x3, %r15 | |
// 157: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 15b: 48 8b 03 movq (%rbx), %rax | |
// 15e: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x164 <_JIT_ENTRY+0x164> | |
// 0000000000000160: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 164: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 168: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 16e: 48 83 c4 28 addq $0x28, %rsp | |
// 172: 5b popq %rbx | |
// 173: 41 5c popq %r12 | |
// 175: 41 5d popq %r13 | |
// 177: 41 5e popq %r14 | |
// 179: 41 5f popq %r15 | |
// 17b: 5d popq %rbp | |
// 17c: c3 retq | |
// 17d: 41 83 fd 02 cmpl $0x2, %r13d | |
// 181: 41 be 01 00 00 00 movl $0x1, %r14d | |
// 187: 45 0f 43 f5 cmovael %r13d, %r14d | |
// 18b: 45 31 ed xorl %r13d, %r13d | |
// 18e: eb 0c jmp 0x19c <_JIT_ENTRY+0x19c> | |
// 190: 49 ff c5 incq %r13 | |
// 193: 4d 39 ee cmpq %r13, %r14 | |
// 196: 0f 84 24 ff ff ff je 0xc0 <_JIT_ENTRY+0xc0> | |
// 19c: 4a 8b 7c ed 00 movq (%rbp,%r13,8), %rdi | |
// 1a1: 48 8b 07 movq (%rdi), %rax | |
// 1a4: 85 c0 testl %eax, %eax | |
// 1a6: 78 e8 js 0x190 <_JIT_ENTRY+0x190> | |
// 1a8: 48 ff c8 decq %rax | |
// 1ab: 48 89 07 movq %rax, (%rdi) | |
// 1ae: 75 e0 jne 0x190 <_JIT_ENTRY+0x190> | |
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6> | |
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 1b6: eb d8 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 1b8: 48 89 df movq %rbx, %rdi | |
// 1bb: 4c 89 fe movq %r15, %rsi | |
// 1be: 4c 89 f2 movq %r14, %rdx | |
// 1c1: 48 83 c4 28 addq $0x28, %rsp | |
// 1c5: 5b popq %rbx | |
// 1c6: 41 5c popq %r12 | |
// 1c8: 41 5d popq %r13 | |
// 1ca: 41 5e popq %r14 | |
// 1cc: 41 5f popq %r15 | |
// 1ce: 5d popq %rbp | |
// 1cf: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d5 <_JIT_ENTRY+0x1d5> | |
// 00000000000001d1: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1cf: | |
static const unsigned char _CALL_BUILTIN_FAST_WITH_KEYWORDS_code_body[464] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x44, 0x0f, 0xb7, 0xc1, 0x44, | |
0x89, 0xc0, 0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, | |
0x8b, 0x04, 0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, | |
0x44, 0x29, 0xc6, 0x45, 0x8d, 0x68, 0x01, 0x0f, | |
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf, | |
0x48, 0x85, 0xc0, 0x45, 0x0f, 0x44, 0xe8, 0x4c, | |
0x63, 0xd6, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, | |
0xcf, 0x4f, 0x8b, 0x24, 0xd7, 0x49, 0x8b, 0x74, | |
0x24, 0x08, 0x48, 0x3b, 0x35, 0x00, 0x00, 0x00, | |
0x00, 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, 0x4d, | |
0x8b, 0x44, 0x24, 0x10, 0x41, 0x81, 0x78, 0x10, | |
0x82, 0x00, 0x00, 0x00, 0x0f, 0x85, 0xc4, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0x54, 0x24, 0x18, 0x4c, | |
0x89, 0x4c, 0x24, 0x08, 0x48, 0x89, 0x54, 0x24, | |
0x20, 0x49, 0x8d, 0x2c, 0xcf, 0x48, 0x85, 0xc0, | |
0x41, 0x0f, 0x94, 0xc6, 0x49, 0x8b, 0x7c, 0x24, | |
0x18, 0x44, 0x89, 0xea, 0x48, 0x89, 0xee, 0x31, | |
0xc9, 0x41, 0xff, 0x50, 0x08, 0x48, 0x89, 0x44, | |
0x24, 0x10, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41, | |
0x84, 0xc6, 0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x4c, 0x8b, | |
0x74, 0x24, 0x18, 0x78, 0x12, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4b, | |
0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24, 0x10, | |
0x48, 0x85, 0xd2, 0x4c, 0x8b, 0x74, 0x24, 0x20, | |
0x74, 0x2c, 0x48, 0x8b, 0x4c, 0x24, 0x08, 0x4d, | |
0x8d, 0x3c, 0xcf, 0x48, 0x89, 0x10, 0x49, 0x8b, | |
0x46, 0x18, 0x84, 0xc0, 0x0f, 0x84, 0xae, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x84, 0x9d, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xf8, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0xeb, 0x30, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, | |
0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, | |
0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x41, 0x83, 0xfd, | |
0x02, 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, 0x45, | |
0x0f, 0x43, 0xf5, 0x45, 0x31, 0xed, 0xeb, 0x0c, | |
0x49, 0xff, 0xc5, 0x4d, 0x39, 0xee, 0x0f, 0x84, | |
0x24, 0xff, 0xff, 0xff, 0x4a, 0x8b, 0x7c, 0xed, | |
0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe8, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd8, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, | |
0xf2, 0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_BUILTIN_FAST_WITH_KEYWORDS_code_holes[10] = { | |
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x5d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xad, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xdb, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x10f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x121, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x141, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x160, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyCFunction_Type+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: &_Py_HandlePending+0x0 | |
// 20: EXECUTOR | |
// 28: TARGET | |
static const unsigned char _CALL_BUILTIN_FAST_WITH_KEYWORDS_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_BUILTIN_FAST_WITH_KEYWORDS_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CALL_BUILTIN_O | |
// | |
// /tmp/tmp2mfmnab2/_CALL_BUILTIN_O.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d7 movq %rdx, %r15 | |
// 11: 49 89 f6 movq %rsi, %r14 | |
// 14: 48 89 fb movq %rdi, %rbx | |
// 17: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1e: 0f b7 c1 movzwl %cx, %eax | |
// 21: 89 c2 movl %eax, %edx | |
// 23: f7 d2 notl %edx | |
// 25: 4c 63 ea movslq %edx, %r13 | |
// 28: 31 d2 xorl %edx, %edx | |
// 2a: 66 85 c9 testw %cx, %cx | |
// 2d: 0f 94 c2 sete %dl | |
// 30: 31 f6 xorl %esi, %esi | |
// 32: 66 83 f9 01 cmpw $0x1, %cx | |
// 36: 40 0f 94 c6 sete %sil | |
// 3a: 0f b7 e9 movzwl %cx, %ebp | |
// 3d: 48 89 e9 movq %rbp, %rcx | |
// 40: 48 f7 d9 negq %rcx | |
// 43: 4b 83 3c ee 00 cmpq $0x0, (%r14,%r13,8) | |
// 48: 0f 44 d6 cmovel %esi, %edx | |
// 4b: 48 f7 d5 notq %rbp | |
// 4e: 48 0f 44 e9 cmoveq %rcx, %rbp | |
// 52: 80 fa 01 cmpb $0x1, %dl | |
// 55: 75 50 jne 0xa7 <_JIT_ENTRY+0xa7> | |
// 57: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// 5c: 29 c1 subl %eax, %ecx | |
// 5e: 48 63 c9 movslq %ecx, %rcx | |
// 61: 4d 8b 24 ce movq (%r14,%rcx,8), %r12 | |
// 65: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 6a: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x71 <_JIT_ENTRY+0x71> | |
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyCFunction_Type-0x4 | |
// 71: 75 34 jne 0xa7 <_JIT_ENTRY+0xa7> | |
// 73: 49 8b 44 24 10 movq 0x10(%r12), %rax | |
// 78: 83 78 10 08 cmpl $0x8, 0x10(%rax) | |
// 7c: 75 29 jne 0xa7 <_JIT_ENTRY+0xa7> | |
// 7e: 48 89 4c 24 10 movq %rcx, 0x10(%rsp) | |
// 83: 4c 8b 40 08 movq 0x8(%rax), %r8 | |
// 87: 41 8b 4f 34 movl 0x34(%r15), %ecx | |
// 8b: 8d 51 ff leal -0x1(%rcx), %edx | |
// 8e: 41 89 57 34 movl %edx, 0x34(%r15) | |
// 92: 85 c9 testl %ecx, %ecx | |
// 94: 7e 50 jle 0xe6 <_JIT_ENTRY+0xe6> | |
// 96: 49 8b 2c ee movq (%r14,%rbp,8), %rbp | |
// 9a: f6 40 10 20 testb $0x20, 0x10(%rax) | |
// 9e: 75 77 jne 0x117 <_JIT_ENTRY+0x117> | |
// a0: 49 8b 7c 24 18 movq 0x18(%r12), %rdi | |
// a5: eb 72 jmp 0x119 <_JIT_ENTRY+0x119> | |
// a7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xae <_JIT_ENTRY+0xae> | |
// 00000000000000aa: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// ae: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// b5: 49 29 de subq %rbx, %r14 | |
// b8: 49 83 c6 b8 addq $-0x48, %r14 | |
// bc: 49 c1 ee 03 shrq $0x3, %r14 | |
// c0: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// c4: 48 8b 03 movq (%rbx), %rax | |
// c7: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xcd <_JIT_ENTRY+0xcd> | |
// 00000000000000c9: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// cd: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// d1: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// d7: 48 83 c4 18 addq $0x18, %rsp | |
// db: 5b popq %rbx | |
// dc: 41 5c popq %r12 | |
// de: 41 5d popq %r13 | |
// e0: 41 5e popq %r14 | |
// e2: 41 5f popq %r15 | |
// e4: 5d popq %rbp | |
// e5: c3 retq | |
// e6: 4c 89 44 24 08 movq %r8, 0x8(%rsp) | |
// eb: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_PC32 .L.str.20-0x4 | |
// f2: 4c 89 ff movq %r15, %rdi | |
// f5: ff 15 00 00 00 00 callq *(%rip) # 0xfb <_JIT_ENTRY+0xfb> | |
// 00000000000000f7: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4 | |
// fb: 85 c0 testl %eax, %eax | |
// fd: 0f 85 9f 00 00 00 jne 0x1a2 <_JIT_ENTRY+0x1a2> | |
// 103: 49 8b 44 24 10 movq 0x10(%r12), %rax | |
// 108: 4c 8b 44 24 08 movq 0x8(%rsp), %r8 | |
// 10d: 49 8b 2c ee movq (%r14,%rbp,8), %rbp | |
// 111: f6 40 10 20 testb $0x20, 0x10(%rax) | |
// 115: 74 89 je 0xa0 <_JIT_ENTRY+0xa0> | |
// 117: 31 ff xorl %edi, %edi | |
// 119: 48 89 ee movq %rbp, %rsi | |
// 11c: 41 ff d0 callq *%r8 | |
// 11f: 48 89 ef movq %rbp, %rdi | |
// 122: 41 ff 47 34 incl 0x34(%r15) | |
// 126: 48 89 c5 movq %rax, %rbp | |
// 129: 48 8b 07 movq (%rdi), %rax | |
// 12c: 85 c0 testl %eax, %eax | |
// 12e: 78 0e js 0x13e <_JIT_ENTRY+0x13e> | |
// 130: 48 ff c8 decq %rax | |
// 133: 48 89 07 movq %rax, (%rdi) | |
// 136: 75 06 jne 0x13e <_JIT_ENTRY+0x13e> | |
// 138: ff 15 00 00 00 00 callq *(%rip) # 0x13e <_JIT_ENTRY+0x13e> | |
// 000000000000013a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 13e: 49 8b 04 24 movq (%r12), %rax | |
// 142: 85 c0 testl %eax, %eax | |
// 144: 78 12 js 0x158 <_JIT_ENTRY+0x158> | |
// 146: 48 ff c8 decq %rax | |
// 149: 49 89 04 24 movq %rax, (%r12) | |
// 14d: 75 09 jne 0x158 <_JIT_ENTRY+0x158> | |
// 14f: 4c 89 e7 movq %r12, %rdi | |
// 152: ff 15 00 00 00 00 callq *(%rip) # 0x158 <_JIT_ENTRY+0x158> | |
// 0000000000000154: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 158: 48 8b 44 24 10 movq 0x10(%rsp), %rax | |
// 15d: 49 8d 04 c6 leaq (%r14,%rax,8), %rax | |
// 161: 48 85 ed testq %rbp, %rbp | |
// 164: 74 39 je 0x19f <_JIT_ENTRY+0x19f> | |
// 166: 4f 8d 34 ee leaq (%r14,%r13,8), %r14 | |
// 16a: 48 89 28 movq %rbp, (%rax) | |
// 16d: 49 8b 47 18 movq 0x18(%r15), %rax | |
// 171: 84 c0 testb %al, %al | |
// 173: 74 0d je 0x182 <_JIT_ENTRY+0x182> | |
// 175: 4c 89 ff movq %r15, %rdi | |
// 178: ff 15 00 00 00 00 callq *(%rip) # 0x17e <_JIT_ENTRY+0x17e> | |
// 000000000000017a: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 17e: 85 c0 testl %eax, %eax | |
// 180: 75 20 jne 0x1a2 <_JIT_ENTRY+0x1a2> | |
// 182: 48 89 df movq %rbx, %rdi | |
// 185: 4c 89 f6 movq %r14, %rsi | |
// 188: 4c 89 fa movq %r15, %rdx | |
// 18b: 48 83 c4 18 addq $0x18, %rsp | |
// 18f: 5b popq %rbx | |
// 190: 41 5c popq %r12 | |
// 192: 41 5d popq %r13 | |
// 194: 41 5e popq %r14 | |
// 196: 41 5f popq %r15 | |
// 198: 5d popq %rbp | |
// 199: ff 25 00 00 00 00 jmpq *(%rip) # 0x19f <_JIT_ENTRY+0x19f> | |
// 000000000000019b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 19f: 49 89 c6 movq %rax, %r14 | |
// 1a2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1a9 <_JIT_ENTRY+0x1a9> | |
// 00000000000001a5: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 1a9: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 1b0: 49 29 de subq %rbx, %r14 | |
// 1b3: 49 83 c6 b8 addq $-0x48, %r14 | |
// 1b7: 49 c1 ee 03 shrq $0x3, %r14 | |
// 1bb: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 1bf: 31 c0 xorl %eax, %eax | |
// 1c1: e9 11 ff ff ff jmp 0xd7 <_JIT_ENTRY+0xd7> | |
// 1c6: | |
static const unsigned char _CALL_BUILTIN_O_code_body[455] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, | |
0xc1, 0x89, 0xc2, 0xf7, 0xd2, 0x4c, 0x63, 0xea, | |
0x31, 0xd2, 0x66, 0x85, 0xc9, 0x0f, 0x94, 0xc2, | |
0x31, 0xf6, 0x66, 0x83, 0xf9, 0x01, 0x40, 0x0f, | |
0x94, 0xc6, 0x0f, 0xb7, 0xe9, 0x48, 0x89, 0xe9, | |
0x48, 0xf7, 0xd9, 0x4b, 0x83, 0x3c, 0xee, 0x00, | |
0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd5, 0x48, 0x0f, | |
0x44, 0xe9, 0x80, 0xfa, 0x01, 0x75, 0x50, 0xb9, | |
0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, 0x48, 0x63, | |
0xc9, 0x4d, 0x8b, 0x24, 0xce, 0x49, 0x8b, 0x44, | |
0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x75, 0x34, 0x49, 0x8b, 0x44, 0x24, 0x10, | |
0x83, 0x78, 0x10, 0x08, 0x75, 0x29, 0x48, 0x89, | |
0x4c, 0x24, 0x10, 0x4c, 0x8b, 0x40, 0x08, 0x41, | |
0x8b, 0x4f, 0x34, 0x8d, 0x51, 0xff, 0x41, 0x89, | |
0x57, 0x34, 0x85, 0xc9, 0x7e, 0x50, 0x49, 0x8b, | |
0x2c, 0xee, 0xf6, 0x40, 0x10, 0x20, 0x75, 0x77, | |
0x49, 0x8b, 0x7c, 0x24, 0x18, 0xeb, 0x72, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, | |
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, | |
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, | |
0x44, 0x24, 0x08, 0x48, 0x8d, 0x35, 0x00, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xff, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x85, 0x9f, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x10, | |
0x4c, 0x8b, 0x44, 0x24, 0x08, 0x49, 0x8b, 0x2c, | |
0xee, 0xf6, 0x40, 0x10, 0x20, 0x74, 0x89, 0x31, | |
0xff, 0x48, 0x89, 0xee, 0x41, 0xff, 0xd0, 0x48, | |
0x89, 0xef, 0x41, 0xff, 0x47, 0x34, 0x48, 0x89, | |
0xc5, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, | |
0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x44, 0x24, 0x10, 0x49, 0x8d, 0x04, | |
0xc6, 0x48, 0x85, 0xed, 0x74, 0x39, 0x4f, 0x8d, | |
0x34, 0xee, 0x48, 0x89, 0x28, 0x49, 0x8b, 0x47, | |
0x18, 0x84, 0xc0, 0x74, 0x0d, 0x4c, 0x89, 0xff, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, | |
0x75, 0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, | |
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0xc6, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, | |
0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x31, | |
0xc0, 0xe9, 0x11, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CALL_BUILTIN_O_code_holes[12] = { | |
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xaa, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xee, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xf7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x13a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x154, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x17a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x19b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x1a5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: ' while calling a Python object\x00' | |
// 1f: 00 | |
// 20: OPARG | |
// 28: &PyCFunction_Type+0x0 | |
// 30: EXECUTOR | |
// 38: TARGET | |
// 40: &_Py_CheckRecursiveCall+0x0 | |
// 48: &_Py_Dealloc+0x0 | |
// 50: &_Py_HandlePending+0x0 | |
// 58: CONTINUE | |
static const unsigned char _CALL_BUILTIN_O_data_body[97] = { | |
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63, | |
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, | |
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20, | |
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_BUILTIN_O_data_holes[9] = { | |
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCFunction_Type, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CALL_INTRINSIC_1 | |
// | |
// /tmp/tmp2mfmnab2/_CALL_INTRINSIC_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1d: 48 c1 e0 04 shlq $0x4, %rax | |
// 21: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_REX_GOTPCRELX _PyIntrinsics_UnaryFunctions-0x4 | |
// 28: 48 89 d7 movq %rdx, %rdi | |
// 2b: 4c 89 e6 movq %r12, %rsi | |
// 2e: ff 14 01 callq *(%rcx,%rax) | |
// 31: 49 89 c5 movq %rax, %r13 | |
// 34: 49 8b 04 24 movq (%r12), %rax | |
// 38: 85 c0 testl %eax, %eax | |
// 3a: 78 09 js 0x45 <_JIT_ENTRY+0x45> | |
// 3c: 48 ff c8 decq %rax | |
// 3f: 49 89 04 24 movq %rax, (%r12) | |
// 43: 74 21 je 0x66 <_JIT_ENTRY+0x66> | |
// 45: 4d 85 ed testq %r13, %r13 | |
// 48: 74 2a je 0x74 <_JIT_ENTRY+0x74> | |
// 4a: 4c 89 6b f8 movq %r13, -0x8(%rbx) | |
// 4e: 4c 89 f7 movq %r14, %rdi | |
// 51: 48 89 de movq %rbx, %rsi | |
// 54: 4c 89 fa movq %r15, %rdx | |
// 57: 5b popq %rbx | |
// 58: 41 5c popq %r12 | |
// 5a: 41 5d popq %r13 | |
// 5c: 41 5e popq %r14 | |
// 5e: 41 5f popq %r15 | |
// 60: ff 25 00 00 00 00 jmpq *(%rip) # 0x66 <_JIT_ENTRY+0x66> | |
// 0000000000000062: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 66: 4c 89 e7 movq %r12, %rdi | |
// 69: ff 15 00 00 00 00 callq *(%rip) # 0x6f <_JIT_ENTRY+0x6f> | |
// 000000000000006b: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 6f: 4d 85 ed testq %r13, %r13 | |
// 72: 75 d6 jne 0x4a <_JIT_ENTRY+0x4a> | |
// 74: 48 83 c3 f8 addq $-0x8, %rbx | |
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f> | |
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 86: 4c 29 f3 subq %r14, %rbx | |
// 89: 48 83 c3 b8 addq $-0x48, %rbx | |
// 8d: 48 c1 eb 03 shrq $0x3, %rbx | |
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 95: 31 c0 xorl %eax, %eax | |
// 97: 5b popq %rbx | |
// 98: 41 5c popq %r12 | |
// 9a: 41 5d popq %r13 | |
// 9c: 41 5e popq %r14 | |
// 9e: 41 5f popq %r15 | |
// a0: c3 retq | |
// a1: | |
static const unsigned char _CALL_INTRINSIC_1_code_body[162] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x0f, 0xb7, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe0, | |
0x04, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0xd7, 0x4c, 0x89, 0xe6, 0xff, 0x14, | |
0x01, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x74, 0x21, 0x4d, 0x85, 0xed, | |
0x74, 0x2a, 0x4c, 0x89, 0x6b, 0xf8, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, | |
0x85, 0xed, 0x75, 0xd6, 0x48, 0x83, 0xc3, 0xf8, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, | |
0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, | |
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xc3, | |
}; | |
static const Hole _CALL_INTRINSIC_1_code_holes[6] = { | |
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x24, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x62, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyIntrinsics_UnaryFunctions+0x0 | |
// 10: CONTINUE | |
// 18: &_Py_Dealloc+0x0 | |
// 20: EXECUTOR | |
static const unsigned char _CALL_INTRINSIC_1_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_INTRINSIC_1_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyIntrinsics_UnaryFunctions, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _CALL_INTRINSIC_2 | |
// | |
// /tmp/tmp2mfmnab2/_CALL_INTRINSIC_2.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 23: 48 c1 e0 04 shlq $0x4, %rax | |
// 27: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x2e <_JIT_ENTRY+0x2e> | |
// 000000000000002a: R_X86_64_REX_GOTPCRELX _PyIntrinsics_BinaryFunctions-0x4 | |
// 2e: 48 89 d7 movq %rdx, %rdi | |
// 31: 48 89 ee movq %rbp, %rsi | |
// 34: 4c 89 e2 movq %r12, %rdx | |
// 37: ff 14 01 callq *(%rcx,%rax) | |
// 3a: 49 89 c5 movq %rax, %r13 | |
// 3d: 48 8b 45 00 movq (%rbp), %rax | |
// 41: 85 c0 testl %eax, %eax | |
// 43: 78 09 js 0x4e <_JIT_ENTRY+0x4e> | |
// 45: 48 ff c8 decq %rax | |
// 48: 48 89 45 00 movq %rax, (%rbp) | |
// 4c: 74 1c je 0x6a <_JIT_ENTRY+0x6a> | |
// 4e: 49 8b 04 24 movq (%r12), %rax | |
// 52: 85 c0 testl %eax, %eax | |
// 54: 78 25 js 0x7b <_JIT_ENTRY+0x7b> | |
// 56: 48 ff c8 decq %rax | |
// 59: 49 89 04 24 movq %rax, (%r12) | |
// 5d: 75 1c jne 0x7b <_JIT_ENTRY+0x7b> | |
// 5f: 4c 89 e7 movq %r12, %rdi | |
// 62: ff 15 00 00 00 00 callq *(%rip) # 0x68 <_JIT_ENTRY+0x68> | |
// 0000000000000064: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 68: eb 11 jmp 0x7b <_JIT_ENTRY+0x7b> | |
// 6a: 48 89 ef movq %rbp, %rdi | |
// 6d: ff 15 00 00 00 00 callq *(%rip) # 0x73 <_JIT_ENTRY+0x73> | |
// 000000000000006f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 73: 49 8b 04 24 movq (%r12), %rax | |
// 77: 85 c0 testl %eax, %eax | |
// 79: 79 db jns 0x56 <_JIT_ENTRY+0x56> | |
// 7b: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 7f: 4d 85 ed testq %r13, %r13 | |
// 82: 74 24 je 0xa8 <_JIT_ENTRY+0xa8> | |
// 84: 49 83 c7 f8 addq $-0x8, %r15 | |
// 88: 4c 89 28 movq %r13, (%rax) | |
// 8b: 48 89 df movq %rbx, %rdi | |
// 8e: 4c 89 fe movq %r15, %rsi | |
// 91: 4c 89 f2 movq %r14, %rdx | |
// 94: 48 83 c4 08 addq $0x8, %rsp | |
// 98: 5b popq %rbx | |
// 99: 41 5c popq %r12 | |
// 9b: 41 5d popq %r13 | |
// 9d: 41 5e popq %r14 | |
// 9f: 41 5f popq %r15 | |
// a1: 5d popq %rbp | |
// a2: ff 25 00 00 00 00 jmpq *(%rip) # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a8: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xaf <_JIT_ENTRY+0xaf> | |
// 00000000000000ab: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// af: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// b6: 48 29 d8 subq %rbx, %rax | |
// b9: 48 83 c0 b8 addq $-0x48, %rax | |
// bd: 48 c1 e8 03 shrq $0x3, %rax | |
// c1: 89 43 40 movl %eax, 0x40(%rbx) | |
// c4: 31 c0 xorl %eax, %eax | |
// c6: 48 83 c4 08 addq $0x8, %rsp | |
// ca: 5b popq %rbx | |
// cb: 41 5c popq %r12 | |
// cd: 41 5d popq %r13 | |
// cf: 41 5e popq %r14 | |
// d1: 41 5f popq %r15 | |
// d3: 5d popq %rbp | |
// d4: c3 retq | |
// d5: | |
static const unsigned char _CALL_INTRINSIC_2_code_body[214] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0x0f, 0xb7, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe0, 0x04, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0xd7, 0x48, 0x89, 0xee, 0x4c, 0x89, 0xe2, 0xff, | |
0x14, 0x01, 0x49, 0x89, 0xc5, 0x48, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x1c, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x79, 0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, | |
0x85, 0xed, 0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, | |
0x4c, 0x89, 0x28, 0x48, 0x89, 0xdf, 0x4c, 0x89, | |
0xfe, 0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, | |
0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, | |
0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _CALL_INTRINSIC_2_code_holes[7] = { | |
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x64, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x6f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xa4, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xab, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyIntrinsics_BinaryFunctions+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
static const unsigned char _CALL_INTRINSIC_2_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_INTRINSIC_2_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyIntrinsics_BinaryFunctions, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _CALL_ISINSTANCE | |
// | |
// /tmp/tmp2mfmnab2/_CALL_ISINSTANCE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d7 movq %rdx, %r15 | |
// 11: 49 89 f6 movq %rsi, %r14 | |
// 14: 48 89 fb movq %rdi, %rbx | |
// 17: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1e: 0f b7 c1 movzwl %cx, %eax | |
// 21: 89 c2 movl %eax, %edx | |
// 23: f7 d2 notl %edx | |
// 25: 48 63 ea movslq %edx, %rbp | |
// 28: 31 d2 xorl %edx, %edx | |
// 2a: 66 83 f9 01 cmpw $0x1, %cx | |
// 2e: 0f 94 c2 sete %dl | |
// 31: 31 f6 xorl %esi, %esi | |
// 33: 66 83 f9 02 cmpw $0x2, %cx | |
// 37: 40 0f 94 c6 sete %sil | |
// 3b: 0f b7 c9 movzwl %cx, %ecx | |
// 3e: 48 89 cf movq %rcx, %rdi | |
// 41: 48 f7 df negq %rdi | |
// 44: 49 83 3c ee 00 cmpq $0x0, (%r14,%rbp,8) | |
// 49: 0f 44 d6 cmovel %esi, %edx | |
// 4c: 48 f7 d1 notq %rcx | |
// 4f: 48 0f 44 cf cmoveq %rdi, %rcx | |
// 53: 80 fa 01 cmpb $0x1, %dl | |
// 56: 75 1b jne 0x73 <_JIT_ENTRY+0x73> | |
// 58: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE | |
// 5d: 29 c2 subl %eax, %edx | |
// 5f: 4c 63 ea movslq %edx, %r13 | |
// 62: 4f 8b 24 ee movq (%r14,%r13,8), %r12 | |
// 66: 49 8b 47 10 movq 0x10(%r15), %rax | |
// 6a: 4c 3b a0 a8 50 02 00 cmpq 0x250a8(%rax), %r12 | |
// 71: 74 3f je 0xb2 <_JIT_ENTRY+0xb2> | |
// 73: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7a <_JIT_ENTRY+0x7a> | |
// 0000000000000076: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 81: 49 29 de subq %rbx, %r14 | |
// 84: 49 83 c6 b8 addq $-0x48, %r14 | |
// 88: 49 c1 ee 03 shrq $0x3, %r14 | |
// 8c: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 90: 48 8b 03 movq (%rbx), %rax | |
// 93: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x99 <_JIT_ENTRY+0x99> | |
// 0000000000000095: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 99: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 9d: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// a3: 48 83 c4 18 addq $0x18, %rsp | |
// a7: 5b popq %rbx | |
// a8: 41 5c popq %r12 | |
// aa: 41 5d popq %r13 | |
// ac: 41 5e popq %r14 | |
// ae: 41 5f popq %r15 | |
// b0: 5d popq %rbp | |
// b1: c3 retq | |
// b2: 49 8b 3c ce movq (%r14,%rcx,8), %rdi | |
// b6: 49 8b 74 ce 08 movq 0x8(%r14,%rcx,8), %rsi | |
// bb: 48 89 7c 24 08 movq %rdi, 0x8(%rsp) | |
// c0: 48 89 74 24 10 movq %rsi, 0x10(%rsp) | |
// c5: ff 15 00 00 00 00 callq *(%rip) # 0xcb <_JIT_ENTRY+0xcb> | |
// 00000000000000c7: R_X86_64_GOTPCRELX PyObject_IsInstance-0x4 | |
// cb: 85 c0 testl %eax, %eax | |
// cd: 0f 88 9d 00 00 00 js 0x170 <_JIT_ENTRY+0x170> | |
// d3: 89 c7 movl %eax, %edi | |
// d5: ff 15 00 00 00 00 callq *(%rip) # 0xdb <_JIT_ENTRY+0xdb> | |
// 00000000000000d7: R_X86_64_GOTPCRELX PyBool_FromLong-0x4 | |
// db: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// e0: 48 8b 0f movq (%rdi), %rcx | |
// e3: 85 c9 testl %ecx, %ecx | |
// e5: 78 18 js 0xff <_JIT_ENTRY+0xff> | |
// e7: 48 ff c9 decq %rcx | |
// ea: 48 89 0f movq %rcx, (%rdi) | |
// ed: 75 10 jne 0xff <_JIT_ENTRY+0xff> | |
// ef: 48 89 44 24 08 movq %rax, 0x8(%rsp) | |
// f4: ff 15 00 00 00 00 callq *(%rip) # 0xfa <_JIT_ENTRY+0xfa> | |
// 00000000000000f6: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// fa: 48 8b 44 24 08 movq 0x8(%rsp), %rax | |
// ff: 48 8b 7c 24 10 movq 0x10(%rsp), %rdi | |
// 104: 48 8b 0f movq (%rdi), %rcx | |
// 107: 85 c9 testl %ecx, %ecx | |
// 109: 78 18 js 0x123 <_JIT_ENTRY+0x123> | |
// 10b: 48 ff c9 decq %rcx | |
// 10e: 48 89 0f movq %rcx, (%rdi) | |
// 111: 75 10 jne 0x123 <_JIT_ENTRY+0x123> | |
// 113: 48 89 44 24 08 movq %rax, 0x8(%rsp) | |
// 118: ff 15 00 00 00 00 callq *(%rip) # 0x11e <_JIT_ENTRY+0x11e> | |
// 000000000000011a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 11e: 48 8b 44 24 08 movq 0x8(%rsp), %rax | |
// 123: 49 8b 0c 24 movq (%r12), %rcx | |
// 127: 85 c9 testl %ecx, %ecx | |
// 129: 78 18 js 0x143 <_JIT_ENTRY+0x143> | |
// 12b: 48 ff c9 decq %rcx | |
// 12e: 49 89 0c 24 movq %rcx, (%r12) | |
// 132: 75 0f jne 0x143 <_JIT_ENTRY+0x143> | |
// 134: 4c 89 e7 movq %r12, %rdi | |
// 137: 49 89 c4 movq %rax, %r12 | |
// 13a: ff 15 00 00 00 00 callq *(%rip) # 0x140 <_JIT_ENTRY+0x140> | |
// 000000000000013c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 140: 4c 89 e0 movq %r12, %rax | |
// 143: 4b 8d 0c ee leaq (%r14,%r13,8), %rcx | |
// 147: 48 85 c0 testq %rax, %rax | |
// 14a: 74 21 je 0x16d <_JIT_ENTRY+0x16d> | |
// 14c: 49 8d 34 ee leaq (%r14,%rbp,8), %rsi | |
// 150: 48 89 01 movq %rax, (%rcx) | |
// 153: 48 89 df movq %rbx, %rdi | |
// 156: 4c 89 fa movq %r15, %rdx | |
// 159: 48 83 c4 18 addq $0x18, %rsp | |
// 15d: 5b popq %rbx | |
// 15e: 41 5c popq %r12 | |
// 160: 41 5d popq %r13 | |
// 162: 41 5e popq %r14 | |
// 164: 41 5f popq %r15 | |
// 166: 5d popq %rbp | |
// 167: ff 25 00 00 00 00 jmpq *(%rip) # 0x16d <_JIT_ENTRY+0x16d> | |
// 0000000000000169: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 16d: 49 89 ce movq %rcx, %r14 | |
// 170: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x177 <_JIT_ENTRY+0x177> | |
// 0000000000000173: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 177: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 17e: 49 29 de subq %rbx, %r14 | |
// 181: 49 83 c6 b8 addq $-0x48, %r14 | |
// 185: 49 c1 ee 03 shrq $0x3, %r14 | |
// 189: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 18d: 31 c0 xorl %eax, %eax | |
// 18f: e9 0f ff ff ff jmp 0xa3 <_JIT_ENTRY+0xa3> | |
// 194: | |
static const unsigned char _CALL_ISINSTANCE_code_body[405] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, | |
0xc1, 0x89, 0xc2, 0xf7, 0xd2, 0x48, 0x63, 0xea, | |
0x31, 0xd2, 0x66, 0x83, 0xf9, 0x01, 0x0f, 0x94, | |
0xc2, 0x31, 0xf6, 0x66, 0x83, 0xf9, 0x02, 0x40, | |
0x0f, 0x94, 0xc6, 0x0f, 0xb7, 0xc9, 0x48, 0x89, | |
0xcf, 0x48, 0xf7, 0xdf, 0x49, 0x83, 0x3c, 0xee, | |
0x00, 0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd1, 0x48, | |
0x0f, 0x44, 0xcf, 0x80, 0xfa, 0x01, 0x75, 0x1b, | |
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc2, 0x4c, | |
0x63, 0xea, 0x4f, 0x8b, 0x24, 0xee, 0x49, 0x8b, | |
0x47, 0x10, 0x4c, 0x3b, 0xa0, 0xa8, 0x50, 0x02, | |
0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, | |
0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, 0x40, | |
0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, | |
0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x18, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, 0xc3, 0x49, 0x8b, 0x3c, 0xce, 0x49, 0x8b, | |
0x74, 0xce, 0x08, 0x48, 0x89, 0x7c, 0x24, 0x08, | |
0x48, 0x89, 0x74, 0x24, 0x10, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x88, 0x9d, | |
0x00, 0x00, 0x00, 0x89, 0xc7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x7c, 0x24, 0x08, | |
0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x18, 0x48, | |
0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x10, 0x48, | |
0x89, 0x44, 0x24, 0x08, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x44, 0x24, 0x08, 0x48, | |
0x8b, 0x7c, 0x24, 0x10, 0x48, 0x8b, 0x0f, 0x85, | |
0xc9, 0x78, 0x18, 0x48, 0xff, 0xc9, 0x48, 0x89, | |
0x0f, 0x75, 0x10, 0x48, 0x89, 0x44, 0x24, 0x08, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x44, 0x24, 0x08, 0x49, 0x8b, 0x0c, 0x24, 0x85, | |
0xc9, 0x78, 0x18, 0x48, 0xff, 0xc9, 0x49, 0x89, | |
0x0c, 0x24, 0x75, 0x0f, 0x4c, 0x89, 0xe7, 0x49, | |
0x89, 0xc4, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xe0, 0x4b, 0x8d, 0x0c, 0xee, 0x48, | |
0x85, 0xc0, 0x74, 0x21, 0x49, 0x8d, 0x34, 0xee, | |
0x48, 0x89, 0x01, 0x48, 0x89, 0xdf, 0x4c, 0x89, | |
0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, | |
0x25, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xce, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, | |
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, | |
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0xe9, | |
0x0f, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CALL_ISINSTANCE_code_holes[11] = { | |
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x76, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x95, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xd7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xf6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x11a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x13c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x169, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x173, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &PyObject_IsInstance+0x0 | |
// 20: &PyBool_FromLong+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: CONTINUE | |
static const unsigned char _CALL_ISINSTANCE_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_ISINSTANCE_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_IsInstance, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyBool_FromLong, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CALL_LEN | |
// | |
// /tmp/tmp2mfmnab2/_CALL_LEN.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1b: 0f b7 c1 movzwl %cx, %eax | |
// 1e: 89 c2 movl %eax, %edx | |
// 20: f7 d2 notl %edx | |
// 22: 4c 63 ea movslq %edx, %r13 | |
// 25: 31 d2 xorl %edx, %edx | |
// 27: 66 85 c9 testw %cx, %cx | |
// 2a: 0f 94 c2 sete %dl | |
// 2d: 31 f6 xorl %esi, %esi | |
// 2f: 66 83 f9 01 cmpw $0x1, %cx | |
// 33: 40 0f 94 c6 sete %sil | |
// 37: 0f b7 c9 movzwl %cx, %ecx | |
// 3a: 48 89 cf movq %rcx, %rdi | |
// 3d: 48 f7 df negq %rdi | |
// 40: 4b 83 3c ee 00 cmpq $0x0, (%r14,%r13,8) | |
// 45: 0f 44 d6 cmovel %esi, %edx | |
// 48: 48 f7 d1 notq %rcx | |
// 4b: 48 0f 44 cf cmoveq %rdi, %rcx | |
// 4f: 80 fa 01 cmpb $0x1, %dl | |
// 52: 75 1b jne 0x6f <_JIT_ENTRY+0x6f> | |
// 54: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE | |
// 59: 29 c2 subl %eax, %edx | |
// 5b: 4c 63 e2 movslq %edx, %r12 | |
// 5e: 4b 8b 2c e6 movq (%r14,%r12,8), %rbp | |
// 62: 49 8b 47 10 movq 0x10(%r15), %rax | |
// 66: 48 3b a8 b0 50 02 00 cmpq 0x250b0(%rax), %rbp | |
// 6d: 74 3f je 0xae <_JIT_ENTRY+0xae> | |
// 6f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x76 <_JIT_ENTRY+0x76> | |
// 0000000000000072: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 76: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 7d: 49 29 de subq %rbx, %r14 | |
// 80: 49 83 c6 b8 addq $-0x48, %r14 | |
// 84: 49 c1 ee 03 shrq $0x3, %r14 | |
// 88: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 8c: 48 8b 03 movq (%rbx), %rax | |
// 8f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x95 <_JIT_ENTRY+0x95> | |
// 0000000000000091: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 95: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 99: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 9f: 48 83 c4 08 addq $0x8, %rsp | |
// a3: 5b popq %rbx | |
// a4: 41 5c popq %r12 | |
// a6: 41 5d popq %r13 | |
// a8: 41 5e popq %r14 | |
// aa: 41 5f popq %r15 | |
// ac: 5d popq %rbp | |
// ad: c3 retq | |
// ae: 49 8b 3c ce movq (%r14,%rcx,8), %rdi | |
// b2: 48 89 3c 24 movq %rdi, (%rsp) | |
// b6: ff 15 00 00 00 00 callq *(%rip) # 0xbc <_JIT_ENTRY+0xbc> | |
// 00000000000000b8: R_X86_64_GOTPCRELX PyObject_Size-0x4 | |
// bc: 48 85 c0 testq %rax, %rax | |
// bf: 78 75 js 0x136 <_JIT_ENTRY+0x136> | |
// c1: 48 89 c7 movq %rax, %rdi | |
// c4: ff 15 00 00 00 00 callq *(%rip) # 0xca <_JIT_ENTRY+0xca> | |
// 00000000000000c6: R_X86_64_GOTPCRELX PyLong_FromSsize_t-0x4 | |
// ca: 48 8b 4d 00 movq (%rbp), %rcx | |
// ce: 85 c9 testl %ecx, %ecx | |
// d0: 78 18 js 0xea <_JIT_ENTRY+0xea> | |
// d2: 48 ff c9 decq %rcx | |
// d5: 48 89 4d 00 movq %rcx, (%rbp) | |
// d9: 75 0f jne 0xea <_JIT_ENTRY+0xea> | |
// db: 48 89 ef movq %rbp, %rdi | |
// de: 48 89 c5 movq %rax, %rbp | |
// e1: ff 15 00 00 00 00 callq *(%rip) # 0xe7 <_JIT_ENTRY+0xe7> | |
// 00000000000000e3: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// e7: 48 89 e8 movq %rbp, %rax | |
// ea: 48 8b 3c 24 movq (%rsp), %rdi | |
// ee: 48 8b 0f movq (%rdi), %rcx | |
// f1: 85 c9 testl %ecx, %ecx | |
// f3: 78 14 js 0x109 <_JIT_ENTRY+0x109> | |
// f5: 48 ff c9 decq %rcx | |
// f8: 48 89 0f movq %rcx, (%rdi) | |
// fb: 75 0c jne 0x109 <_JIT_ENTRY+0x109> | |
// fd: 48 89 c5 movq %rax, %rbp | |
// 100: ff 15 00 00 00 00 callq *(%rip) # 0x106 <_JIT_ENTRY+0x106> | |
// 0000000000000102: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 106: 48 89 e8 movq %rbp, %rax | |
// 109: 4b 8d 0c e6 leaq (%r14,%r12,8), %rcx | |
// 10d: 48 85 c0 testq %rax, %rax | |
// 110: 74 21 je 0x133 <_JIT_ENTRY+0x133> | |
// 112: 4b 8d 34 ee leaq (%r14,%r13,8), %rsi | |
// 116: 48 89 01 movq %rax, (%rcx) | |
// 119: 48 89 df movq %rbx, %rdi | |
// 11c: 4c 89 fa movq %r15, %rdx | |
// 11f: 48 83 c4 08 addq $0x8, %rsp | |
// 123: 5b popq %rbx | |
// 124: 41 5c popq %r12 | |
// 126: 41 5d popq %r13 | |
// 128: 41 5e popq %r14 | |
// 12a: 41 5f popq %r15 | |
// 12c: 5d popq %rbp | |
// 12d: ff 25 00 00 00 00 jmpq *(%rip) # 0x133 <_JIT_ENTRY+0x133> | |
// 000000000000012f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 133: 49 89 ce movq %rcx, %r14 | |
// 136: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x13d <_JIT_ENTRY+0x13d> | |
// 0000000000000139: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 13d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 144: 49 29 de subq %rbx, %r14 | |
// 147: 49 83 c6 b8 addq $-0x48, %r14 | |
// 14b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 14f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 153: 31 c0 xorl %eax, %eax | |
// 155: e9 45 ff ff ff jmp 0x9f <_JIT_ENTRY+0x9f> | |
// 15a: | |
static const unsigned char _CALL_LEN_code_body[347] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xc1, 0x89, 0xc2, | |
0xf7, 0xd2, 0x4c, 0x63, 0xea, 0x31, 0xd2, 0x66, | |
0x85, 0xc9, 0x0f, 0x94, 0xc2, 0x31, 0xf6, 0x66, | |
0x83, 0xf9, 0x01, 0x40, 0x0f, 0x94, 0xc6, 0x0f, | |
0xb7, 0xc9, 0x48, 0x89, 0xcf, 0x48, 0xf7, 0xdf, | |
0x4b, 0x83, 0x3c, 0xee, 0x00, 0x0f, 0x44, 0xd6, | |
0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, 0xcf, 0x80, | |
0xfa, 0x01, 0x75, 0x1b, 0xba, 0xfe, 0xff, 0xff, | |
0xff, 0x29, 0xc2, 0x4c, 0x63, 0xe2, 0x4b, 0x8b, | |
0x2c, 0xe6, 0x49, 0x8b, 0x47, 0x10, 0x48, 0x3b, | |
0xa8, 0xb0, 0x50, 0x02, 0x00, 0x74, 0x3f, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, | |
0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, | |
0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x49, 0x8b, | |
0x3c, 0xce, 0x48, 0x89, 0x3c, 0x24, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x78, | |
0x75, 0x48, 0x89, 0xc7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x4d, 0x00, 0x85, 0xc9, | |
0x78, 0x18, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x4d, | |
0x00, 0x75, 0x0f, 0x48, 0x89, 0xef, 0x48, 0x89, | |
0xc5, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0xe8, 0x48, 0x8b, 0x3c, 0x24, 0x48, 0x8b, | |
0x0f, 0x85, 0xc9, 0x78, 0x14, 0x48, 0xff, 0xc9, | |
0x48, 0x89, 0x0f, 0x75, 0x0c, 0x48, 0x89, 0xc5, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0xe8, 0x4b, 0x8d, 0x0c, 0xe6, 0x48, 0x85, 0xc0, | |
0x74, 0x21, 0x4b, 0x8d, 0x34, 0xee, 0x48, 0x89, | |
0x01, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfa, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0xce, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x31, 0xc0, 0xe9, 0x45, 0xff, | |
0xff, 0xff, | |
}; | |
static const Hole _CALL_LEN_code_holes[10] = { | |
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x72, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x91, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xb8, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xc6, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xe3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x102, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x12f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x139, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &PyObject_Size+0x0 | |
// 20: &PyLong_FromSsize_t+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: CONTINUE | |
static const unsigned char _CALL_LEN_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_LEN_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Size, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromSsize_t, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CALL_METHOD_DESCRIPTOR_FAST | |
// | |
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_FAST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 28 subq $0x28, %rsp | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1b: 0f b7 f9 movzwl %cx, %edi | |
// 1e: 89 f8 movl %edi, %eax | |
// 20: f7 d0 notl %eax | |
// 22: 4c 63 c8 movslq %eax, %r9 | |
// 25: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 29: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE | |
// 2e: 29 fe subl %edi, %esi | |
// 30: 4c 63 d6 movslq %esi, %r10 | |
// 33: 0f b7 c9 movzwl %cx, %ecx | |
// 36: 48 89 ce movq %rcx, %rsi | |
// 39: 48 f7 de negq %rsi | |
// 3c: 8d 6f 01 leal 0x1(%rdi), %ebp | |
// 3f: 48 85 c0 testq %rax, %rax | |
// 42: 48 f7 d1 notq %rcx | |
// 45: 48 0f 44 ce cmoveq %rsi, %rcx | |
// 49: 0f 44 ef cmovel %edi, %ebp | |
// 4c: 4f 8b 24 d7 movq (%r15,%r10,8), %r12 | |
// 50: 49 8b 74 24 08 movq 0x8(%r12), %rsi | |
// 55: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x5c <_JIT_ENTRY+0x5c> | |
// 0000000000000058: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4 | |
// 5c: 75 21 jne 0x7f <_JIT_ENTRY+0x7f> | |
// 5e: 4d 8b 44 24 28 movq 0x28(%r12), %r8 | |
// 63: 41 81 78 10 80 00 00 00 cmpl $0x80, 0x10(%r8) | |
// 6b: 75 12 jne 0x7f <_JIT_ENTRY+0x7f> | |
// 6d: 4d 8d 34 cf leaq (%r15,%rcx,8), %r14 | |
// 71: 49 8b 3e movq (%r14), %rdi | |
// 74: 48 8b 4f 08 movq 0x8(%rdi), %rcx | |
// 78: 49 3b 4c 24 10 cmpq 0x10(%r12), %rcx | |
// 7d: 74 3f je 0xbe <_JIT_ENTRY+0xbe> | |
// 7f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x86 <_JIT_ENTRY+0x86> | |
// 0000000000000082: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 86: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 8d: 49 29 df subq %rbx, %r15 | |
// 90: 49 83 c7 b8 addq $-0x48, %r15 | |
// 94: 49 c1 ef 03 shrq $0x3, %r15 | |
// 98: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 9c: 48 8b 03 movq (%rbx), %rax | |
// 9f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xa5 <_JIT_ENTRY+0xa5> | |
// 00000000000000a1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// a5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// a9: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// af: 48 83 c4 28 addq $0x28, %rsp | |
// b3: 5b popq %rbx | |
// b4: 41 5c popq %r12 | |
// b6: 41 5d popq %r13 | |
// b8: 41 5e popq %r14 | |
// ba: 41 5f popq %r15 | |
// bc: 5d popq %rbp | |
// bd: c3 retq | |
// be: 4c 89 54 24 10 movq %r10, 0x10(%rsp) | |
// c3: 4c 89 4c 24 18 movq %r9, 0x18(%rsp) | |
// c8: 48 89 54 24 20 movq %rdx, 0x20(%rsp) | |
// cd: 48 85 c0 testq %rax, %rax | |
// d0: 41 0f 94 c5 sete %r13b | |
// d4: 8d 45 ff leal -0x1(%rbp), %eax | |
// d7: 49 8d 76 08 leaq 0x8(%r14), %rsi | |
// db: 48 63 d0 movslq %eax, %rdx | |
// de: 41 ff 50 08 callq *0x8(%r8) | |
// e2: 48 89 44 24 08 movq %rax, 0x8(%rsp) | |
// e7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xee <_JIT_ENTRY+0xee> | |
// 00000000000000ea: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// ee: 66 85 c0 testw %ax, %ax | |
// f1: 0f 94 c0 sete %al | |
// f4: 41 84 c5 testb %al, %r13b | |
// f7: 74 79 je 0x172 <_JIT_ENTRY+0x172> | |
// f9: 49 8b 04 24 movq (%r12), %rax | |
// fd: 85 c0 testl %eax, %eax | |
// ff: 4c 8b 74 24 10 movq 0x10(%rsp), %r14 | |
// 104: 78 12 js 0x118 <_JIT_ENTRY+0x118> | |
// 106: 48 ff c8 decq %rax | |
// 109: 49 89 04 24 movq %rax, (%r12) | |
// 10d: 75 09 jne 0x118 <_JIT_ENTRY+0x118> | |
// 10f: 4c 89 e7 movq %r12, %rdi | |
// 112: ff 15 00 00 00 00 callq *(%rip) # 0x118 <_JIT_ENTRY+0x118> | |
// 0000000000000114: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 118: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax | |
// 11c: 48 8b 54 24 08 movq 0x8(%rsp), %rdx | |
// 121: 48 85 d2 testq %rdx, %rdx | |
// 124: 4c 8b 74 24 20 movq 0x20(%rsp), %r14 | |
// 129: 48 8b 4c 24 18 movq 0x18(%rsp), %rcx | |
// 12e: 74 1f je 0x14f <_JIT_ENTRY+0x14f> | |
// 130: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15 | |
// 134: 48 89 10 movq %rdx, (%rax) | |
// 137: 49 8b 46 18 movq 0x18(%r14), %rax | |
// 13b: 84 c0 testb %al, %al | |
// 13d: 74 78 je 0x1b7 <_JIT_ENTRY+0x1b7> | |
// 13f: 4c 89 f7 movq %r14, %rdi | |
// 142: ff 15 00 00 00 00 callq *(%rip) # 0x148 <_JIT_ENTRY+0x148> | |
// 0000000000000144: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 148: 85 c0 testl %eax, %eax | |
// 14a: 74 6b je 0x1b7 <_JIT_ENTRY+0x1b7> | |
// 14c: 4c 89 f8 movq %r15, %rax | |
// 14f: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x156 <_JIT_ENTRY+0x156> | |
// 0000000000000152: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 156: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 15d: 48 29 d8 subq %rbx, %rax | |
// 160: 48 83 c0 b8 addq $-0x48, %rax | |
// 164: 48 c1 e8 03 shrq $0x3, %rax | |
// 168: 89 43 40 movl %eax, 0x40(%rbx) | |
// 16b: 31 c0 xorl %eax, %eax | |
// 16d: e9 3d ff ff ff jmp 0xaf <_JIT_ENTRY+0xaf> | |
// 172: 83 fd 02 cmpl $0x2, %ebp | |
// 175: 41 bd 01 00 00 00 movl $0x1, %r13d | |
// 17b: 44 0f 43 ed cmovael %ebp, %r13d | |
// 17f: 31 ed xorl %ebp, %ebp | |
// 181: eb 19 jmp 0x19c <_JIT_ENTRY+0x19c> | |
// 183: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 190: 48 ff c5 incq %rbp | |
// 193: 49 39 ed cmpq %rbp, %r13 | |
// 196: 0f 84 5d ff ff ff je 0xf9 <_JIT_ENTRY+0xf9> | |
// 19c: 49 8b 3c ee movq (%r14,%rbp,8), %rdi | |
// 1a0: 48 8b 07 movq (%rdi), %rax | |
// 1a3: 85 c0 testl %eax, %eax | |
// 1a5: 78 e9 js 0x190 <_JIT_ENTRY+0x190> | |
// 1a7: 48 ff c8 decq %rax | |
// 1aa: 48 89 07 movq %rax, (%rdi) | |
// 1ad: 75 e1 jne 0x190 <_JIT_ENTRY+0x190> | |
// 1af: ff 15 00 00 00 00 callq *(%rip) # 0x1b5 <_JIT_ENTRY+0x1b5> | |
// 00000000000001b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 1b5: eb d9 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 1b7: 48 89 df movq %rbx, %rdi | |
// 1ba: 4c 89 fe movq %r15, %rsi | |
// 1bd: 4c 89 f2 movq %r14, %rdx | |
// 1c0: 48 83 c4 28 addq $0x28, %rsp | |
// 1c4: 5b popq %rbx | |
// 1c5: 41 5c popq %r12 | |
// 1c7: 41 5d popq %r13 | |
// 1c9: 41 5e popq %r14 | |
// 1cb: 41 5f popq %r15 | |
// 1cd: 5d popq %rbp | |
// 1ce: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d4 <_JIT_ENTRY+0x1d4> | |
// 00000000000001d0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1ce: | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_code_body[463] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xf9, 0x89, 0xf8, | |
0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, 0x8b, 0x04, | |
0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xfe, | |
0x4c, 0x63, 0xd6, 0x0f, 0xb7, 0xc9, 0x48, 0x89, | |
0xce, 0x48, 0xf7, 0xde, 0x8d, 0x6f, 0x01, 0x48, | |
0x85, 0xc0, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, | |
0xce, 0x0f, 0x44, 0xef, 0x4f, 0x8b, 0x24, 0xd7, | |
0x49, 0x8b, 0x74, 0x24, 0x08, 0x48, 0x3b, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x75, 0x21, 0x4d, 0x8b, | |
0x44, 0x24, 0x28, 0x41, 0x81, 0x78, 0x10, 0x80, | |
0x00, 0x00, 0x00, 0x75, 0x12, 0x4d, 0x8d, 0x34, | |
0xcf, 0x49, 0x8b, 0x3e, 0x48, 0x8b, 0x4f, 0x08, | |
0x49, 0x3b, 0x4c, 0x24, 0x10, 0x74, 0x3f, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf, | |
0x49, 0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03, | |
0x44, 0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, | |
0x54, 0x24, 0x10, 0x4c, 0x89, 0x4c, 0x24, 0x18, | |
0x48, 0x89, 0x54, 0x24, 0x20, 0x48, 0x85, 0xc0, | |
0x41, 0x0f, 0x94, 0xc5, 0x8d, 0x45, 0xff, 0x49, | |
0x8d, 0x76, 0x08, 0x48, 0x63, 0xd0, 0x41, 0xff, | |
0x50, 0x08, 0x48, 0x89, 0x44, 0x24, 0x08, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66, 0x85, | |
0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84, 0xc5, 0x74, | |
0x79, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x4c, | |
0x8b, 0x74, 0x24, 0x10, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b, 0x54, 0x24, | |
0x08, 0x48, 0x85, 0xd2, 0x4c, 0x8b, 0x74, 0x24, | |
0x20, 0x48, 0x8b, 0x4c, 0x24, 0x18, 0x74, 0x1f, | |
0x4d, 0x8d, 0x3c, 0xcf, 0x48, 0x89, 0x10, 0x49, | |
0x8b, 0x46, 0x18, 0x84, 0xc0, 0x74, 0x78, 0x4c, | |
0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x74, 0x6b, 0x4c, 0x89, 0xf8, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, | |
0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, | |
0x89, 0x43, 0x40, 0x31, 0xc0, 0xe9, 0x3d, 0xff, | |
0xff, 0xff, 0x83, 0xfd, 0x02, 0x41, 0xbd, 0x01, | |
0x00, 0x00, 0x00, 0x44, 0x0f, 0x43, 0xed, 0x31, | |
0xed, 0xeb, 0x19, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xff, 0xc5, 0x49, 0x39, 0xed, 0x0f, 0x84, | |
0x5d, 0xff, 0xff, 0xff, 0x49, 0x8b, 0x3c, 0xee, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48, | |
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2, | |
0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, | |
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_code_holes[10] = { | |
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x58, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xa1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xea, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x114, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x144, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x152, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x1b1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyMethodDescr_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &_Py_Dealloc+0x0 | |
// 28: &_Py_HandlePending+0x0 | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
}; | |
// _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS | |
// | |
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 28 subq $0x28, %rsp | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1b: 0f b7 f9 movzwl %cx, %edi | |
// 1e: 89 f8 movl %edi, %eax | |
// 20: f7 d0 notl %eax | |
// 22: 4c 63 c8 movslq %eax, %r9 | |
// 25: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 29: be fe ff ff ff movl $0xfffffffe, %esi # imm = 0xFFFFFFFE | |
// 2e: 29 fe subl %edi, %esi | |
// 30: 4c 63 d6 movslq %esi, %r10 | |
// 33: 0f b7 c9 movzwl %cx, %ecx | |
// 36: 48 89 ce movq %rcx, %rsi | |
// 39: 48 f7 de negq %rsi | |
// 3c: 8d 6f 01 leal 0x1(%rdi), %ebp | |
// 3f: 48 85 c0 testq %rax, %rax | |
// 42: 48 f7 d1 notq %rcx | |
// 45: 48 0f 44 ce cmoveq %rsi, %rcx | |
// 49: 0f 44 ef cmovel %edi, %ebp | |
// 4c: 4f 8b 24 d7 movq (%r15,%r10,8), %r12 | |
// 50: 49 8b 74 24 08 movq 0x8(%r12), %rsi | |
// 55: 48 3b 35 00 00 00 00 cmpq (%rip), %rsi # 0x5c <_JIT_ENTRY+0x5c> | |
// 0000000000000058: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4 | |
// 5c: 75 21 jne 0x7f <_JIT_ENTRY+0x7f> | |
// 5e: 4d 8b 44 24 28 movq 0x28(%r12), %r8 | |
// 63: 41 81 78 10 82 00 00 00 cmpl $0x82, 0x10(%r8) | |
// 6b: 75 12 jne 0x7f <_JIT_ENTRY+0x7f> | |
// 6d: 4d 8d 34 cf leaq (%r15,%rcx,8), %r14 | |
// 71: 49 8b 3e movq (%r14), %rdi | |
// 74: 48 8b 4f 08 movq 0x8(%rdi), %rcx | |
// 78: 49 3b 4c 24 10 cmpq 0x10(%r12), %rcx | |
// 7d: 74 3f je 0xbe <_JIT_ENTRY+0xbe> | |
// 7f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x86 <_JIT_ENTRY+0x86> | |
// 0000000000000082: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 86: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 8d: 49 29 df subq %rbx, %r15 | |
// 90: 49 83 c7 b8 addq $-0x48, %r15 | |
// 94: 49 c1 ef 03 shrq $0x3, %r15 | |
// 98: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 9c: 48 8b 03 movq (%rbx), %rax | |
// 9f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xa5 <_JIT_ENTRY+0xa5> | |
// 00000000000000a1: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// a5: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// a9: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// af: 48 83 c4 28 addq $0x28, %rsp | |
// b3: 5b popq %rbx | |
// b4: 41 5c popq %r12 | |
// b6: 41 5d popq %r13 | |
// b8: 41 5e popq %r14 | |
// ba: 41 5f popq %r15 | |
// bc: 5d popq %rbp | |
// bd: c3 retq | |
// be: 4c 89 54 24 10 movq %r10, 0x10(%rsp) | |
// c3: 4c 89 4c 24 18 movq %r9, 0x18(%rsp) | |
// c8: 48 89 54 24 20 movq %rdx, 0x20(%rsp) | |
// cd: 48 85 c0 testq %rax, %rax | |
// d0: 41 0f 94 c5 sete %r13b | |
// d4: 8d 45 ff leal -0x1(%rbp), %eax | |
// d7: 49 8d 76 08 leaq 0x8(%r14), %rsi | |
// db: 48 63 d0 movslq %eax, %rdx | |
// de: 31 c9 xorl %ecx, %ecx | |
// e0: 41 ff 50 08 callq *0x8(%r8) | |
// e4: 48 89 44 24 08 movq %rax, 0x8(%rsp) | |
// e9: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xf0 <_JIT_ENTRY+0xf0> | |
// 00000000000000ec: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// f0: 66 85 c0 testw %ax, %ax | |
// f3: 0f 94 c0 sete %al | |
// f6: 41 84 c5 testb %al, %r13b | |
// f9: 74 79 je 0x174 <_JIT_ENTRY+0x174> | |
// fb: 49 8b 04 24 movq (%r12), %rax | |
// ff: 85 c0 testl %eax, %eax | |
// 101: 4c 8b 74 24 10 movq 0x10(%rsp), %r14 | |
// 106: 78 12 js 0x11a <_JIT_ENTRY+0x11a> | |
// 108: 48 ff c8 decq %rax | |
// 10b: 49 89 04 24 movq %rax, (%r12) | |
// 10f: 75 09 jne 0x11a <_JIT_ENTRY+0x11a> | |
// 111: 4c 89 e7 movq %r12, %rdi | |
// 114: ff 15 00 00 00 00 callq *(%rip) # 0x11a <_JIT_ENTRY+0x11a> | |
// 0000000000000116: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 11a: 4b 8d 04 f7 leaq (%r15,%r14,8), %rax | |
// 11e: 48 8b 54 24 08 movq 0x8(%rsp), %rdx | |
// 123: 48 85 d2 testq %rdx, %rdx | |
// 126: 4c 8b 74 24 20 movq 0x20(%rsp), %r14 | |
// 12b: 48 8b 4c 24 18 movq 0x18(%rsp), %rcx | |
// 130: 74 1f je 0x151 <_JIT_ENTRY+0x151> | |
// 132: 4d 8d 3c cf leaq (%r15,%rcx,8), %r15 | |
// 136: 48 89 10 movq %rdx, (%rax) | |
// 139: 49 8b 46 18 movq 0x18(%r14), %rax | |
// 13d: 84 c0 testb %al, %al | |
// 13f: 74 76 je 0x1b7 <_JIT_ENTRY+0x1b7> | |
// 141: 4c 89 f7 movq %r14, %rdi | |
// 144: ff 15 00 00 00 00 callq *(%rip) # 0x14a <_JIT_ENTRY+0x14a> | |
// 0000000000000146: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 14a: 85 c0 testl %eax, %eax | |
// 14c: 74 69 je 0x1b7 <_JIT_ENTRY+0x1b7> | |
// 14e: 4c 89 f8 movq %r15, %rax | |
// 151: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x158 <_JIT_ENTRY+0x158> | |
// 0000000000000154: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 158: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 15f: 48 29 d8 subq %rbx, %rax | |
// 162: 48 83 c0 b8 addq $-0x48, %rax | |
// 166: 48 c1 e8 03 shrq $0x3, %rax | |
// 16a: 89 43 40 movl %eax, 0x40(%rbx) | |
// 16d: 31 c0 xorl %eax, %eax | |
// 16f: e9 3b ff ff ff jmp 0xaf <_JIT_ENTRY+0xaf> | |
// 174: 83 fd 02 cmpl $0x2, %ebp | |
// 177: 41 bd 01 00 00 00 movl $0x1, %r13d | |
// 17d: 44 0f 43 ed cmovael %ebp, %r13d | |
// 181: 31 ed xorl %ebp, %ebp | |
// 183: eb 17 jmp 0x19c <_JIT_ENTRY+0x19c> | |
// 185: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 190: 48 ff c5 incq %rbp | |
// 193: 49 39 ed cmpq %rbp, %r13 | |
// 196: 0f 84 5f ff ff ff je 0xfb <_JIT_ENTRY+0xfb> | |
// 19c: 49 8b 3c ee movq (%r14,%rbp,8), %rdi | |
// 1a0: 48 8b 07 movq (%rdi), %rax | |
// 1a3: 85 c0 testl %eax, %eax | |
// 1a5: 78 e9 js 0x190 <_JIT_ENTRY+0x190> | |
// 1a7: 48 ff c8 decq %rax | |
// 1aa: 48 89 07 movq %rax, (%rdi) | |
// 1ad: 75 e1 jne 0x190 <_JIT_ENTRY+0x190> | |
// 1af: ff 15 00 00 00 00 callq *(%rip) # 0x1b5 <_JIT_ENTRY+0x1b5> | |
// 00000000000001b1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 1b5: eb d9 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 1b7: 48 89 df movq %rbx, %rdi | |
// 1ba: 4c 89 fe movq %r15, %rsi | |
// 1bd: 4c 89 f2 movq %r14, %rdx | |
// 1c0: 48 83 c4 28 addq $0x28, %rsp | |
// 1c4: 5b popq %rbx | |
// 1c5: 41 5c popq %r12 | |
// 1c7: 41 5d popq %r13 | |
// 1c9: 41 5e popq %r14 | |
// 1cb: 41 5f popq %r15 | |
// 1cd: 5d popq %rbp | |
// 1ce: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d4 <_JIT_ENTRY+0x1d4> | |
// 00000000000001d0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1ce: | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_code_body[463] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x28, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x0f, 0xb7, 0xf9, 0x89, 0xf8, | |
0xf7, 0xd0, 0x4c, 0x63, 0xc8, 0x4a, 0x8b, 0x04, | |
0xce, 0xbe, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xfe, | |
0x4c, 0x63, 0xd6, 0x0f, 0xb7, 0xc9, 0x48, 0x89, | |
0xce, 0x48, 0xf7, 0xde, 0x8d, 0x6f, 0x01, 0x48, | |
0x85, 0xc0, 0x48, 0xf7, 0xd1, 0x48, 0x0f, 0x44, | |
0xce, 0x0f, 0x44, 0xef, 0x4f, 0x8b, 0x24, 0xd7, | |
0x49, 0x8b, 0x74, 0x24, 0x08, 0x48, 0x3b, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x75, 0x21, 0x4d, 0x8b, | |
0x44, 0x24, 0x28, 0x41, 0x81, 0x78, 0x10, 0x82, | |
0x00, 0x00, 0x00, 0x75, 0x12, 0x4d, 0x8d, 0x34, | |
0xcf, 0x49, 0x8b, 0x3e, 0x48, 0x8b, 0x4f, 0x08, | |
0x49, 0x3b, 0x4c, 0x24, 0x10, 0x74, 0x3f, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdf, | |
0x49, 0x83, 0xc7, 0xb8, 0x49, 0xc1, 0xef, 0x03, | |
0x44, 0x89, 0x7b, 0x40, 0x48, 0x8b, 0x03, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, | |
0x54, 0x24, 0x10, 0x4c, 0x89, 0x4c, 0x24, 0x18, | |
0x48, 0x89, 0x54, 0x24, 0x20, 0x48, 0x85, 0xc0, | |
0x41, 0x0f, 0x94, 0xc5, 0x8d, 0x45, 0xff, 0x49, | |
0x8d, 0x76, 0x08, 0x48, 0x63, 0xd0, 0x31, 0xc9, | |
0x41, 0xff, 0x50, 0x08, 0x48, 0x89, 0x44, 0x24, | |
0x08, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x66, 0x85, 0xc0, 0x0f, 0x94, 0xc0, 0x41, 0x84, | |
0xc5, 0x74, 0x79, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x4c, 0x8b, 0x74, 0x24, 0x10, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, | |
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x4b, 0x8d, 0x04, 0xf7, 0x48, 0x8b, | |
0x54, 0x24, 0x08, 0x48, 0x85, 0xd2, 0x4c, 0x8b, | |
0x74, 0x24, 0x20, 0x48, 0x8b, 0x4c, 0x24, 0x18, | |
0x74, 0x1f, 0x4d, 0x8d, 0x3c, 0xcf, 0x48, 0x89, | |
0x10, 0x49, 0x8b, 0x46, 0x18, 0x84, 0xc0, 0x74, | |
0x76, 0x4c, 0x89, 0xf7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xc0, 0x74, 0x69, 0x4c, 0x89, | |
0xf8, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, | |
0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0xe9, | |
0x3b, 0xff, 0xff, 0xff, 0x83, 0xfd, 0x02, 0x41, | |
0xbd, 0x01, 0x00, 0x00, 0x00, 0x44, 0x0f, 0x43, | |
0xed, 0x31, 0xed, 0xeb, 0x17, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xff, 0xc5, 0x49, 0x39, 0xed, 0x0f, 0x84, | |
0x5f, 0xff, 0xff, 0xff, 0x49, 0x8b, 0x3c, 0xee, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0xe9, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0xe1, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xd9, 0x48, | |
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2, | |
0x48, 0x83, 0xc4, 0x28, 0x5b, 0x41, 0x5c, 0x41, | |
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_code_holes[10] = { | |
{0x17, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x58, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xa1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xec, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x116, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x146, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x154, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x1b1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyMethodDescr_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &_Py_Dealloc+0x0 | |
// 28: &_Py_HandlePending+0x0 | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
}; | |
// _CALL_METHOD_DESCRIPTOR_NOARGS | |
// | |
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_NOARGS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 18: 0f b7 c8 movzwl %ax, %ecx | |
// 1b: 89 ce movl %ecx, %esi | |
// 1d: f7 d6 notl %esi | |
// 1f: 48 63 ee movslq %esi, %rbp | |
// 22: 0f b7 c0 movzwl %ax, %eax | |
// 25: 48 89 c6 movq %rax, %rsi | |
// 28: 48 f7 de negq %rsi | |
// 2b: 45 31 c0 xorl %r8d, %r8d | |
// 2e: 66 85 c0 testw %ax, %ax | |
// 31: 41 0f 94 c0 sete %r8b | |
// 35: 45 31 c9 xorl %r9d, %r9d | |
// 38: 66 83 f8 01 cmpw $0x1, %ax | |
// 3c: 41 0f 94 c1 sete %r9b | |
// 40: 48 83 3c eb 00 cmpq $0x0, (%rbx,%rbp,8) | |
// 45: 49 89 d7 movq %rdx, %r15 | |
// 48: 48 f7 d0 notq %rax | |
// 4b: 48 0f 44 c6 cmoveq %rsi, %rax | |
// 4f: 49 89 fe movq %rdi, %r14 | |
// 52: 45 0f 44 c1 cmovel %r9d, %r8d | |
// 56: 41 80 f8 01 cmpb $0x1, %r8b | |
// 5a: 0f 85 fa 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a> | |
// 60: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE | |
// 65: 29 ca subl %ecx, %edx | |
// 67: 4c 63 ea movslq %edx, %r13 | |
// 6a: 4e 8b 24 eb movq (%rbx,%r13,8), %r12 | |
// 6e: 49 8b 4c 24 08 movq 0x8(%r12), %rcx | |
// 73: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0x7a <_JIT_ENTRY+0x7a> | |
// 0000000000000076: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4 | |
// 7a: 0f 85 da 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a> | |
// 80: 48 8b 14 c3 movq (%rbx,%rax,8), %rdx | |
// 84: 48 8b 42 08 movq 0x8(%rdx), %rax | |
// 88: 49 3b 44 24 10 cmpq 0x10(%r12), %rax | |
// 8d: 0f 85 c7 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a> | |
// 93: 49 8b 44 24 28 movq 0x28(%r12), %rax | |
// 98: 83 78 10 04 cmpl $0x4, 0x10(%rax) | |
// 9c: 0f 85 b8 00 00 00 jne 0x15a <_JIT_ENTRY+0x15a> | |
// a2: 4c 8b 40 08 movq 0x8(%rax), %r8 | |
// a6: 41 8b 47 34 movl 0x34(%r15), %eax | |
// aa: 8d 48 ff leal -0x1(%rax), %ecx | |
// ad: 41 89 4f 34 movl %ecx, 0x34(%r15) | |
// b1: 85 c0 testl %eax, %eax | |
// b3: 48 89 54 24 08 movq %rdx, 0x8(%rsp) | |
// b8: 0f 8e db 00 00 00 jle 0x199 <_JIT_ENTRY+0x199> | |
// be: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// c3: 31 f6 xorl %esi, %esi | |
// c5: 41 ff d0 callq *%r8 | |
// c8: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// cd: 41 ff 47 34 incl 0x34(%r15) | |
// d1: 48 8b 0f movq (%rdi), %rcx | |
// d4: 85 c9 testl %ecx, %ecx | |
// d6: 78 18 js 0xf0 <_JIT_ENTRY+0xf0> | |
// d8: 48 ff c9 decq %rcx | |
// db: 48 89 0f movq %rcx, (%rdi) | |
// de: 75 10 jne 0xf0 <_JIT_ENTRY+0xf0> | |
// e0: 48 89 44 24 08 movq %rax, 0x8(%rsp) | |
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb> | |
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// eb: 48 8b 44 24 08 movq 0x8(%rsp), %rax | |
// f0: 49 8b 0c 24 movq (%r12), %rcx | |
// f4: 85 c9 testl %ecx, %ecx | |
// f6: 78 18 js 0x110 <_JIT_ENTRY+0x110> | |
// f8: 48 ff c9 decq %rcx | |
// fb: 49 89 0c 24 movq %rcx, (%r12) | |
// ff: 75 0f jne 0x110 <_JIT_ENTRY+0x110> | |
// 101: 4c 89 e7 movq %r12, %rdi | |
// 104: 49 89 c4 movq %rax, %r12 | |
// 107: ff 15 00 00 00 00 callq *(%rip) # 0x10d <_JIT_ENTRY+0x10d> | |
// 0000000000000109: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 10d: 4c 89 e0 movq %r12, %rax | |
// 110: 4a 8d 0c eb leaq (%rbx,%r13,8), %rcx | |
// 114: 48 85 c0 testq %rax, %rax | |
// 117: 0f 84 9f 00 00 00 je 0x1bc <_JIT_ENTRY+0x1bc> | |
// 11d: 48 8d 1c eb leaq (%rbx,%rbp,8), %rbx | |
// 121: 48 89 01 movq %rax, (%rcx) | |
// 124: 49 8b 47 18 movq 0x18(%r15), %rax | |
// 128: 84 c0 testb %al, %al | |
// 12a: 74 11 je 0x13d <_JIT_ENTRY+0x13d> | |
// 12c: 4c 89 ff movq %r15, %rdi | |
// 12f: ff 15 00 00 00 00 callq *(%rip) # 0x135 <_JIT_ENTRY+0x135> | |
// 0000000000000131: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 135: 85 c0 testl %eax, %eax | |
// 137: 0f 85 82 00 00 00 jne 0x1bf <_JIT_ENTRY+0x1bf> | |
// 13d: 4c 89 f7 movq %r14, %rdi | |
// 140: 48 89 de movq %rbx, %rsi | |
// 143: 4c 89 fa movq %r15, %rdx | |
// 146: 48 83 c4 18 addq $0x18, %rsp | |
// 14a: 5b popq %rbx | |
// 14b: 41 5c popq %r12 | |
// 14d: 41 5d popq %r13 | |
// 14f: 41 5e popq %r14 | |
// 151: 41 5f popq %r15 | |
// 153: 5d popq %rbp | |
// 154: ff 25 00 00 00 00 jmpq *(%rip) # 0x15a <_JIT_ENTRY+0x15a> | |
// 0000000000000156: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 15a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x161 <_JIT_ENTRY+0x161> | |
// 000000000000015d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 161: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 168: 4c 29 f3 subq %r14, %rbx | |
// 16b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 16f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 173: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 177: 49 8b 06 movq (%r14), %rax | |
// 17a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x180 <_JIT_ENTRY+0x180> | |
// 000000000000017c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 180: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 184: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 18a: 48 83 c4 18 addq $0x18, %rsp | |
// 18e: 5b popq %rbx | |
// 18f: 41 5c popq %r12 | |
// 191: 41 5d popq %r13 | |
// 193: 41 5e popq %r14 | |
// 195: 41 5f popq %r15 | |
// 197: 5d popq %rbp | |
// 198: c3 retq | |
// 199: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x1a0 <_JIT_ENTRY+0x1a0> | |
// 000000000000019c: R_X86_64_PC32 .L.str.20-0x4 | |
// 1a0: 4c 89 ff movq %r15, %rdi | |
// 1a3: 4c 89 44 24 10 movq %r8, 0x10(%rsp) | |
// 1a8: ff 15 00 00 00 00 callq *(%rip) # 0x1ae <_JIT_ENTRY+0x1ae> | |
// 00000000000001aa: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4 | |
// 1ae: 4c 8b 44 24 10 movq 0x10(%rsp), %r8 | |
// 1b3: 85 c0 testl %eax, %eax | |
// 1b5: 75 08 jne 0x1bf <_JIT_ENTRY+0x1bf> | |
// 1b7: e9 02 ff ff ff jmp 0xbe <_JIT_ENTRY+0xbe> | |
// 1bc: 48 89 cb movq %rcx, %rbx | |
// 1bf: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1c6 <_JIT_ENTRY+0x1c6> | |
// 00000000000001c2: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 1c6: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 1cd: 4c 29 f3 subq %r14, %rbx | |
// 1d0: 48 83 c3 b8 addq $-0x48, %rbx | |
// 1d4: 48 c1 eb 03 shrq $0x3, %rbx | |
// 1d8: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 1dc: 31 c0 xorl %eax, %eax | |
// 1de: eb aa jmp 0x18a <_JIT_ENTRY+0x18a> | |
// 1e0: | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_NOARGS_code_body[481] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x48, 0x89, | |
0xf3, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x0f, 0xb7, 0xc8, 0x89, 0xce, 0xf7, 0xd6, 0x48, | |
0x63, 0xee, 0x0f, 0xb7, 0xc0, 0x48, 0x89, 0xc6, | |
0x48, 0xf7, 0xde, 0x45, 0x31, 0xc0, 0x66, 0x85, | |
0xc0, 0x41, 0x0f, 0x94, 0xc0, 0x45, 0x31, 0xc9, | |
0x66, 0x83, 0xf8, 0x01, 0x41, 0x0f, 0x94, 0xc1, | |
0x48, 0x83, 0x3c, 0xeb, 0x00, 0x49, 0x89, 0xd7, | |
0x48, 0xf7, 0xd0, 0x48, 0x0f, 0x44, 0xc6, 0x49, | |
0x89, 0xfe, 0x45, 0x0f, 0x44, 0xc1, 0x41, 0x80, | |
0xf8, 0x01, 0x0f, 0x85, 0xfa, 0x00, 0x00, 0x00, | |
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xca, 0x4c, | |
0x63, 0xea, 0x4e, 0x8b, 0x24, 0xeb, 0x49, 0x8b, | |
0x4c, 0x24, 0x08, 0x48, 0x3b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x14, 0xc3, 0x48, 0x8b, 0x42, 0x08, | |
0x49, 0x3b, 0x44, 0x24, 0x10, 0x0f, 0x85, 0xc7, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x28, | |
0x83, 0x78, 0x10, 0x04, 0x0f, 0x85, 0xb8, 0x00, | |
0x00, 0x00, 0x4c, 0x8b, 0x40, 0x08, 0x41, 0x8b, | |
0x47, 0x34, 0x8d, 0x48, 0xff, 0x41, 0x89, 0x4f, | |
0x34, 0x85, 0xc0, 0x48, 0x89, 0x54, 0x24, 0x08, | |
0x0f, 0x8e, 0xdb, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x7c, 0x24, 0x08, 0x31, 0xf6, 0x41, 0xff, 0xd0, | |
0x48, 0x8b, 0x7c, 0x24, 0x08, 0x41, 0xff, 0x47, | |
0x34, 0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x18, | |
0x48, 0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x10, | |
0x48, 0x89, 0x44, 0x24, 0x08, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x44, 0x24, 0x08, | |
0x49, 0x8b, 0x0c, 0x24, 0x85, 0xc9, 0x78, 0x18, | |
0x48, 0xff, 0xc9, 0x49, 0x89, 0x0c, 0x24, 0x75, | |
0x0f, 0x4c, 0x89, 0xe7, 0x49, 0x89, 0xc4, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe0, | |
0x4a, 0x8d, 0x0c, 0xeb, 0x48, 0x85, 0xc0, 0x0f, | |
0x84, 0x9f, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x1c, | |
0xeb, 0x48, 0x89, 0x01, 0x49, 0x8b, 0x47, 0x18, | |
0x84, 0xc0, 0x74, 0x11, 0x4c, 0x89, 0xff, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, | |
0x85, 0x82, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xf7, | |
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, | |
0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49, | |
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, | |
0x00, 0x00, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xc3, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xff, 0x4c, 0x89, 0x44, 0x24, 0x10, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x8b, | |
0x44, 0x24, 0x10, 0x85, 0xc0, 0x75, 0x08, 0xe9, | |
0x02, 0xff, 0xff, 0xff, 0x48, 0x89, 0xcb, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, | |
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, | |
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0xeb, 0xaa, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_NOARGS_code_holes[12] = { | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x76, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x109, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x131, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x156, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x15d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x17c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x19c, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x1aa, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x1c2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
}; | |
// 0: ' while calling a Python object\x00' | |
// 1f: 00 | |
// 20: OPARG | |
// 28: &PyMethodDescr_Type+0x0 | |
// 30: &_Py_Dealloc+0x0 | |
// 38: &_Py_HandlePending+0x0 | |
// 40: CONTINUE | |
// 48: EXECUTOR | |
// 50: TARGET | |
// 58: &_Py_CheckRecursiveCall+0x0 | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_NOARGS_data_body[97] = { | |
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63, | |
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, | |
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20, | |
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_NOARGS_data_holes[9] = { | |
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0}, | |
}; | |
// _CALL_METHOD_DESCRIPTOR_O | |
// | |
// /tmp/tmp2mfmnab2/_CALL_METHOD_DESCRIPTOR_O.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d7 movq %rdx, %r15 | |
// 11: 49 89 f6 movq %rsi, %r14 | |
// 14: 48 89 fb movq %rdi, %rbx | |
// 17: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1e: 0f b7 c8 movzwl %ax, %ecx | |
// 21: 89 ca movl %ecx, %edx | |
// 23: f7 d2 notl %edx | |
// 25: 48 63 ea movslq %edx, %rbp | |
// 28: 31 d2 xorl %edx, %edx | |
// 2a: 66 83 f8 01 cmpw $0x1, %ax | |
// 2e: 0f 94 c2 sete %dl | |
// 31: 31 f6 xorl %esi, %esi | |
// 33: 66 83 f8 02 cmpw $0x2, %ax | |
// 37: 40 0f 94 c6 sete %sil | |
// 3b: 0f b7 c0 movzwl %ax, %eax | |
// 3e: 48 89 c7 movq %rax, %rdi | |
// 41: 48 f7 df negq %rdi | |
// 44: 49 83 3c ee 00 cmpq $0x0, (%r14,%rbp,8) | |
// 49: 0f 44 d6 cmovel %esi, %edx | |
// 4c: 48 f7 d0 notq %rax | |
// 4f: 48 0f 44 c7 cmoveq %rdi, %rax | |
// 53: 80 fa 01 cmpb $0x1, %dl | |
// 56: 75 36 jne 0x8e <_JIT_ENTRY+0x8e> | |
// 58: ba fe ff ff ff movl $0xfffffffe, %edx # imm = 0xFFFFFFFE | |
// 5d: 29 ca subl %ecx, %edx | |
// 5f: 4c 63 ea movslq %edx, %r13 | |
// 62: 4f 8b 24 ee movq (%r14,%r13,8), %r12 | |
// 66: 49 8b 4c 24 08 movq 0x8(%r12), %rcx | |
// 6b: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0x72 <_JIT_ENTRY+0x72> | |
// 000000000000006e: R_X86_64_REX_GOTPCRELX PyMethodDescr_Type-0x4 | |
// 72: 75 1a jne 0x8e <_JIT_ENTRY+0x8e> | |
// 74: 49 8b 4c 24 28 movq 0x28(%r12), %rcx | |
// 79: 83 79 10 08 cmpl $0x8, 0x10(%rcx) | |
// 7d: 75 0f jne 0x8e <_JIT_ENTRY+0x8e> | |
// 7f: 49 8b 3c c6 movq (%r14,%rax,8), %rdi | |
// 83: 48 8b 57 08 movq 0x8(%rdi), %rdx | |
// 87: 49 3b 54 24 10 cmpq 0x10(%r12), %rdx | |
// 8c: 74 3f je 0xcd <_JIT_ENTRY+0xcd> | |
// 8e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x95 <_JIT_ENTRY+0x95> | |
// 0000000000000091: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 95: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 9c: 49 29 de subq %rbx, %r14 | |
// 9f: 49 83 c6 b8 addq $-0x48, %r14 | |
// a3: 49 c1 ee 03 shrq $0x3, %r14 | |
// a7: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// ab: 48 8b 03 movq (%rbx), %rax | |
// ae: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xb4 <_JIT_ENTRY+0xb4> | |
// 00000000000000b0: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// b4: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// b8: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// be: 48 83 c4 18 addq $0x18, %rsp | |
// c2: 5b popq %rbx | |
// c3: 41 5c popq %r12 | |
// c5: 41 5d popq %r13 | |
// c7: 41 5e popq %r14 | |
// c9: 41 5f popq %r15 | |
// cb: 5d popq %rbp | |
// cc: c3 retq | |
// cd: 49 8b 74 c6 08 movq 0x8(%r14,%rax,8), %rsi | |
// d2: 48 8b 51 08 movq 0x8(%rcx), %rdx | |
// d6: 41 8b 47 34 movl 0x34(%r15), %eax | |
// da: 8d 48 ff leal -0x1(%rax), %ecx | |
// dd: 41 89 4f 34 movl %ecx, 0x34(%r15) | |
// e1: 85 c0 testl %eax, %eax | |
// e3: 48 89 74 24 08 movq %rsi, 0x8(%rsp) | |
// e8: 48 89 3c 24 movq %rdi, (%rsp) | |
// ec: 0f 8e af 00 00 00 jle 0x1a1 <_JIT_ENTRY+0x1a1> | |
// f2: 48 8b 3c 24 movq (%rsp), %rdi | |
// f6: ff d2 callq *%rdx | |
// f8: 48 8b 3c 24 movq (%rsp), %rdi | |
// fc: 41 ff 47 34 incl 0x34(%r15) | |
// 100: 48 8b 0f movq (%rdi), %rcx | |
// 103: 85 c9 testl %ecx, %ecx | |
// 105: 78 16 js 0x11d <_JIT_ENTRY+0x11d> | |
// 107: 48 ff c9 decq %rcx | |
// 10a: 48 89 0f movq %rcx, (%rdi) | |
// 10d: 75 0e jne 0x11d <_JIT_ENTRY+0x11d> | |
// 10f: 48 89 04 24 movq %rax, (%rsp) | |
// 113: ff 15 00 00 00 00 callq *(%rip) # 0x119 <_JIT_ENTRY+0x119> | |
// 0000000000000115: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 119: 48 8b 04 24 movq (%rsp), %rax | |
// 11d: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// 122: 48 8b 0f movq (%rdi), %rcx | |
// 125: 85 c9 testl %ecx, %ecx | |
// 127: 78 16 js 0x13f <_JIT_ENTRY+0x13f> | |
// 129: 48 ff c9 decq %rcx | |
// 12c: 48 89 0f movq %rcx, (%rdi) | |
// 12f: 75 0e jne 0x13f <_JIT_ENTRY+0x13f> | |
// 131: 48 89 04 24 movq %rax, (%rsp) | |
// 135: ff 15 00 00 00 00 callq *(%rip) # 0x13b <_JIT_ENTRY+0x13b> | |
// 0000000000000137: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 13b: 48 8b 04 24 movq (%rsp), %rax | |
// 13f: 49 8b 0c 24 movq (%r12), %rcx | |
// 143: 85 c9 testl %ecx, %ecx | |
// 145: 78 18 js 0x15f <_JIT_ENTRY+0x15f> | |
// 147: 48 ff c9 decq %rcx | |
// 14a: 49 89 0c 24 movq %rcx, (%r12) | |
// 14e: 75 0f jne 0x15f <_JIT_ENTRY+0x15f> | |
// 150: 4c 89 e7 movq %r12, %rdi | |
// 153: 49 89 c4 movq %rax, %r12 | |
// 156: ff 15 00 00 00 00 callq *(%rip) # 0x15c <_JIT_ENTRY+0x15c> | |
// 0000000000000158: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 15c: 4c 89 e0 movq %r12, %rax | |
// 15f: 4b 8d 0c ee leaq (%r14,%r13,8), %rcx | |
// 163: 48 85 c0 testq %rax, %rax | |
// 166: 74 61 je 0x1c9 <_JIT_ENTRY+0x1c9> | |
// 168: 4d 8d 34 ee leaq (%r14,%rbp,8), %r14 | |
// 16c: 48 89 01 movq %rax, (%rcx) | |
// 16f: 49 8b 47 18 movq 0x18(%r15), %rax | |
// 173: 84 c0 testb %al, %al | |
// 175: 74 0d je 0x184 <_JIT_ENTRY+0x184> | |
// 177: 4c 89 ff movq %r15, %rdi | |
// 17a: ff 15 00 00 00 00 callq *(%rip) # 0x180 <_JIT_ENTRY+0x180> | |
// 000000000000017c: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 180: 85 c0 testl %eax, %eax | |
// 182: 75 48 jne 0x1cc <_JIT_ENTRY+0x1cc> | |
// 184: 48 89 df movq %rbx, %rdi | |
// 187: 4c 89 f6 movq %r14, %rsi | |
// 18a: 4c 89 fa movq %r15, %rdx | |
// 18d: 48 83 c4 18 addq $0x18, %rsp | |
// 191: 5b popq %rbx | |
// 192: 41 5c popq %r12 | |
// 194: 41 5d popq %r13 | |
// 196: 41 5e popq %r14 | |
// 198: 41 5f popq %r15 | |
// 19a: 5d popq %rbp | |
// 19b: ff 25 00 00 00 00 jmpq *(%rip) # 0x1a1 <_JIT_ENTRY+0x1a1> | |
// 000000000000019d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1a1: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x1a8 <_JIT_ENTRY+0x1a8> | |
// 00000000000001a4: R_X86_64_PC32 .L.str.20-0x4 | |
// 1a8: 4c 89 ff movq %r15, %rdi | |
// 1ab: 48 89 54 24 10 movq %rdx, 0x10(%rsp) | |
// 1b0: ff 15 00 00 00 00 callq *(%rip) # 0x1b6 <_JIT_ENTRY+0x1b6> | |
// 00000000000001b2: R_X86_64_GOTPCRELX _Py_CheckRecursiveCall-0x4 | |
// 1b6: 48 8b 54 24 10 movq 0x10(%rsp), %rdx | |
// 1bb: 48 8b 74 24 08 movq 0x8(%rsp), %rsi | |
// 1c0: 85 c0 testl %eax, %eax | |
// 1c2: 75 08 jne 0x1cc <_JIT_ENTRY+0x1cc> | |
// 1c4: e9 29 ff ff ff jmp 0xf2 <_JIT_ENTRY+0xf2> | |
// 1c9: 49 89 ce movq %rcx, %r14 | |
// 1cc: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1d3 <_JIT_ENTRY+0x1d3> | |
// 00000000000001cf: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 1d3: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 1da: 49 29 de subq %rbx, %r14 | |
// 1dd: 49 83 c6 b8 addq $-0x48, %r14 | |
// 1e1: 49 c1 ee 03 shrq $0x3, %r14 | |
// 1e5: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 1e9: 31 c0 xorl %eax, %eax | |
// 1eb: e9 ce fe ff ff jmp 0xbe <_JIT_ENTRY+0xbe> | |
// 1f0: | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_O_code_body[497] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb7, | |
0xc8, 0x89, 0xca, 0xf7, 0xd2, 0x48, 0x63, 0xea, | |
0x31, 0xd2, 0x66, 0x83, 0xf8, 0x01, 0x0f, 0x94, | |
0xc2, 0x31, 0xf6, 0x66, 0x83, 0xf8, 0x02, 0x40, | |
0x0f, 0x94, 0xc6, 0x0f, 0xb7, 0xc0, 0x48, 0x89, | |
0xc7, 0x48, 0xf7, 0xdf, 0x49, 0x83, 0x3c, 0xee, | |
0x00, 0x0f, 0x44, 0xd6, 0x48, 0xf7, 0xd0, 0x48, | |
0x0f, 0x44, 0xc7, 0x80, 0xfa, 0x01, 0x75, 0x36, | |
0xba, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xca, 0x4c, | |
0x63, 0xea, 0x4f, 0x8b, 0x24, 0xee, 0x49, 0x8b, | |
0x4c, 0x24, 0x08, 0x48, 0x3b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x75, 0x1a, 0x49, 0x8b, 0x4c, 0x24, | |
0x28, 0x83, 0x79, 0x10, 0x08, 0x75, 0x0f, 0x49, | |
0x8b, 0x3c, 0xc6, 0x48, 0x8b, 0x57, 0x08, 0x49, | |
0x3b, 0x54, 0x24, 0x10, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x49, 0x8b, 0x74, | |
0xc6, 0x08, 0x48, 0x8b, 0x51, 0x08, 0x41, 0x8b, | |
0x47, 0x34, 0x8d, 0x48, 0xff, 0x41, 0x89, 0x4f, | |
0x34, 0x85, 0xc0, 0x48, 0x89, 0x74, 0x24, 0x08, | |
0x48, 0x89, 0x3c, 0x24, 0x0f, 0x8e, 0xaf, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x3c, 0x24, 0xff, 0xd2, | |
0x48, 0x8b, 0x3c, 0x24, 0x41, 0xff, 0x47, 0x34, | |
0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, 0x16, 0x48, | |
0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, 0x0e, 0x48, | |
0x89, 0x04, 0x24, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x04, 0x24, 0x48, 0x8b, 0x7c, | |
0x24, 0x08, 0x48, 0x8b, 0x0f, 0x85, 0xc9, 0x78, | |
0x16, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x0f, 0x75, | |
0x0e, 0x48, 0x89, 0x04, 0x24, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x04, 0x24, 0x49, | |
0x8b, 0x0c, 0x24, 0x85, 0xc9, 0x78, 0x18, 0x48, | |
0xff, 0xc9, 0x49, 0x89, 0x0c, 0x24, 0x75, 0x0f, | |
0x4c, 0x89, 0xe7, 0x49, 0x89, 0xc4, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe0, 0x4b, | |
0x8d, 0x0c, 0xee, 0x48, 0x85, 0xc0, 0x74, 0x61, | |
0x4d, 0x8d, 0x34, 0xee, 0x48, 0x89, 0x01, 0x49, | |
0x8b, 0x47, 0x18, 0x84, 0xc0, 0x74, 0x0d, 0x4c, | |
0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x75, 0x48, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xff, 0x48, 0x89, 0x54, 0x24, 0x10, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x54, 0x24, 0x10, 0x48, 0x8b, 0x74, 0x24, 0x08, | |
0x85, 0xc0, 0x75, 0x08, 0xe9, 0x29, 0xff, 0xff, | |
0xff, 0x49, 0x89, 0xce, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, | |
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, | |
0x40, 0x31, 0xc0, 0xe9, 0xce, 0xfe, 0xff, 0xff, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_O_code_holes[13] = { | |
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x6e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x91, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xb0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x115, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x137, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x158, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x17c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x19d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x1a4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x1b2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x1cf, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: ' while calling a Python object\x00' | |
// 1f: 00 | |
// 20: OPARG | |
// 28: &PyMethodDescr_Type+0x0 | |
// 30: EXECUTOR | |
// 38: TARGET | |
// 40: &_Py_Dealloc+0x0 | |
// 48: &_Py_HandlePending+0x0 | |
// 50: CONTINUE | |
// 58: &_Py_CheckRecursiveCall+0x0 | |
static const unsigned char _CALL_METHOD_DESCRIPTOR_O_data_body[97] = { | |
0x20, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x20, 0x63, | |
0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x20, 0x61, | |
0x20, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x20, | |
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_METHOD_DESCRIPTOR_O_data_holes[9] = { | |
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethodDescr_Type, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_CheckRecursiveCall, 0x0}, | |
}; | |
// _CALL_STR_1 | |
// | |
// /tmp/tmp2mfmnab2/_CALL_STR_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1b: 89 c1 movl %eax, %ecx | |
// 1d: f7 d1 notl %ecx | |
// 1f: 4c 63 e1 movslq %ecx, %r12 | |
// 22: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8) | |
// 27: 75 1b jne 0x44 <_JIT_ENTRY+0x44> | |
// 29: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// 2e: 29 c1 subl %eax, %ecx | |
// 30: 48 63 c1 movslq %ecx, %rax | |
// 33: 49 8d 2c c7 leaq (%r15,%rax,8), %rbp | |
// 37: 48 8b 45 00 movq (%rbp), %rax | |
// 3b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x42 <_JIT_ENTRY+0x42> | |
// 000000000000003e: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// 42: 74 3f je 0x83 <_JIT_ENTRY+0x83> | |
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 4b: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 52: 49 29 df subq %rbx, %r15 | |
// 55: 49 83 c7 b8 addq $-0x48, %r15 | |
// 59: 49 c1 ef 03 shrq $0x3, %r15 | |
// 5d: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 61: 48 8b 03 movq (%rbx), %rax | |
// 64: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6a <_JIT_ENTRY+0x6a> | |
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 6a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 6e: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 74: 48 83 c4 08 addq $0x8, %rsp | |
// 78: 5b popq %rbx | |
// 79: 41 5c popq %r12 | |
// 7b: 41 5d popq %r13 | |
// 7d: 41 5e popq %r14 | |
// 7f: 41 5f popq %r15 | |
// 81: 5d popq %rbp | |
// 82: c3 retq | |
// 83: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x8a <_JIT_ENTRY+0x8a> | |
// 0000000000000086: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 8a: 48 c1 e0 03 shlq $0x3, %rax | |
// 8e: 4c 89 f9 movq %r15, %rcx | |
// 91: 48 29 c1 subq %rax, %rcx | |
// 94: 4c 8b 29 movq (%rcx), %r13 | |
// 97: 4c 89 ef movq %r13, %rdi | |
// 9a: ff 15 00 00 00 00 callq *(%rip) # 0xa0 <_JIT_ENTRY+0xa0> | |
// 000000000000009c: R_X86_64_GOTPCRELX PyObject_Str-0x4 | |
// a0: 49 8b 4d 00 movq (%r13), %rcx | |
// a4: 85 c9 testl %ecx, %ecx | |
// a6: 78 18 js 0xc0 <_JIT_ENTRY+0xc0> | |
// a8: 48 ff c9 decq %rcx | |
// ab: 49 89 4d 00 movq %rcx, (%r13) | |
// af: 75 0f jne 0xc0 <_JIT_ENTRY+0xc0> | |
// b1: 4c 89 ef movq %r13, %rdi | |
// b4: 49 89 c5 movq %rax, %r13 | |
// b7: ff 15 00 00 00 00 callq *(%rip) # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// bd: 4c 89 e8 movq %r13, %rax | |
// c0: 48 8b 15 00 00 00 00 movq (%rip), %rdx # 0xc7 <_JIT_ENTRY+0xc7> | |
// 00000000000000c3: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// c7: 48 8b 0a movq (%rdx), %rcx | |
// ca: 85 c9 testl %ecx, %ecx | |
// cc: 78 1b js 0xe9 <_JIT_ENTRY+0xe9> | |
// ce: 48 ff c9 decq %rcx | |
// d1: 48 89 0a movq %rcx, (%rdx) | |
// d4: 75 13 jne 0xe9 <_JIT_ENTRY+0xe9> | |
// d6: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xdd <_JIT_ENTRY+0xdd> | |
// 00000000000000d9: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// dd: 49 89 c5 movq %rax, %r13 | |
// e0: ff 15 00 00 00 00 callq *(%rip) # 0xe6 <_JIT_ENTRY+0xe6> | |
// 00000000000000e2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// e6: 4c 89 e8 movq %r13, %rax | |
// e9: 48 85 c0 testq %rax, %rax | |
// ec: 74 20 je 0x10e <_JIT_ENTRY+0x10e> | |
// ee: 4f 8d 3c e7 leaq (%r15,%r12,8), %r15 | |
// f2: 48 89 45 00 movq %rax, (%rbp) | |
// f6: 49 8b 46 18 movq 0x18(%r14), %rax | |
// fa: 84 c0 testb %al, %al | |
// fc: 74 33 je 0x131 <_JIT_ENTRY+0x131> | |
// fe: 4c 89 f7 movq %r14, %rdi | |
// 101: ff 15 00 00 00 00 callq *(%rip) # 0x107 <_JIT_ENTRY+0x107> | |
// 0000000000000103: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 107: 85 c0 testl %eax, %eax | |
// 109: 74 26 je 0x131 <_JIT_ENTRY+0x131> | |
// 10b: 4c 89 fd movq %r15, %rbp | |
// 10e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x115 <_JIT_ENTRY+0x115> | |
// 0000000000000111: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 115: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 11c: 48 29 dd subq %rbx, %rbp | |
// 11f: 48 83 c5 b8 addq $-0x48, %rbp | |
// 123: 48 c1 ed 03 shrq $0x3, %rbp | |
// 127: 89 6b 40 movl %ebp, 0x40(%rbx) | |
// 12a: 31 c0 xorl %eax, %eax | |
// 12c: e9 43 ff ff ff jmp 0x74 <_JIT_ENTRY+0x74> | |
// 131: 48 89 df movq %rbx, %rdi | |
// 134: 4c 89 fe movq %r15, %rsi | |
// 137: 4c 89 f2 movq %r14, %rdx | |
// 13a: 48 83 c4 08 addq $0x8, %rsp | |
// 13e: 5b popq %rbx | |
// 13f: 41 5c popq %r12 | |
// 141: 41 5d popq %r13 | |
// 143: 41 5e popq %r14 | |
// 145: 41 5f popq %r15 | |
// 147: 5d popq %rbp | |
// 148: ff 25 00 00 00 00 jmpq *(%rip) # 0x14e <_JIT_ENTRY+0x14e> | |
// 000000000000014a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 148: | |
static const unsigned char _CALL_STR_1_code_body[329] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x0f, 0xb7, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x89, 0xc1, 0xf7, 0xd1, 0x4c, | |
0x63, 0xe1, 0x4a, 0x83, 0x3c, 0xe6, 0x00, 0x75, | |
0x1b, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, | |
0x48, 0x63, 0xc1, 0x49, 0x8d, 0x2c, 0xc7, 0x48, | |
0x8b, 0x45, 0x00, 0x48, 0x3b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7, | |
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b, | |
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, 0x0f, 0xb7, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe0, 0x03, 0x4c, 0x89, | |
0xf9, 0x48, 0x29, 0xc1, 0x4c, 0x8b, 0x29, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x4d, 0x00, 0x85, 0xc9, 0x78, 0x18, | |
0x48, 0xff, 0xc9, 0x49, 0x89, 0x4d, 0x00, 0x75, | |
0x0f, 0x4c, 0x89, 0xef, 0x49, 0x89, 0xc5, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe8, | |
0x48, 0x8b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x0a, 0x85, 0xc9, 0x78, 0x1b, 0x48, 0xff, | |
0xc9, 0x48, 0x89, 0x0a, 0x75, 0x13, 0x48, 0x8b, | |
0x3d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xe8, 0x48, 0x85, 0xc0, 0x74, 0x20, 0x4f, 0x8d, | |
0x3c, 0xe7, 0x48, 0x89, 0x45, 0x00, 0x49, 0x8b, | |
0x46, 0x18, 0x84, 0xc0, 0x74, 0x33, 0x4c, 0x89, | |
0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, | |
0xc0, 0x74, 0x26, 0x4c, 0x89, 0xfd, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xdd, 0x48, | |
0x83, 0xc5, 0xb8, 0x48, 0xc1, 0xed, 0x03, 0x89, | |
0x6b, 0x40, 0x31, 0xc0, 0xe9, 0x43, 0xff, 0xff, | |
0xff, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_STR_1_code_holes[13] = { | |
{0x17, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x3e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x86, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x9c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xd9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xe2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x103, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x111, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyUnicode_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &PyObject_Str+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: &_Py_HandlePending+0x0 | |
static const unsigned char _CALL_STR_1_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_STR_1_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Str, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
}; | |
// _CALL_TUPLE_1 | |
// | |
// /tmp/tmp2mfmnab2/_CALL_TUPLE_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1b <_JIT_ENTRY+0x1b> | |
// 0000000000000017: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1b: 89 c1 movl %eax, %ecx | |
// 1d: f7 d1 notl %ecx | |
// 1f: 4c 63 e1 movslq %ecx, %r12 | |
// 22: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8) | |
// 27: 75 1b jne 0x44 <_JIT_ENTRY+0x44> | |
// 29: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// 2e: 29 c1 subl %eax, %ecx | |
// 30: 48 63 c1 movslq %ecx, %rax | |
// 33: 49 8d 2c c7 leaq (%r15,%rax,8), %rbp | |
// 37: 48 8b 45 00 movq (%rbp), %rax | |
// 3b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x42 <_JIT_ENTRY+0x42> | |
// 000000000000003e: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// 42: 74 3f je 0x83 <_JIT_ENTRY+0x83> | |
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 4b: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 52: 49 29 df subq %rbx, %r15 | |
// 55: 49 83 c7 b8 addq $-0x48, %r15 | |
// 59: 49 c1 ef 03 shrq $0x3, %r15 | |
// 5d: 44 89 7b 40 movl %r15d, 0x40(%rbx) | |
// 61: 48 8b 03 movq (%rbx), %rax | |
// 64: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6a <_JIT_ENTRY+0x6a> | |
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 6a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 6e: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 74: 48 83 c4 08 addq $0x8, %rsp | |
// 78: 5b popq %rbx | |
// 79: 41 5c popq %r12 | |
// 7b: 41 5d popq %r13 | |
// 7d: 41 5e popq %r14 | |
// 7f: 41 5f popq %r15 | |
// 81: 5d popq %rbp | |
// 82: c3 retq | |
// 83: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x8a <_JIT_ENTRY+0x8a> | |
// 0000000000000086: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 8a: 48 c1 e0 03 shlq $0x3, %rax | |
// 8e: 4c 89 f9 movq %r15, %rcx | |
// 91: 48 29 c1 subq %rax, %rcx | |
// 94: 4c 8b 29 movq (%rcx), %r13 | |
// 97: 4c 89 ef movq %r13, %rdi | |
// 9a: ff 15 00 00 00 00 callq *(%rip) # 0xa0 <_JIT_ENTRY+0xa0> | |
// 000000000000009c: R_X86_64_GOTPCRELX PySequence_Tuple-0x4 | |
// a0: 49 8b 4d 00 movq (%r13), %rcx | |
// a4: 85 c9 testl %ecx, %ecx | |
// a6: 78 18 js 0xc0 <_JIT_ENTRY+0xc0> | |
// a8: 48 ff c9 decq %rcx | |
// ab: 49 89 4d 00 movq %rcx, (%r13) | |
// af: 75 0f jne 0xc0 <_JIT_ENTRY+0xc0> | |
// b1: 4c 89 ef movq %r13, %rdi | |
// b4: 49 89 c5 movq %rax, %r13 | |
// b7: ff 15 00 00 00 00 callq *(%rip) # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// bd: 4c 89 e8 movq %r13, %rax | |
// c0: 48 8b 15 00 00 00 00 movq (%rip), %rdx # 0xc7 <_JIT_ENTRY+0xc7> | |
// 00000000000000c3: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// c7: 48 8b 0a movq (%rdx), %rcx | |
// ca: 85 c9 testl %ecx, %ecx | |
// cc: 78 1b js 0xe9 <_JIT_ENTRY+0xe9> | |
// ce: 48 ff c9 decq %rcx | |
// d1: 48 89 0a movq %rcx, (%rdx) | |
// d4: 75 13 jne 0xe9 <_JIT_ENTRY+0xe9> | |
// d6: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xdd <_JIT_ENTRY+0xdd> | |
// 00000000000000d9: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// dd: 49 89 c5 movq %rax, %r13 | |
// e0: ff 15 00 00 00 00 callq *(%rip) # 0xe6 <_JIT_ENTRY+0xe6> | |
// 00000000000000e2: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// e6: 4c 89 e8 movq %r13, %rax | |
// e9: 48 85 c0 testq %rax, %rax | |
// ec: 74 20 je 0x10e <_JIT_ENTRY+0x10e> | |
// ee: 4f 8d 3c e7 leaq (%r15,%r12,8), %r15 | |
// f2: 48 89 45 00 movq %rax, (%rbp) | |
// f6: 49 8b 46 18 movq 0x18(%r14), %rax | |
// fa: 84 c0 testb %al, %al | |
// fc: 74 33 je 0x131 <_JIT_ENTRY+0x131> | |
// fe: 4c 89 f7 movq %r14, %rdi | |
// 101: ff 15 00 00 00 00 callq *(%rip) # 0x107 <_JIT_ENTRY+0x107> | |
// 0000000000000103: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 107: 85 c0 testl %eax, %eax | |
// 109: 74 26 je 0x131 <_JIT_ENTRY+0x131> | |
// 10b: 4c 89 fd movq %r15, %rbp | |
// 10e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x115 <_JIT_ENTRY+0x115> | |
// 0000000000000111: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 115: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// 11c: 48 29 dd subq %rbx, %rbp | |
// 11f: 48 83 c5 b8 addq $-0x48, %rbp | |
// 123: 48 c1 ed 03 shrq $0x3, %rbp | |
// 127: 89 6b 40 movl %ebp, 0x40(%rbx) | |
// 12a: 31 c0 xorl %eax, %eax | |
// 12c: e9 43 ff ff ff jmp 0x74 <_JIT_ENTRY+0x74> | |
// 131: 48 89 df movq %rbx, %rdi | |
// 134: 4c 89 fe movq %r15, %rsi | |
// 137: 4c 89 f2 movq %r14, %rdx | |
// 13a: 48 83 c4 08 addq $0x8, %rsp | |
// 13e: 5b popq %rbx | |
// 13f: 41 5c popq %r12 | |
// 141: 41 5d popq %r13 | |
// 143: 41 5e popq %r14 | |
// 145: 41 5f popq %r15 | |
// 147: 5d popq %rbp | |
// 148: ff 25 00 00 00 00 jmpq *(%rip) # 0x14e <_JIT_ENTRY+0x14e> | |
// 000000000000014a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 148: | |
static const unsigned char _CALL_TUPLE_1_code_body[329] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x0f, 0xb7, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x89, 0xc1, 0xf7, 0xd1, 0x4c, | |
0x63, 0xe1, 0x4a, 0x83, 0x3c, 0xe6, 0x00, 0x75, | |
0x1b, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, | |
0x48, 0x63, 0xc1, 0x49, 0x8d, 0x2c, 0xc7, 0x48, | |
0x8b, 0x45, 0x00, 0x48, 0x3b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x86, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xdf, 0x49, 0x83, 0xc7, | |
0xb8, 0x49, 0xc1, 0xef, 0x03, 0x44, 0x89, 0x7b, | |
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, 0x0f, 0xb7, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe0, 0x03, 0x4c, 0x89, | |
0xf9, 0x48, 0x29, 0xc1, 0x4c, 0x8b, 0x29, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x4d, 0x00, 0x85, 0xc9, 0x78, 0x18, | |
0x48, 0xff, 0xc9, 0x49, 0x89, 0x4d, 0x00, 0x75, | |
0x0f, 0x4c, 0x89, 0xef, 0x49, 0x89, 0xc5, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe8, | |
0x48, 0x8b, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x0a, 0x85, 0xc9, 0x78, 0x1b, 0x48, 0xff, | |
0xc9, 0x48, 0x89, 0x0a, 0x75, 0x13, 0x48, 0x8b, | |
0x3d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0xc5, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xe8, 0x48, 0x85, 0xc0, 0x74, 0x20, 0x4f, 0x8d, | |
0x3c, 0xe7, 0x48, 0x89, 0x45, 0x00, 0x49, 0x8b, | |
0x46, 0x18, 0x84, 0xc0, 0x74, 0x33, 0x4c, 0x89, | |
0xf7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, | |
0xc0, 0x74, 0x26, 0x4c, 0x89, 0xfd, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xdd, 0x48, | |
0x83, 0xc5, 0xb8, 0x48, 0xc1, 0xed, 0x03, 0x89, | |
0x6b, 0x40, 0x31, 0xc0, 0xe9, 0x43, 0xff, 0xff, | |
0xff, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_TUPLE_1_code_holes[13] = { | |
{0x17, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x3e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x86, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x9c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xd9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xe2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x103, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x111, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyTuple_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &PySequence_Tuple+0x0 | |
// 28: &_Py_Dealloc+0x0 | |
// 30: &_Py_HandlePending+0x0 | |
static const unsigned char _CALL_TUPLE_1_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_TUPLE_1_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Tuple, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
}; | |
// _CALL_TYPE_1 | |
// | |
// /tmp/tmp2mfmnab2/_CALL_TYPE_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1a <_JIT_ENTRY+0x1a> | |
// 0000000000000016: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 1a: f7 d0 notl %eax | |
// 1c: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 21: 4c 63 e0 movslq %eax, %r12 | |
// 24: 4a 83 3c e6 00 cmpq $0x0, (%rsi,%r12,8) | |
// 29: 75 1e jne 0x49 <_JIT_ENTRY+0x49> | |
// 2b: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x32 <_JIT_ENTRY+0x32> | |
// 000000000000002e: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 32: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// 37: 29 c1 subl %eax, %ecx | |
// 39: 48 63 c1 movslq %ecx, %rax | |
// 3c: 49 8b 04 c6 movq (%r14,%rax,8), %rax | |
// 40: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x47 <_JIT_ENTRY+0x47> | |
// 0000000000000043: R_X86_64_REX_GOTPCRELX PyType_Type-0x4 | |
// 47: 74 3f je 0x88 <_JIT_ENTRY+0x88> | |
// 49: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x50 <_JIT_ENTRY+0x50> | |
// 000000000000004c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 50: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 57: 49 29 de subq %rbx, %r14 | |
// 5a: 49 83 c6 b8 addq $-0x48, %r14 | |
// 5e: 49 c1 ee 03 shrq $0x3, %r14 | |
// 62: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 66: 48 8b 03 movq (%rbx), %rax | |
// 69: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6f <_JIT_ENTRY+0x6f> | |
// 000000000000006b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 6f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 73: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 79: 48 83 c4 08 addq $0x8, %rsp | |
// 7d: 5b popq %rbx | |
// 7e: 41 5c popq %r12 | |
// 80: 41 5d popq %r13 | |
// 82: 41 5e popq %r14 | |
// 84: 41 5f popq %r15 | |
// 86: 5d popq %rbp | |
// 87: c3 retq | |
// 88: 44 0f b7 2d 00 00 00 00 movzwl (%rip), %r13d # 0x90 <_JIT_ENTRY+0x90> | |
// 000000000000008c: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 90: 4a 8d 04 ed 00 00 00 00 leaq (,%r13,8), %rax | |
// 98: 4c 89 f1 movq %r14, %rcx | |
// 9b: 48 29 c1 subq %rax, %rcx | |
// 9e: 48 8b 39 movq (%rcx), %rdi | |
// a1: 48 8b 6f 08 movq 0x8(%rdi), %rbp | |
// a5: 8b 45 00 movl (%rbp), %eax | |
// a8: ff c0 incl %eax | |
// aa: 74 03 je 0xaf <_JIT_ENTRY+0xaf> | |
// ac: 89 45 00 movl %eax, (%rbp) | |
// af: 48 8b 07 movq (%rdi), %rax | |
// b2: 85 c0 testl %eax, %eax | |
// b4: 78 0e js 0xc4 <_JIT_ENTRY+0xc4> | |
// b6: 48 ff c8 decq %rax | |
// b9: 48 89 07 movq %rax, (%rdi) | |
// bc: 75 06 jne 0xc4 <_JIT_ENTRY+0xc4> | |
// be: ff 15 00 00 00 00 callq *(%rip) # 0xc4 <_JIT_ENTRY+0xc4> | |
// 00000000000000c0: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// c4: 4f 8d 24 e6 leaq (%r14,%r12,8), %r12 | |
// c8: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xcf <_JIT_ENTRY+0xcf> | |
// 00000000000000cb: R_X86_64_REX_GOTPCRELX PyType_Type-0x4 | |
// cf: 48 8b 08 movq (%rax), %rcx | |
// d2: 85 c9 testl %ecx, %ecx | |
// d4: 78 15 js 0xeb <_JIT_ENTRY+0xeb> | |
// d6: 48 ff c9 decq %rcx | |
// d9: 48 89 08 movq %rcx, (%rax) | |
// dc: 75 0d jne 0xeb <_JIT_ENTRY+0xeb> | |
// de: 48 8b 3d 00 00 00 00 movq (%rip), %rdi # 0xe5 <_JIT_ENTRY+0xe5> | |
// 00000000000000e1: R_X86_64_REX_GOTPCRELX PyType_Type-0x4 | |
// e5: ff 15 00 00 00 00 callq *(%rip) # 0xeb <_JIT_ENTRY+0xeb> | |
// 00000000000000e7: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// eb: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE | |
// f0: 44 29 e8 subl %r13d, %eax | |
// f3: 48 98 cltq | |
// f5: 49 89 2c c6 movq %rbp, (%r14,%rax,8) | |
// f9: 48 89 df movq %rbx, %rdi | |
// fc: 4c 89 e6 movq %r12, %rsi | |
// ff: 4c 89 fa movq %r15, %rdx | |
// 102: 48 83 c4 08 addq $0x8, %rsp | |
// 106: 5b popq %rbx | |
// 107: 41 5c popq %r12 | |
// 109: 41 5d popq %r13 | |
// 10b: 41 5e popq %r14 | |
// 10d: 41 5f popq %r15 | |
// 10f: 5d popq %rbp | |
// 110: ff 25 00 00 00 00 jmpq *(%rip) # 0x116 <_JIT_ENTRY+0x116> | |
// 0000000000000112: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 110: | |
static const unsigned char _CALL_TYPE_1_code_body[273] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00, 0x00, 0xff, | |
0xff, 0x4c, 0x63, 0xe0, 0x4a, 0x83, 0x3c, 0xe6, | |
0x00, 0x75, 0x1e, 0x0f, 0xb7, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x29, | |
0xc1, 0x48, 0x63, 0xc1, 0x49, 0x8b, 0x04, 0xc6, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, | |
0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, | |
0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x48, 0x8b, | |
0x03, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, | |
0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, | |
0x44, 0x0f, 0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, | |
0x4a, 0x8d, 0x04, 0xed, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xf1, 0x48, 0x29, 0xc1, 0x48, 0x8b, | |
0x39, 0x48, 0x8b, 0x6f, 0x08, 0x8b, 0x45, 0x00, | |
0xff, 0xc0, 0x74, 0x03, 0x89, 0x45, 0x00, 0x48, | |
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4f, 0x8d, 0x24, 0xe6, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x08, 0x85, 0xc9, 0x78, 0x15, 0x48, 0xff, | |
0xc9, 0x48, 0x89, 0x08, 0x75, 0x0d, 0x48, 0x8b, | |
0x3d, 0x00, 0x00, 0x00, 0x00, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0xb8, 0xfe, 0xff, 0xff, 0xff, | |
0x44, 0x29, 0xe8, 0x48, 0x98, 0x49, 0x89, 0x2c, | |
0xc6, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xe6, 0x4c, | |
0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CALL_TYPE_1_code_holes[11] = { | |
{0x16, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x43, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x4c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0xc0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xcb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xe1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xe7, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyType_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
// 20: &_Py_Dealloc+0x0 | |
static const unsigned char _CALL_TYPE_1_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CALL_TYPE_1_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyType_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _CHECK_ATTR_CLASS | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_ATTR_CLASS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx | |
// 8: f6 81 ab 00 00 00 80 testb $-0x80, 0xab(%rcx) | |
// f: 74 14 je 0x25 <_JIT_ENTRY+0x25> | |
// 11: 8b 80 80 01 00 00 movl 0x180(%rax), %eax | |
// 17: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4 | |
// 1d: 75 06 jne 0x25 <_JIT_ENTRY+0x25> | |
// 1f: ff 25 00 00 00 00 jmpq *(%rip) # 0x25 <_JIT_ENTRY+0x25> | |
// 0000000000000021: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 25: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2c <_JIT_ENTRY+0x2c> | |
// 0000000000000028: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2c: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 33: 48 29 fe subq %rdi, %rsi | |
// 36: 48 83 c6 b8 addq $-0x48, %rsi | |
// 3a: 48 c1 ee 03 shrq $0x3, %rsi | |
// 3e: 89 77 40 movl %esi, 0x40(%rdi) | |
// 41: 48 8b 07 movq (%rdi), %rax | |
// 44: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4a <_JIT_ENTRY+0x4a> | |
// 0000000000000046: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 4e: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 54: c3 retq | |
// 55: | |
static const unsigned char _CHECK_ATTR_CLASS_code_body[86] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08, | |
0xf6, 0x81, 0xab, 0x00, 0x00, 0x00, 0x80, 0x74, | |
0x14, 0x8b, 0x80, 0x80, 0x01, 0x00, 0x00, 0x3b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x75, 0x06, 0xff, | |
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, | |
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, | |
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, | |
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_ATTR_CLASS_code_holes[5] = { | |
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x21, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x28, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x46, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: CONTINUE | |
// 10: EXECUTOR | |
// 18: TARGET | |
static const unsigned char _CHECK_ATTR_CLASS_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_ATTR_CLASS_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_ATTR_METHOD_LAZY_DICT | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_ATTR_METHOD_LAZY_DICT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx | |
// 8: 48 8b 89 20 01 00 00 movq 0x120(%rcx), %rcx | |
// f: 48 83 3c 08 00 cmpq $0x0, (%rax,%rcx) | |
// 14: 74 30 je 0x46 <_JIT_ENTRY+0x46> | |
// 16: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 1d: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 24: 48 29 fe subq %rdi, %rsi | |
// 27: 48 83 c6 b8 addq $-0x48, %rsi | |
// 2b: 48 c1 ee 03 shrq $0x3, %rsi | |
// 2f: 89 77 40 movl %esi, 0x40(%rdi) | |
// 32: 48 8b 07 movq (%rdi), %rax | |
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3b: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 3f: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 45: c3 retq | |
// 46: ff 25 00 00 00 00 jmpq *(%rip) # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 46: | |
static const unsigned char _CHECK_ATTR_METHOD_LAZY_DICT_code_body[71] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08, | |
0x48, 0x8b, 0x89, 0x20, 0x01, 0x00, 0x00, 0x48, | |
0x83, 0x3c, 0x08, 0x00, 0x74, 0x30, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, | |
0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, | |
0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, | |
0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_ATTR_METHOD_LAZY_DICT_code_holes[3] = { | |
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: TARGET | |
static const unsigned char _CHECK_ATTR_METHOD_LAZY_DICT_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_ATTR_METHOD_LAZY_DICT_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_ATTR_MODULE | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_ATTR_MODULE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx | |
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyModule_Type-0x4 | |
// f: 75 19 jne 0x2a <_JIT_ENTRY+0x2a> | |
// 11: 48 8b 40 10 movq 0x10(%rax), %rax | |
// 15: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 19: 8b 40 0c movl 0xc(%rax), %eax | |
// 1c: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4 | |
// 22: 75 06 jne 0x2a <_JIT_ENTRY+0x2a> | |
// 24: ff 25 00 00 00 00 jmpq *(%rip) # 0x2a <_JIT_ENTRY+0x2a> | |
// 0000000000000026: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 2a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x31 <_JIT_ENTRY+0x31> | |
// 000000000000002d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 31: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 38: 48 29 fe subq %rdi, %rsi | |
// 3b: 48 83 c6 b8 addq $-0x48, %rsi | |
// 3f: 48 c1 ee 03 shrq $0x3, %rsi | |
// 43: 89 77 40 movl %esi, 0x40(%rdi) | |
// 46: 48 8b 07 movq (%rdi), %rax | |
// 49: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4f <_JIT_ENTRY+0x4f> | |
// 000000000000004b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 53: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 59: c3 retq | |
// 5a: | |
static const unsigned char _CHECK_ATTR_MODULE_code_body[91] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x08, | |
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x19, 0x48, 0x8b, 0x40, 0x10, 0x48, 0x8b, 0x40, | |
0x20, 0x8b, 0x40, 0x0c, 0x3b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x75, 0x06, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, | |
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, | |
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, | |
0x00, 0xc3, | |
}; | |
static const Hole _CHECK_ATTR_MODULE_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x26, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x2d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x4b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &PyModule_Type+0x0 | |
// 8: OPERAND | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
// 20: TARGET | |
static const unsigned char _CHECK_ATTR_MODULE_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_ATTR_MODULE_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyModule_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_ATTR_WITH_HINT | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_ATTR_WITH_HINT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 e8 movq -0x18(%rax), %rax | |
// 8: a8 01 testb $0x1, %al | |
// a: 75 0b jne 0x17 <_JIT_ENTRY+0x17> | |
// c: 48 85 c0 testq %rax, %rax | |
// f: 74 06 je 0x17 <_JIT_ENTRY+0x17> | |
// 11: ff 25 00 00 00 00 jmpq *(%rip) # 0x17 <_JIT_ENTRY+0x17> | |
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 17: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 1e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 25: 48 29 fe subq %rdi, %rsi | |
// 28: 48 83 c6 b8 addq $-0x48, %rsi | |
// 2c: 48 c1 ee 03 shrq $0x3, %rsi | |
// 30: 89 77 40 movl %esi, 0x40(%rdi) | |
// 33: 48 8b 07 movq (%rdi), %rax | |
// 36: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3c <_JIT_ENTRY+0x3c> | |
// 0000000000000038: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 40: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 46: c3 retq | |
// 47: | |
static const unsigned char _CHECK_ATTR_WITH_HINT_code_body[72] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0xe8, | |
0xa8, 0x01, 0x75, 0x0b, 0x48, 0x85, 0xc0, 0x74, | |
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, | |
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, | |
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_ATTR_WITH_HINT_code_holes[4] = { | |
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: CONTINUE | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _CHECK_ATTR_WITH_HINT_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_ATTR_WITH_HINT_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_CALL_BOUND_METHOD_EXACT_ARGS | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_CALL_BOUND_METHOD_EXACT_ARGS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 8b 05 00 00 00 00 movl (%rip), %eax # 0x6 <_JIT_ENTRY+0x6> | |
// 0000000000000002: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 6: f7 d0 notl %eax | |
// 8: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// d: 48 98 cltq | |
// f: 48 83 3c c6 00 cmpq $0x0, (%rsi,%rax,8) | |
// 14: 75 22 jne 0x38 <_JIT_ENTRY+0x38> | |
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1d: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// 22: 29 c1 subl %eax, %ecx | |
// 24: 48 63 c1 movslq %ecx, %rax | |
// 27: 48 8b 04 c6 movq (%rsi,%rax,8), %rax | |
// 2b: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 2f: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_REX_GOTPCRELX PyMethod_Type-0x4 | |
// 36: 74 30 je 0x68 <_JIT_ENTRY+0x68> | |
// 38: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3f <_JIT_ENTRY+0x3f> | |
// 000000000000003b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 3f: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 46: 48 29 fe subq %rdi, %rsi | |
// 49: 48 83 c6 b8 addq $-0x48, %rsi | |
// 4d: 48 c1 ee 03 shrq $0x3, %rsi | |
// 51: 89 77 40 movl %esi, 0x40(%rdi) | |
// 54: 48 8b 07 movq (%rdi), %rax | |
// 57: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5d <_JIT_ENTRY+0x5d> | |
// 0000000000000059: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 5d: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 61: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 67: c3 retq | |
// 68: ff 25 00 00 00 00 jmpq *(%rip) # 0x6e <_JIT_ENTRY+0x6e> | |
// 000000000000006a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 68: | |
static const unsigned char _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_code_body[105] = { | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0, | |
0x0d, 0x00, 0x00, 0xff, 0xff, 0x48, 0x98, 0x48, | |
0x83, 0x3c, 0xc6, 0x00, 0x75, 0x22, 0x0f, 0xb7, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xfe, 0xff, | |
0xff, 0xff, 0x29, 0xc1, 0x48, 0x63, 0xc1, 0x48, | |
0x8b, 0x04, 0xc6, 0x48, 0x8b, 0x40, 0x08, 0x48, | |
0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, 0x30, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, | |
0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, | |
0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_code_holes[6] = { | |
{0x2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x32, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyMethod_Type+0x0 | |
// 10: EXECUTOR | |
// 18: TARGET | |
static const unsigned char _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_CALL_BOUND_METHOD_EXACT_ARGS_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyMethod_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_EG_MATCH | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_EG_MATCH.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d7 movq %rdx, %r15 | |
// 11: 48 89 f3 movq %rsi, %rbx | |
// 14: 49 89 fe movq %rdi, %r14 | |
// 17: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 1b: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1f: 48 89 d7 movq %rdx, %rdi | |
// 22: 4c 89 e6 movq %r12, %rsi | |
// 25: ff 15 00 00 00 00 callq *(%rip) # 0x2b <_JIT_ENTRY+0x2b> | |
// 0000000000000027: R_X86_64_GOTPCRELX _PyEval_CheckExceptStarTypeValid-0x4 | |
// 2b: 85 c0 testl %eax, %eax | |
// 2d: 0f 88 b0 00 00 00 js 0xe3 <_JIT_ENTRY+0xe3> | |
// 33: 48 c7 44 24 08 00 00 00 00 movq $0x0, 0x8(%rsp) | |
// 3c: 48 c7 44 24 10 00 00 00 00 movq $0x0, 0x10(%rsp) | |
// 45: 48 8d 54 24 08 leaq 0x8(%rsp), %rdx | |
// 4a: 48 8d 4c 24 10 leaq 0x10(%rsp), %rcx | |
// 4f: 4c 89 ef movq %r13, %rdi | |
// 52: 4c 89 e6 movq %r12, %rsi | |
// 55: ff 15 00 00 00 00 callq *(%rip) # 0x5b <_JIT_ENTRY+0x5b> | |
// 0000000000000057: R_X86_64_GOTPCRELX _PyEval_ExceptionGroupMatch-0x4 | |
// 5b: 89 c5 movl %eax, %ebp | |
// 5d: 49 8b 45 00 movq (%r13), %rax | |
// 61: 85 c0 testl %eax, %eax | |
// 63: 78 12 js 0x77 <_JIT_ENTRY+0x77> | |
// 65: 48 ff c8 decq %rax | |
// 68: 49 89 45 00 movq %rax, (%r13) | |
// 6c: 75 09 jne 0x77 <_JIT_ENTRY+0x77> | |
// 6e: 4c 89 ef movq %r13, %rdi | |
// 71: ff 15 00 00 00 00 callq *(%rip) # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 77: 49 8b 04 24 movq (%r12), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 0d js 0x8c <_JIT_ENTRY+0x8c> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 04 24 movq %rax, (%r12) | |
// 86: 0f 84 8d 00 00 00 je 0x119 <_JIT_ENTRY+0x119> | |
// 8c: 85 ed testl %ebp, %ebp | |
// 8e: 0f 88 96 00 00 00 js 0x12a <_JIT_ENTRY+0x12a> | |
// 94: 48 8b 7c 24 08 movq 0x8(%rsp), %rdi | |
// 99: 48 85 ff testq %rdi, %rdi | |
// 9c: 0f 84 88 00 00 00 je 0x12a <_JIT_ENTRY+0x12a> | |
// a2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa9 <_JIT_ENTRY+0xa9> | |
// 00000000000000a5: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4 | |
// a9: 48 39 c7 cmpq %rax, %rdi | |
// ac: 74 0b je 0xb9 <_JIT_ENTRY+0xb9> | |
// ae: ff 15 00 00 00 00 callq *(%rip) # 0xb4 <_JIT_ENTRY+0xb4> | |
// 00000000000000b0: R_X86_64_GOTPCRELX PyErr_SetHandledException-0x4 | |
// b4: 48 8b 44 24 08 movq 0x8(%rsp), %rax | |
// b9: 48 8b 4c 24 10 movq 0x10(%rsp), %rcx | |
// be: 48 89 4b f0 movq %rcx, -0x10(%rbx) | |
// c2: 48 89 43 f8 movq %rax, -0x8(%rbx) | |
// c6: 4c 89 f7 movq %r14, %rdi | |
// c9: 48 89 de movq %rbx, %rsi | |
// cc: 4c 89 fa movq %r15, %rdx | |
// cf: 48 83 c4 18 addq $0x18, %rsp | |
// d3: 5b popq %rbx | |
// d4: 41 5c popq %r12 | |
// d6: 41 5d popq %r13 | |
// d8: 41 5e popq %r14 | |
// da: 41 5f popq %r15 | |
// dc: 5d popq %rbp | |
// dd: ff 25 00 00 00 00 jmpq *(%rip) # 0xe3 <_JIT_ENTRY+0xe3> | |
// 00000000000000df: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e3: 49 8b 45 00 movq (%r13), %rax | |
// e7: 85 c0 testl %eax, %eax | |
// e9: 78 12 js 0xfd <_JIT_ENTRY+0xfd> | |
// eb: 48 ff c8 decq %rax | |
// ee: 49 89 45 00 movq %rax, (%r13) | |
// f2: 75 09 jne 0xfd <_JIT_ENTRY+0xfd> | |
// f4: 4c 89 ef movq %r13, %rdi | |
// f7: ff 15 00 00 00 00 callq *(%rip) # 0xfd <_JIT_ENTRY+0xfd> | |
// 00000000000000f9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// fd: 49 8b 04 24 movq (%r12), %rax | |
// 101: 85 c0 testl %eax, %eax | |
// 103: 78 25 js 0x12a <_JIT_ENTRY+0x12a> | |
// 105: 48 ff c8 decq %rax | |
// 108: 49 89 04 24 movq %rax, (%r12) | |
// 10c: 75 1c jne 0x12a <_JIT_ENTRY+0x12a> | |
// 10e: 4c 89 e7 movq %r12, %rdi | |
// 111: ff 15 00 00 00 00 callq *(%rip) # 0x117 <_JIT_ENTRY+0x117> | |
// 0000000000000113: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 117: eb 11 jmp 0x12a <_JIT_ENTRY+0x12a> | |
// 119: 4c 89 e7 movq %r12, %rdi | |
// 11c: ff 15 00 00 00 00 callq *(%rip) # 0x122 <_JIT_ENTRY+0x122> | |
// 000000000000011e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 122: 85 ed testl %ebp, %ebp | |
// 124: 0f 89 6a ff ff ff jns 0x94 <_JIT_ENTRY+0x94> | |
// 12a: 48 83 c3 f0 addq $-0x10, %rbx | |
// 12e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x135 <_JIT_ENTRY+0x135> | |
// 0000000000000131: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 135: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 13c: 4c 29 f3 subq %r14, %rbx | |
// 13f: 48 83 c3 b8 addq $-0x48, %rbx | |
// 143: 48 c1 eb 03 shrq $0x3, %rbx | |
// 147: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 14b: 31 c0 xorl %eax, %eax | |
// 14d: 48 83 c4 18 addq $0x18, %rsp | |
// 151: 5b popq %rbx | |
// 152: 41 5c popq %r12 | |
// 154: 41 5d popq %r13 | |
// 156: 41 5e popq %r14 | |
// 158: 41 5f popq %r15 | |
// 15a: 5d popq %rbp | |
// 15b: c3 retq | |
// 15c: | |
static const unsigned char _CHECK_EG_MATCH_code_body[349] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x4c, | |
0x8b, 0x6e, 0xf0, 0x4c, 0x8b, 0x66, 0xf8, 0x48, | |
0x89, 0xd7, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x85, 0xc0, 0x0f, 0x88, 0xb0, | |
0x00, 0x00, 0x00, 0x48, 0xc7, 0x44, 0x24, 0x08, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0xc7, 0x44, 0x24, | |
0x10, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x54, | |
0x24, 0x08, 0x48, 0x8d, 0x4c, 0x24, 0x10, 0x4c, | |
0x89, 0xef, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x45, 0x00, 0x75, 0x09, 0x4c, 0x89, | |
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x0d, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x0f, 0x84, | |
0x8d, 0x00, 0x00, 0x00, 0x85, 0xed, 0x0f, 0x88, | |
0x96, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x7c, 0x24, | |
0x08, 0x48, 0x85, 0xff, 0x0f, 0x84, 0x88, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x39, 0xc7, 0x74, 0x0b, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x44, 0x24, | |
0x08, 0x48, 0x8b, 0x4c, 0x24, 0x10, 0x48, 0x89, | |
0x4b, 0xf0, 0x48, 0x89, 0x43, 0xf8, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, | |
0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x45, 0x00, 0x75, 0x09, 0x4c, 0x89, 0xef, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, | |
0x24, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, | |
0x11, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xed, 0x0f, 0x89, 0x6a, 0xff, | |
0xff, 0xff, 0x48, 0x83, 0xc3, 0xf0, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, | |
0x18, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _CHECK_EG_MATCH_code_holes[11] = { | |
{0x27, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x57, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xa5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xb0, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xdf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xf9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x113, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x11e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x131, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: | |
// 0: &_PyEval_CheckExceptStarTypeValid+0x0 | |
// 8: &_PyEval_ExceptionGroupMatch+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: &_Py_NoneStruct+0x0 | |
// 20: &PyErr_SetHandledException+0x0 | |
// 28: CONTINUE | |
// 30: EXECUTOR | |
static const unsigned char _CHECK_EG_MATCH_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_EG_MATCH_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_CheckExceptStarTypeValid, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_ExceptionGroupMatch, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_SetHandledException, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _CHECK_EXC_MATCH | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_EXC_MATCH.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 48 89 d7 movq %rdx, %rdi | |
// 1f: 4c 89 e6 movq %r12, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _PyEval_CheckExceptTypeValid-0x4 | |
// 28: 85 c0 testl %eax, %eax | |
// 2a: 78 2c js 0x58 <_JIT_ENTRY+0x58> | |
// 2c: 4c 89 ef movq %r13, %rdi | |
// 2f: 4c 89 e6 movq %r12, %rsi | |
// 32: ff 15 00 00 00 00 callq *(%rip) # 0x38 <_JIT_ENTRY+0x38> | |
// 0000000000000034: R_X86_64_GOTPCRELX PyErr_GivenExceptionMatches-0x4 | |
// 38: 89 c5 movl %eax, %ebp | |
// 3a: 49 8b 04 24 movq (%r12), %rax | |
// 3e: 85 c0 testl %eax, %eax | |
// 40: 78 09 js 0x4b <_JIT_ENTRY+0x4b> | |
// 42: 48 ff c8 decq %rax | |
// 45: 49 89 04 24 movq %rax, (%r12) | |
// 49: 74 59 je 0xa4 <_JIT_ENTRY+0xa4> | |
// 4b: 85 ed testl %ebp, %ebp | |
// 4d: 75 62 jne 0xb1 <_JIT_ENTRY+0xb1> | |
// 4f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 56: eb 60 jmp 0xb8 <_JIT_ENTRY+0xb8> | |
// 58: 48 83 c3 f8 addq $-0x8, %rbx | |
// 5c: 49 8b 04 24 movq (%r12), %rax | |
// 60: 85 c0 testl %eax, %eax | |
// 62: 78 12 js 0x76 <_JIT_ENTRY+0x76> | |
// 64: 48 ff c8 decq %rax | |
// 67: 49 89 04 24 movq %rax, (%r12) | |
// 6b: 75 09 jne 0x76 <_JIT_ENTRY+0x76> | |
// 6d: 4c 89 e7 movq %r12, %rdi | |
// 70: ff 15 00 00 00 00 callq *(%rip) # 0x76 <_JIT_ENTRY+0x76> | |
// 0000000000000072: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 76: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7d <_JIT_ENTRY+0x7d> | |
// 0000000000000079: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 84: 4c 29 f3 subq %r14, %rbx | |
// 87: 48 83 c3 b8 addq $-0x48, %rbx | |
// 8b: 48 c1 eb 03 shrq $0x3, %rbx | |
// 8f: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 93: 31 c0 xorl %eax, %eax | |
// 95: 48 83 c4 08 addq $0x8, %rsp | |
// 99: 5b popq %rbx | |
// 9a: 41 5c popq %r12 | |
// 9c: 41 5d popq %r13 | |
// 9e: 41 5e popq %r14 | |
// a0: 41 5f popq %r15 | |
// a2: 5d popq %rbp | |
// a3: c3 retq | |
// a4: 4c 89 e7 movq %r12, %rdi | |
// a7: ff 15 00 00 00 00 callq *(%rip) # 0xad <_JIT_ENTRY+0xad> | |
// 00000000000000a9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// ad: 85 ed testl %ebp, %ebp | |
// af: 74 9e je 0x4f <_JIT_ENTRY+0x4f> | |
// b1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb8 <_JIT_ENTRY+0xb8> | |
// 00000000000000b4: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// b8: 48 89 43 f8 movq %rax, -0x8(%rbx) | |
// bc: 4c 89 f7 movq %r14, %rdi | |
// bf: 48 89 de movq %rbx, %rsi | |
// c2: 4c 89 fa movq %r15, %rdx | |
// c5: 48 83 c4 08 addq $0x8, %rsp | |
// c9: 5b popq %rbx | |
// ca: 41 5c popq %r12 | |
// cc: 41 5d popq %r13 | |
// ce: 41 5e popq %r14 | |
// d0: 41 5f popq %r15 | |
// d2: 5d popq %rbp | |
// d3: ff 25 00 00 00 00 jmpq *(%rip) # 0xd9 <_JIT_ENTRY+0xd9> | |
// 00000000000000d5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// d3: | |
static const unsigned char _CHECK_EXC_MATCH_code_body[212] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x89, 0xd7, 0x4c, | |
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x78, 0x2c, 0x4c, 0x89, 0xef, 0x4c, | |
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, | |
0x24, 0x74, 0x59, 0x85, 0xed, 0x75, 0x62, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x60, | |
0x48, 0x83, 0xc3, 0xf8, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xed, 0x74, | |
0x9e, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x43, 0xf8, 0x4c, 0x89, 0xf7, 0x48, | |
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CHECK_EXC_MATCH_code_holes[8] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x34, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x52, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x72, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x79, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xa9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xb4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: &_PyEval_CheckExceptTypeValid+0x0 | |
// 8: &PyErr_GivenExceptionMatches+0x0 | |
// 10: &_Py_FalseStruct+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: EXECUTOR | |
// 28: &_Py_TrueStruct+0x0 | |
static const unsigned char _CHECK_EXC_MATCH_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_EXC_MATCH_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_CheckExceptTypeValid, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_GivenExceptionMatches, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _CHECK_FUNCTION | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_FUNCTION.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 47 10 movq 0x10(%rdi), %rax | |
// 4: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xb <_JIT_ENTRY+0xb> | |
// 0000000000000007: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4 | |
// b: 74 30 je 0x3d <_JIT_ENTRY+0x3d> | |
// d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x14 <_JIT_ENTRY+0x14> | |
// 0000000000000010: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 14: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1b: 48 29 fe subq %rdi, %rsi | |
// 1e: 48 83 c6 b8 addq $-0x48, %rsi | |
// 22: 48 c1 ee 03 shrq $0x3, %rsi | |
// 26: 89 77 40 movl %esi, 0x40(%rdi) | |
// 29: 48 8b 07 movq (%rdi), %rax | |
// 2c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x32 <_JIT_ENTRY+0x32> | |
// 000000000000002e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 32: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 36: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 3c: c3 retq | |
// 3d: ff 25 00 00 00 00 jmpq *(%rip) # 0x43 <_JIT_ENTRY+0x43> | |
// 000000000000003f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3d: | |
static const unsigned char _CHECK_FUNCTION_code_body[62] = { | |
0x48, 0x8b, 0x47, 0x10, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x74, 0x30, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, | |
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, | |
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, | |
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_FUNCTION_code_holes[4] = { | |
{0x7, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x10, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _CHECK_FUNCTION_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_FUNCTION_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_FUNCTION_EXACT_ARGS | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_FUNCTION_EXACT_ARGS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x7 <_JIT_ENTRY+0x7> | |
// 0000000000000003: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 7: b9 fe ff ff ff movl $0xfffffffe, %ecx # imm = 0xFFFFFFFE | |
// c: 29 c1 subl %eax, %ecx | |
// e: 48 63 c9 movslq %ecx, %rcx | |
// 11: 48 8b 0c ce movq (%rsi,%rcx,8), %rcx | |
// 15: 4c 8b 41 08 movq 0x8(%rcx), %r8 | |
// 19: 4c 3b 05 00 00 00 00 cmpq (%rip), %r8 # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyFunction_Type-0x4 | |
// 20: 75 30 jne 0x52 <_JIT_ENTRY+0x52> | |
// 22: 44 8b 81 88 00 00 00 movl 0x88(%rcx), %r8d | |
// 29: 44 3b 05 00 00 00 00 cmpl (%rip), %r8d # 0x30 <_JIT_ENTRY+0x30> | |
// 000000000000002c: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4 | |
// 30: 75 20 jne 0x52 <_JIT_ENTRY+0x52> | |
// 32: 41 89 c0 movl %eax, %r8d | |
// 35: 41 f7 d0 notl %r8d | |
// 38: 4d 63 c0 movslq %r8d, %r8 | |
// 3b: 48 8b 49 30 movq 0x30(%rcx), %rcx | |
// 3f: 4a 83 3c c6 01 cmpq $0x1, (%rsi,%r8,8) | |
// 44: 83 d8 ff sbbl $-0x1, %eax | |
// 47: 39 41 34 cmpl %eax, 0x34(%rcx) | |
// 4a: 75 06 jne 0x52 <_JIT_ENTRY+0x52> | |
// 4c: ff 25 00 00 00 00 jmpq *(%rip) # 0x52 <_JIT_ENTRY+0x52> | |
// 000000000000004e: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 52: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x59 <_JIT_ENTRY+0x59> | |
// 0000000000000055: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 59: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 60: 48 29 fe subq %rdi, %rsi | |
// 63: 48 83 c6 b8 addq $-0x48, %rsi | |
// 67: 48 c1 ee 03 shrq $0x3, %rsi | |
// 6b: 89 77 40 movl %esi, 0x40(%rdi) | |
// 6e: 48 8b 07 movq (%rdi), %rax | |
// 71: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 77: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 7b: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 81: c3 retq | |
// 82: | |
static const unsigned char _CHECK_FUNCTION_EXACT_ARGS_code_body[131] = { | |
0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0xb9, | |
0xfe, 0xff, 0xff, 0xff, 0x29, 0xc1, 0x48, 0x63, | |
0xc9, 0x48, 0x8b, 0x0c, 0xce, 0x4c, 0x8b, 0x41, | |
0x08, 0x4c, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x75, 0x30, 0x44, 0x8b, 0x81, 0x88, 0x00, 0x00, | |
0x00, 0x44, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x75, 0x20, 0x41, 0x89, 0xc0, 0x41, 0xf7, 0xd0, | |
0x4d, 0x63, 0xc0, 0x48, 0x8b, 0x49, 0x30, 0x4a, | |
0x83, 0x3c, 0xc6, 0x01, 0x83, 0xd8, 0xff, 0x39, | |
0x41, 0x34, 0x75, 0x06, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, | |
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, | |
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, | |
0x00, 0xc3, | |
}; | |
static const Hole _CHECK_FUNCTION_EXACT_ARGS_code_holes[7] = { | |
{0x3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x4e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x55, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x73, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyFunction_Type+0x0 | |
// 10: OPERAND | |
// 18: CONTINUE | |
// 20: EXECUTOR | |
// 28: TARGET | |
static const unsigned char _CHECK_FUNCTION_EXACT_ARGS_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_FUNCTION_EXACT_ARGS_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFunction_Type, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_MANAGED_OBJECT_HAS_VALUES | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_MANAGED_OBJECT_HAS_VALUES.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 12: f6 47 e8 01 testb $0x1, -0x18(%rdi) | |
// 16: 75 0e jne 0x26 <_JIT_ENTRY+0x26> | |
// 18: 48 8d 77 e8 leaq -0x18(%rdi), %rsi | |
// 1c: ff 15 00 00 00 00 callq *(%rip) # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_GOTPCRELX _PyObject_MakeInstanceAttributesFromDict-0x4 | |
// 22: 84 c0 testb %al, %al | |
// 24: 74 14 je 0x3a <_JIT_ENTRY+0x3a> | |
// 26: 4c 89 f7 movq %r14, %rdi | |
// 29: 48 89 de movq %rbx, %rsi | |
// 2c: 4c 89 fa movq %r15, %rdx | |
// 2f: 5b popq %rbx | |
// 30: 41 5e popq %r14 | |
// 32: 41 5f popq %r15 | |
// 34: ff 25 00 00 00 00 jmpq *(%rip) # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41> | |
// 000000000000003d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 41: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 48: 4c 29 f3 subq %r14, %rbx | |
// 4b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 4f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 53: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 57: 49 8b 06 movq (%r14), %rax | |
// 5a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 60: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 64: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 6a: 5b popq %rbx | |
// 6b: 41 5e popq %r14 | |
// 6d: 41 5f popq %r15 | |
// 6f: c3 retq | |
// 70: | |
static const unsigned char _CHECK_MANAGED_OBJECT_HAS_VALUES_code_body[113] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x7e, 0xf8, 0xf6, 0x47, 0xe8, 0x01, 0x75, 0x0e, | |
0x48, 0x8d, 0x77, 0xe8, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x84, 0xc0, 0x74, 0x14, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49, | |
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, | |
0x00, 0x00, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _CHECK_MANAGED_OBJECT_HAS_VALUES_code_holes[5] = { | |
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyObject_MakeInstanceAttributesFromDict+0x0 | |
// 8: CONTINUE | |
// 10: EXECUTOR | |
// 18: TARGET | |
static const unsigned char _CHECK_MANAGED_OBJECT_HAS_VALUES_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_MANAGED_OBJECT_HAS_VALUES_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_MakeInstanceAttributesFromDict, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_PEP_523 | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_PEP_523.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 42 10 movq 0x10(%rdx), %rax | |
// 4: 48 83 b8 e0 07 00 00 00 cmpq $0x0, 0x7e0(%rax) | |
// c: 74 30 je 0x3e <_JIT_ENTRY+0x3e> | |
// e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x15 <_JIT_ENTRY+0x15> | |
// 0000000000000011: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 15: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1c: 48 29 fe subq %rdi, %rsi | |
// 1f: 48 83 c6 b8 addq $-0x48, %rsi | |
// 23: 48 c1 ee 03 shrq $0x3, %rsi | |
// 27: 89 77 40 movl %esi, 0x40(%rdi) | |
// 2a: 48 8b 07 movq (%rdi), %rax | |
// 2d: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 33: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 37: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 3d: c3 retq | |
// 3e: ff 25 00 00 00 00 jmpq *(%rip) # 0x44 <_JIT_ENTRY+0x44> | |
// 0000000000000040: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3e: | |
static const unsigned char _CHECK_PEP_523_code_body[63] = { | |
0x48, 0x8b, 0x42, 0x10, 0x48, 0x83, 0xb8, 0xe0, | |
0x07, 0x00, 0x00, 0x00, 0x74, 0x30, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, | |
0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, | |
0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, | |
0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_PEP_523_code_holes[3] = { | |
{0x11, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: TARGET | |
static const unsigned char _CHECK_PEP_523_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_PEP_523_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_STACK_SPACE | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_STACK_SPACE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 82 08 01 00 00 movq 0x108(%rdx), %rax | |
// 7: 48 85 c0 testq %rax, %rax | |
// a: 74 38 je 0x44 <_JIT_ENTRY+0x44> | |
// c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x13 <_JIT_ENTRY+0x13> | |
// 000000000000000f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 13: 41 b8 fe ff ff ff movl $0xfffffffe, %r8d # imm = 0xFFFFFFFE | |
// 19: 41 29 c8 subl %ecx, %r8d | |
// 1c: 49 63 c8 movslq %r8d, %rcx | |
// 1f: 48 8b 0c ce movq (%rsi,%rcx,8), %rcx | |
// 23: 48 8b 49 30 movq 0x30(%rcx), %rcx | |
// 27: 48 63 49 4c movslq 0x4c(%rcx), %rcx | |
// 2b: 4c 8b 82 10 01 00 00 movq 0x110(%rdx), %r8 | |
// 32: 49 29 c0 subq %rax, %r8 | |
// 35: 49 c1 f8 03 sarq $0x3, %r8 | |
// 39: 49 39 c8 cmpq %rcx, %r8 | |
// 3c: 7e 06 jle 0x44 <_JIT_ENTRY+0x44> | |
// 3e: 83 7a 2c 02 cmpl $0x2, 0x2c(%rdx) | |
// 42: 7d 30 jge 0x74 <_JIT_ENTRY+0x74> | |
// 44: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 4b: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 52: 48 29 fe subq %rdi, %rsi | |
// 55: 48 83 c6 b8 addq $-0x48, %rsi | |
// 59: 48 c1 ee 03 shrq $0x3, %rsi | |
// 5d: 89 77 40 movl %esi, 0x40(%rdi) | |
// 60: 48 8b 07 movq (%rdi), %rax | |
// 63: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x69 <_JIT_ENTRY+0x69> | |
// 0000000000000065: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 69: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 6d: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 73: c3 retq | |
// 74: ff 25 00 00 00 00 jmpq *(%rip) # 0x7a <_JIT_ENTRY+0x7a> | |
// 0000000000000076: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 74: | |
static const unsigned char _CHECK_STACK_SPACE_code_body[117] = { | |
0x48, 0x8b, 0x82, 0x08, 0x01, 0x00, 0x00, 0x48, | |
0x85, 0xc0, 0x74, 0x38, 0x0f, 0xb7, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x41, 0xb8, 0xfe, 0xff, 0xff, | |
0xff, 0x41, 0x29, 0xc8, 0x49, 0x63, 0xc8, 0x48, | |
0x8b, 0x0c, 0xce, 0x48, 0x8b, 0x49, 0x30, 0x48, | |
0x63, 0x49, 0x4c, 0x4c, 0x8b, 0x82, 0x10, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xc0, 0x49, 0xc1, 0xf8, | |
0x03, 0x49, 0x39, 0xc8, 0x7e, 0x06, 0x83, 0x7a, | |
0x2c, 0x02, 0x7d, 0x30, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, | |
0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, | |
0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, | |
0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_STACK_SPACE_code_holes[4] = { | |
{0xf, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x47, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _CHECK_STACK_SPACE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_STACK_SPACE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_VALIDITY | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_VALIDITY.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7> | |
// 0000000000000003: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7: 80 78 22 00 cmpb $0x0, 0x22(%rax) | |
// b: 74 06 je 0x13 <_JIT_ENTRY+0x13> | |
// d: ff 25 00 00 00 00 jmpq *(%rip) # 0x13 <_JIT_ENTRY+0x13> | |
// 000000000000000f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 13: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1a: 48 29 fe subq %rdi, %rsi | |
// 1d: 48 83 c6 b8 addq $-0x48, %rsi | |
// 21: 48 c1 ee 03 shrq $0x3, %rsi | |
// 25: 89 77 40 movl %esi, 0x40(%rdi) | |
// 28: 48 8b 07 movq (%rdi), %rax | |
// 2b: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x31 <_JIT_ENTRY+0x31> | |
// 000000000000002d: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 31: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 35: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 3b: c3 retq | |
// 3c: | |
static const unsigned char _CHECK_VALIDITY_code_body[61] = { | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x80, | |
0x78, 0x22, 0x00, 0x74, 0x06, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, | |
0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, | |
0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, | |
0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_VALIDITY_code_holes[4] = { | |
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: CONTINUE | |
// 10: TARGET | |
static const unsigned char _CHECK_VALIDITY_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_VALIDITY_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _CHECK_VALIDITY_AND_SET_IP | |
// | |
// /tmp/tmp2mfmnab2/_CHECK_VALIDITY_AND_SET_IP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7> | |
// 0000000000000003: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7: 80 78 22 00 cmpb $0x0, 0x22(%rax) | |
// b: 74 11 je 0x1e <_JIT_ENTRY+0x1e> | |
// d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x14 <_JIT_ENTRY+0x14> | |
// 0000000000000010: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4 | |
// 14: 48 89 47 38 movq %rax, 0x38(%rdi) | |
// 18: ff 25 00 00 00 00 jmpq *(%rip) # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 25: 48 29 fe subq %rdi, %rsi | |
// 28: 48 83 c6 b8 addq $-0x48, %rsi | |
// 2c: 48 c1 ee 03 shrq $0x3, %rsi | |
// 30: 89 77 40 movl %esi, 0x40(%rdi) | |
// 33: 48 8b 07 movq (%rdi), %rax | |
// 36: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3c <_JIT_ENTRY+0x3c> | |
// 0000000000000038: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 40: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 46: c3 retq | |
// 47: | |
static const unsigned char _CHECK_VALIDITY_AND_SET_IP_code_body[72] = { | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x80, | |
0x78, 0x22, 0x00, 0x74, 0x11, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x47, 0x38, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, | |
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, | |
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _CHECK_VALIDITY_AND_SET_IP_code_holes[5] = { | |
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x10, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x1a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: OPERAND | |
// 10: CONTINUE | |
// 18: TARGET | |
static const unsigned char _CHECK_VALIDITY_AND_SET_IP_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CHECK_VALIDITY_AND_SET_IP_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _COLD_EXIT | |
// | |
// /tmp/tmp2mfmnab2/_COLD_EXIT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b a2 28 01 00 00 movq 0x128(%rdx), %r12 | |
// 1b: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 22: 48 c1 e5 04 shlq $0x4, %rbp | |
// 26: 41 8b 4c 2c 78 movl 0x78(%r12,%rbp), %ecx | |
// 2b: 41 8b 54 2c 7c movl 0x7c(%r12,%rbp), %edx | |
// 30: ff c2 incl %edx | |
// 32: 66 41 89 54 2c 7c movw %dx, 0x7c(%r12,%rbp) | |
// 38: 48 8b 07 movq (%rdi), %rax | |
// 3b: 4c 8d 2c 48 leaq (%rax,%rcx,2), %r13 | |
// 3f: 49 81 c5 c8 00 00 00 addq $0xc8, %r13 | |
// 46: 0f bf ca movswl %dx, %ecx | |
// 49: 49 8b 57 10 movq 0x10(%r15), %rdx | |
// 4d: 0f b7 92 e0 50 02 00 movzwl 0x250e0(%rdx), %edx | |
// 54: 39 d1 cmpl %edx, %ecx | |
// 56: 7d 21 jge 0x79 <_JIT_ENTRY+0x79> | |
// 58: 4c 29 f3 subq %r14, %rbx | |
// 5b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 5f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 63: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 67: 4c 89 e8 movq %r13, %rax | |
// 6a: 48 83 c4 08 addq $0x8, %rsp | |
// 6e: 5b popq %rbx | |
// 6f: 41 5c popq %r12 | |
// 71: 41 5d popq %r13 | |
// 73: 41 5e popq %r14 | |
// 75: 41 5f popq %r15 | |
// 77: 5d popq %rbp | |
// 78: c3 retq | |
// 79: 41 80 7d 00 46 cmpb $0x46, (%r13) | |
// 7e: 75 1f jne 0x9f <_JIT_ENTRY+0x9f> | |
// 80: 48 8b 80 98 00 00 00 movq 0x98(%rax), %rax | |
// 87: 41 0f b6 4d 01 movzbl 0x1(%r13), %ecx | |
// 8c: 48 8b 44 c8 08 movq 0x8(%rax,%rcx,8), %rax | |
// 91: 48 89 04 24 movq %rax, (%rsp) | |
// 95: 8b 08 movl (%rax), %ecx | |
// 97: ff c1 incl %ecx | |
// 99: 74 1a je 0xb5 <_JIT_ENTRY+0xb5> | |
// 9b: 89 08 movl %ecx, (%rax) | |
// 9d: eb 16 jmp 0xb5 <_JIT_ENTRY+0xb5> | |
// 9f: 48 89 e1 movq %rsp, %rcx | |
// a2: 4c 89 f7 movq %r14, %rdi | |
// a5: 4c 89 ee movq %r13, %rsi | |
// a8: 48 89 da movq %rbx, %rdx | |
// ab: ff 15 00 00 00 00 callq *(%rip) # 0xb1 <_JIT_ENTRY+0xb1> | |
// 00000000000000ad: R_X86_64_GOTPCRELX _PyOptimizer_Optimize-0x4 | |
// b1: 85 c0 testl %eax, %eax | |
// b3: 7e 44 jle 0xf9 <_JIT_ENTRY+0xf9> | |
// b5: 48 8b 04 24 movq (%rsp), %rax | |
// b9: 8b 08 movl (%rax), %ecx | |
// bb: ff c1 incl %ecx | |
// bd: 74 06 je 0xc5 <_JIT_ENTRY+0xc5> | |
// bf: 89 08 movl %ecx, (%rax) | |
// c1: 48 8b 04 24 movq (%rsp), %rax | |
// c5: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xcc <_JIT_ENTRY+0xcc> | |
// 00000000000000c8: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// cc: 48 c1 e1 04 shlq $0x4, %rcx | |
// d0: 49 89 84 0c 80 00 00 00 movq %rax, 0x80(%r12,%rcx) | |
// d8: 48 8b 04 24 movq (%rsp), %rax | |
// dc: 48 8b 40 70 movq 0x70(%rax), %rax | |
// e0: 4c 89 f7 movq %r14, %rdi | |
// e3: 48 89 de movq %rbx, %rsi | |
// e6: 4c 89 fa movq %r15, %rdx | |
// e9: 48 83 c4 08 addq $0x8, %rsp | |
// ed: 5b popq %rbx | |
// ee: 41 5c popq %r12 | |
// f0: 41 5d popq %r13 | |
// f2: 41 5e popq %r14 | |
// f4: 41 5f popq %r15 | |
// f6: 5d popq %rbp | |
// f7: ff e0 jmpq *%rax | |
// f9: 49 8d 0c 2c leaq (%r12,%rbp), %rcx | |
// fd: 48 83 c1 7c addq $0x7c, %rcx | |
// 101: 49 8b 57 10 movq 0x10(%r15), %rdx | |
// 105: 0f b7 92 e0 50 02 00 movzwl 0x250e0(%rdx), %edx | |
// 10c: f7 da negl %edx | |
// 10e: 81 fa 01 80 ff ff cmpl $0xffff8001, %edx # imm = 0xFFFF8001 | |
// 114: be 00 80 ff ff movl $0xffff8000, %esi # imm = 0xFFFF8000 | |
// 119: 0f 4d f2 cmovgel %edx, %esi | |
// 11c: 66 89 31 movw %si, (%rcx) | |
// 11f: 85 c0 testl %eax, %eax | |
// 121: 0f 89 31 ff ff ff jns 0x58 <_JIT_ENTRY+0x58> | |
// 127: 49 8b 04 24 movq (%r12), %rax | |
// 12b: 85 c0 testl %eax, %eax | |
// 12d: 78 12 js 0x141 <_JIT_ENTRY+0x141> | |
// 12f: 48 ff c8 decq %rax | |
// 132: 49 89 04 24 movq %rax, (%r12) | |
// 136: 75 09 jne 0x141 <_JIT_ENTRY+0x141> | |
// 138: 4c 89 e7 movq %r12, %rdi | |
// 13b: ff 15 00 00 00 00 callq *(%rip) # 0x141 <_JIT_ENTRY+0x141> | |
// 000000000000013d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 141: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x148 <_JIT_ENTRY+0x148> | |
// 0000000000000144: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 148: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 14f: 4c 29 f3 subq %r14, %rbx | |
// 152: 48 83 c3 b8 addq $-0x48, %rbx | |
// 156: 48 c1 eb 03 shrq $0x3, %rbx | |
// 15a: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 15e: 45 31 ed xorl %r13d, %r13d | |
// 161: e9 01 ff ff ff jmp 0x67 <_JIT_ENTRY+0x67> | |
// 166: | |
static const unsigned char _COLD_EXIT_code_body[359] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0xa2, 0x28, | |
0x01, 0x00, 0x00, 0x0f, 0xb7, 0x2d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe5, 0x04, 0x41, 0x8b, | |
0x4c, 0x2c, 0x78, 0x41, 0x8b, 0x54, 0x2c, 0x7c, | |
0xff, 0xc2, 0x66, 0x41, 0x89, 0x54, 0x2c, 0x7c, | |
0x48, 0x8b, 0x07, 0x4c, 0x8d, 0x2c, 0x48, 0x49, | |
0x81, 0xc5, 0xc8, 0x00, 0x00, 0x00, 0x0f, 0xbf, | |
0xca, 0x49, 0x8b, 0x57, 0x10, 0x0f, 0xb7, 0x92, | |
0xe0, 0x50, 0x02, 0x00, 0x39, 0xd1, 0x7d, 0x21, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x4c, | |
0x89, 0xe8, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xc3, 0x41, 0x80, 0x7d, 0x00, 0x46, 0x75, 0x1f, | |
0x48, 0x8b, 0x80, 0x98, 0x00, 0x00, 0x00, 0x41, | |
0x0f, 0xb6, 0x4d, 0x01, 0x48, 0x8b, 0x44, 0xc8, | |
0x08, 0x48, 0x89, 0x04, 0x24, 0x8b, 0x08, 0xff, | |
0xc1, 0x74, 0x1a, 0x89, 0x08, 0xeb, 0x16, 0x48, | |
0x89, 0xe1, 0x4c, 0x89, 0xf7, 0x4c, 0x89, 0xee, | |
0x48, 0x89, 0xda, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x85, 0xc0, 0x7e, 0x44, 0x48, 0x8b, 0x04, | |
0x24, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x06, 0x89, | |
0x08, 0x48, 0x8b, 0x04, 0x24, 0x0f, 0xb7, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, | |
0x49, 0x89, 0x84, 0x0c, 0x80, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x04, 0x24, 0x48, 0x8b, 0x40, 0x70, | |
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, | |
0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xff, | |
0xe0, 0x49, 0x8d, 0x0c, 0x2c, 0x48, 0x83, 0xc1, | |
0x7c, 0x49, 0x8b, 0x57, 0x10, 0x0f, 0xb7, 0x92, | |
0xe0, 0x50, 0x02, 0x00, 0xf7, 0xda, 0x81, 0xfa, | |
0x01, 0x80, 0xff, 0xff, 0xbe, 0x00, 0x80, 0xff, | |
0xff, 0x0f, 0x4d, 0xf2, 0x66, 0x89, 0x31, 0x85, | |
0xc0, 0x0f, 0x89, 0x31, 0xff, 0xff, 0xff, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, | |
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, | |
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, | |
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x45, 0x31, | |
0xed, 0xe9, 0x01, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _COLD_EXIT_code_holes[6] = { | |
{0x1e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0xad, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xc8, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x13d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x144, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyOptimizer_Optimize+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: EXECUTOR | |
static const unsigned char _COLD_EXIT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COLD_EXIT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyOptimizer_Optimize, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _COMPARE_OP | |
// | |
// /tmp/tmp2mfmnab2/_COMPARE_OP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1c: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 23: c1 ea 05 shrl $0x5, %edx | |
// 26: 48 89 ef movq %rbp, %rdi | |
// 29: 4c 89 ee movq %r13, %rsi | |
// 2c: ff 15 00 00 00 00 callq *(%rip) # 0x32 <_JIT_ENTRY+0x32> | |
// 000000000000002e: R_X86_64_GOTPCRELX PyObject_RichCompare-0x4 | |
// 32: 49 89 c4 movq %rax, %r12 | |
// 35: 48 8b 45 00 movq (%rbp), %rax | |
// 39: 85 c0 testl %eax, %eax | |
// 3b: 78 09 js 0x46 <_JIT_ENTRY+0x46> | |
// 3d: 48 ff c8 decq %rax | |
// 40: 48 89 45 00 movq %rax, (%rbp) | |
// 44: 74 1c je 0x62 <_JIT_ENTRY+0x62> | |
// 46: 49 8b 45 00 movq (%r13), %rax | |
// 4a: 85 c0 testl %eax, %eax | |
// 4c: 78 25 js 0x73 <_JIT_ENTRY+0x73> | |
// 4e: 48 ff c8 decq %rax | |
// 51: 49 89 45 00 movq %rax, (%r13) | |
// 55: 75 1c jne 0x73 <_JIT_ENTRY+0x73> | |
// 57: 4c 89 ef movq %r13, %rdi | |
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 60: eb 11 jmp 0x73 <_JIT_ENTRY+0x73> | |
// 62: 48 89 ef movq %rbp, %rdi | |
// 65: ff 15 00 00 00 00 callq *(%rip) # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 6b: 49 8b 45 00 movq (%r13), %rax | |
// 6f: 85 c0 testl %eax, %eax | |
// 71: 79 db jns 0x4e <_JIT_ENTRY+0x4e> | |
// 73: 4d 8d 6f f0 leaq -0x10(%r15), %r13 | |
// 77: 4d 85 e4 testq %r12, %r12 | |
// 7a: 74 32 je 0xae <_JIT_ENTRY+0xae> | |
// 7c: f6 05 00 00 00 00 10 testb $0x10, (%rip) # 0x83 <_JIT_ENTRY+0x83> | |
// 000000000000007e: R_X86_64_GOTPCREL _JIT_OPARG-0x5 | |
// 83: 74 6d je 0xf2 <_JIT_ENTRY+0xf2> | |
// 85: 4c 89 e7 movq %r12, %rdi | |
// 88: ff 15 00 00 00 00 callq *(%rip) # 0x8e <_JIT_ENTRY+0x8e> | |
// 000000000000008a: R_X86_64_GOTPCRELX PyObject_IsTrue-0x4 | |
// 8e: 89 c5 movl %eax, %ebp | |
// 90: 49 8b 04 24 movq (%r12), %rax | |
// 94: 85 c0 testl %eax, %eax | |
// 96: 78 09 js 0xa1 <_JIT_ENTRY+0xa1> | |
// 98: 48 ff c8 decq %rax | |
// 9b: 49 89 04 24 movq %rax, (%r12) | |
// 9f: 74 3b je 0xdc <_JIT_ENTRY+0xdc> | |
// a1: 85 ed testl %ebp, %ebp | |
// a3: 75 44 jne 0xe9 <_JIT_ENTRY+0xe9> | |
// a5: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0xac <_JIT_ENTRY+0xac> | |
// 00000000000000a8: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// ac: 79 44 jns 0xf2 <_JIT_ENTRY+0xf2> | |
// ae: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// b5: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// bc: 49 29 dd subq %rbx, %r13 | |
// bf: 49 83 c5 b8 addq $-0x48, %r13 | |
// c3: 49 c1 ed 03 shrq $0x3, %r13 | |
// c7: 44 89 6b 40 movl %r13d, 0x40(%rbx) | |
// cb: 31 c0 xorl %eax, %eax | |
// cd: 48 83 c4 08 addq $0x8, %rsp | |
// d1: 5b popq %rbx | |
// d2: 41 5c popq %r12 | |
// d4: 41 5d popq %r13 | |
// d6: 41 5e popq %r14 | |
// d8: 41 5f popq %r15 | |
// da: 5d popq %rbp | |
// db: c3 retq | |
// dc: 4c 89 e7 movq %r12, %rdi | |
// df: ff 15 00 00 00 00 callq *(%rip) # 0xe5 <_JIT_ENTRY+0xe5> | |
// 00000000000000e1: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// e5: 85 ed testl %ebp, %ebp | |
// e7: 74 bc je 0xa5 <_JIT_ENTRY+0xa5> | |
// e9: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0xf0 <_JIT_ENTRY+0xf0> | |
// 00000000000000ec: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// f0: 78 bc js 0xae <_JIT_ENTRY+0xae> | |
// f2: 49 83 c7 f8 addq $-0x8, %r15 | |
// f6: 4d 89 65 00 movq %r12, (%r13) | |
// fa: 48 89 df movq %rbx, %rdi | |
// fd: 4c 89 fe movq %r15, %rsi | |
// 100: 4c 89 f2 movq %r14, %rdx | |
// 103: 48 83 c4 08 addq $0x8, %rsp | |
// 107: 5b popq %rbx | |
// 108: 41 5c popq %r12 | |
// 10a: 41 5d popq %r13 | |
// 10c: 41 5e popq %r14 | |
// 10e: 41 5f popq %r15 | |
// 110: 5d popq %rbp | |
// 111: ff 25 00 00 00 00 jmpq *(%rip) # 0x117 <_JIT_ENTRY+0x117> | |
// 0000000000000113: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 111: | |
static const unsigned char _COMPARE_OP_code_body[274] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0xc1, 0xea, 0x05, 0x48, 0x89, | |
0xef, 0x4c, 0x89, 0xee, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x11, 0x48, 0x89, 0xef, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x79, 0xdb, 0x4d, 0x8d, 0x6f, 0xf0, 0x4d, | |
0x85, 0xe4, 0x74, 0x32, 0xf6, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x10, 0x74, 0x6d, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x09, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x74, | |
0x3b, 0x85, 0xed, 0x75, 0x44, 0x4c, 0x8b, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x79, 0x44, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdd, 0x49, | |
0x83, 0xc5, 0xb8, 0x49, 0xc1, 0xed, 0x03, 0x44, | |
0x89, 0x6b, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xed, 0x74, | |
0xbc, 0x4c, 0x8b, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x78, 0xbc, 0x49, 0x83, 0xc7, 0xf8, 0x4d, 0x89, | |
0x65, 0x00, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, | |
0x4c, 0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, | |
}; | |
static const Hole _COMPARE_OP_code_holes[11] = { | |
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x67, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x7e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5}, | |
{0x8a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xa8, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xe1, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xec, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyObject_RichCompare+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: &PyObject_IsTrue+0x0 | |
// 20: &_Py_FalseStruct+0x0 | |
// 28: EXECUTOR | |
// 30: &_Py_TrueStruct+0x0 | |
static const unsigned char _COMPARE_OP_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COMPARE_OP_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_RichCompare, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_IsTrue, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _COMPARE_OP_FLOAT | |
// | |
// /tmp/tmp2mfmnab2/_COMPARE_OP_FLOAT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 48 83 ec 18 subq $0x18, %rsp | |
// b: 48 89 d3 movq %rdx, %rbx | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 48 8b 7e f0 movq -0x10(%rsi), %rdi | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: f2 0f 10 47 10 movsd 0x10(%rdi), %xmm0 # xmm0 = mem[0],zero | |
// 21: f2 41 0f 10 4c 24 10 movsd 0x10(%r12), %xmm1 # xmm1 = mem[0],zero | |
// 28: 48 8b 07 movq (%rdi), %rax | |
// 2b: 85 c0 testl %eax, %eax | |
// 2d: 78 08 js 0x37 <_JIT_ENTRY+0x37> | |
// 2f: 48 ff c8 decq %rax | |
// 32: 48 89 07 movq %rax, (%rdi) | |
// 35: 74 34 je 0x6b <_JIT_ENTRY+0x6b> | |
// 37: 49 8b 04 24 movq (%r12), %rax | |
// 3b: 85 c0 testl %eax, %eax | |
// 3d: 78 52 js 0x91 <_JIT_ENTRY+0x91> | |
// 3f: 48 ff c8 decq %rax | |
// 42: 49 89 04 24 movq %rax, (%r12) | |
// 46: 75 49 jne 0x91 <_JIT_ENTRY+0x91> | |
// 48: 4c 89 e7 movq %r12, %rdi | |
// 4b: f2 0f 11 44 24 10 movsd %xmm0, 0x10(%rsp) | |
// 51: f2 0f 11 4c 24 08 movsd %xmm1, 0x8(%rsp) | |
// 57: ff 15 00 00 00 00 callq *(%rip) # 0x5d <_JIT_ENTRY+0x5d> | |
// 0000000000000059: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4 | |
// 5d: f2 0f 10 4c 24 08 movsd 0x8(%rsp), %xmm1 # xmm1 = mem[0],zero | |
// 63: f2 0f 10 44 24 10 movsd 0x10(%rsp), %xmm0 # xmm0 = mem[0],zero | |
// 69: eb 26 jmp 0x91 <_JIT_ENTRY+0x91> | |
// 6b: f2 0f 11 44 24 10 movsd %xmm0, 0x10(%rsp) | |
// 71: f2 0f 11 4c 24 08 movsd %xmm1, 0x8(%rsp) | |
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d> | |
// 0000000000000079: R_X86_64_GOTPCRELX _PyFloat_ExactDealloc-0x4 | |
// 7d: f2 0f 10 4c 24 08 movsd 0x8(%rsp), %xmm1 # xmm1 = mem[0],zero | |
// 83: f2 0f 10 44 24 10 movsd 0x10(%rsp), %xmm0 # xmm0 = mem[0],zero | |
// 89: 49 8b 04 24 movq (%r12), %rax | |
// 8d: 85 c0 testl %eax, %eax | |
// 8f: 79 ae jns 0x3f <_JIT_ENTRY+0x3f> | |
// 91: 49 8d 77 f8 leaq -0x8(%r15), %rsi | |
// 95: 31 c0 xorl %eax, %eax | |
// 97: 66 0f 2e c1 ucomisd %xmm1, %xmm0 | |
// 9b: 0f 93 c0 setae %al | |
// 9e: 01 c0 addl %eax, %eax | |
// a0: 31 c9 xorl %ecx, %ecx | |
// a2: 66 0f 2e c8 ucomisd %xmm0, %xmm1 | |
// a6: 0f 93 c1 setae %cl | |
// a9: 09 c1 orl %eax, %ecx | |
// ab: 8b 05 00 00 00 00 movl (%rip), %eax # 0xb1 <_JIT_ENTRY+0xb1> | |
// 00000000000000ad: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// b1: 0f a3 c8 btl %ecx, %eax | |
// b4: 72 09 jb 0xbf <_JIT_ENTRY+0xbf> | |
// b6: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// bd: eb 07 jmp 0xc6 <_JIT_ENTRY+0xc6> | |
// bf: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc6 <_JIT_ENTRY+0xc6> | |
// 00000000000000c2: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c6: 49 89 47 f0 movq %rax, -0x10(%r15) | |
// ca: 4c 89 f7 movq %r14, %rdi | |
// cd: 48 89 da movq %rbx, %rdx | |
// d0: 48 83 c4 18 addq $0x18, %rsp | |
// d4: 5b popq %rbx | |
// d5: 41 5c popq %r12 | |
// d7: 41 5e popq %r14 | |
// d9: 41 5f popq %r15 | |
// db: ff 25 00 00 00 00 jmpq *(%rip) # 0xe1 <_JIT_ENTRY+0xe1> | |
// 00000000000000dd: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// db: | |
static const unsigned char _COMPARE_OP_FLOAT_code_body[220] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x48, | |
0x83, 0xec, 0x18, 0x48, 0x89, 0xd3, 0x49, 0x89, | |
0xf7, 0x49, 0x89, 0xfe, 0x48, 0x8b, 0x7e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0xf2, 0x0f, 0x10, 0x47, | |
0x10, 0xf2, 0x41, 0x0f, 0x10, 0x4c, 0x24, 0x10, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x08, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x74, 0x34, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x52, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x49, | |
0x4c, 0x89, 0xe7, 0xf2, 0x0f, 0x11, 0x44, 0x24, | |
0x10, 0xf2, 0x0f, 0x11, 0x4c, 0x24, 0x08, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x0f, 0x10, | |
0x4c, 0x24, 0x08, 0xf2, 0x0f, 0x10, 0x44, 0x24, | |
0x10, 0xeb, 0x26, 0xf2, 0x0f, 0x11, 0x44, 0x24, | |
0x10, 0xf2, 0x0f, 0x11, 0x4c, 0x24, 0x08, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x0f, 0x10, | |
0x4c, 0x24, 0x08, 0xf2, 0x0f, 0x10, 0x44, 0x24, | |
0x10, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, | |
0xae, 0x49, 0x8d, 0x77, 0xf8, 0x31, 0xc0, 0x66, | |
0x0f, 0x2e, 0xc1, 0x0f, 0x93, 0xc0, 0x01, 0xc0, | |
0x31, 0xc9, 0x66, 0x0f, 0x2e, 0xc8, 0x0f, 0x93, | |
0xc1, 0x09, 0xc1, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x0f, 0xa3, 0xc8, 0x72, 0x09, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x07, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x47, 0xf0, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xda, | |
0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _COMPARE_OP_FLOAT_code_holes[6] = { | |
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xad, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0xb9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc2, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyFloat_ExactDealloc+0x0 | |
// 8: OPARG | |
// 10: &_Py_FalseStruct+0x0 | |
// 18: &_Py_TrueStruct+0x0 | |
static const unsigned char _COMPARE_OP_FLOAT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COMPARE_OP_FLOAT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyFloat_ExactDealloc, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _COMPARE_OP_INT | |
// | |
// /tmp/tmp2mfmnab2/_COMPARE_OP_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 48 83 ec 18 subq $0x18, %rsp | |
// e: 49 89 d7 movq %rdx, %r15 | |
// 11: 49 89 f6 movq %rsi, %r14 | |
// 14: 48 89 fb movq %rdi, %rbx | |
// 17: 48 8b 7e f0 movq -0x10(%rsi), %rdi | |
// 1b: 48 8b 6f 10 movq 0x10(%rdi), %rbp | |
// 1f: 48 83 fd 0f cmpq $0xf, %rbp | |
// 23: 77 0f ja 0x34 <_JIT_ENTRY+0x34> | |
// 25: 4d 8b 66 f8 movq -0x8(%r14), %r12 | |
// 29: 4d 8b 6c 24 10 movq 0x10(%r12), %r13 | |
// 2e: 49 83 fd 0f cmpq $0xf, %r13 | |
// 32: 76 3f jbe 0x73 <_JIT_ENTRY+0x73> | |
// 34: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 3b: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 42: 49 29 de subq %rbx, %r14 | |
// 45: 49 83 c6 b8 addq $-0x48, %r14 | |
// 49: 49 c1 ee 03 shrq $0x3, %r14 | |
// 4d: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 51: 48 8b 03 movq (%rbx), %rax | |
// 54: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5a <_JIT_ENTRY+0x5a> | |
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 5a: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 5e: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 64: 48 83 c4 18 addq $0x18, %rsp | |
// 68: 5b popq %rbx | |
// 69: 41 5c popq %r12 | |
// 6b: 41 5d popq %r13 | |
// 6d: 41 5e popq %r14 | |
// 6f: 41 5f popq %r15 | |
// 71: 5d popq %rbp | |
// 72: c3 retq | |
// 73: 44 8b 47 18 movl 0x18(%rdi), %r8d | |
// 77: 41 8b 54 24 18 movl 0x18(%r12), %edx | |
// 7c: 48 8b 07 movq (%rdi), %rax | |
// 7f: 85 c0 testl %eax, %eax | |
// 81: 78 22 js 0xa5 <_JIT_ENTRY+0xa5> | |
// 83: 48 ff c8 decq %rax | |
// 86: 48 89 07 movq %rax, (%rdi) | |
// 89: 75 1a jne 0xa5 <_JIT_ENTRY+0xa5> | |
// 8b: 48 89 54 24 08 movq %rdx, 0x8(%rsp) | |
// 90: 4c 89 44 24 10 movq %r8, 0x10(%rsp) | |
// 95: ff 15 00 00 00 00 callq *(%rip) # 0x9b <_JIT_ENTRY+0x9b> | |
// 0000000000000097: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// 9b: 4c 8b 44 24 10 movq 0x10(%rsp), %r8 | |
// a0: 48 8b 54 24 08 movq 0x8(%rsp), %rdx | |
// a5: 49 8b 04 24 movq (%r12), %rax | |
// a9: 85 c0 testl %eax, %eax | |
// ab: 78 22 js 0xcf <_JIT_ENTRY+0xcf> | |
// ad: 48 ff c8 decq %rax | |
// b0: 49 89 04 24 movq %rax, (%r12) | |
// b4: 75 19 jne 0xcf <_JIT_ENTRY+0xcf> | |
// b6: 4c 89 e7 movq %r12, %rdi | |
// b9: 48 89 54 24 08 movq %rdx, 0x8(%rsp) | |
// be: 4d 89 c4 movq %r8, %r12 | |
// c1: ff 15 00 00 00 00 callq *(%rip) # 0xc7 <_JIT_ENTRY+0xc7> | |
// 00000000000000c3: R_X86_64_GOTPCRELX PyObject_Free-0x4 | |
// c7: 4d 89 e0 movq %r12, %r8 | |
// ca: 48 8b 54 24 08 movq 0x8(%rsp), %rdx | |
// cf: 49 8d 76 f8 leaq -0x8(%r14), %rsi | |
// d3: 83 e5 03 andl $0x3, %ebp | |
// d6: b8 01 00 00 00 movl $0x1, %eax | |
// db: b9 01 00 00 00 movl $0x1, %ecx | |
// e0: 48 29 e9 subq %rbp, %rcx | |
// e3: 49 0f af c8 imulq %r8, %rcx | |
// e7: 41 83 e5 03 andl $0x3, %r13d | |
// eb: 4c 29 e8 subq %r13, %rax | |
// ee: 48 0f af c2 imulq %rdx, %rax | |
// f2: 31 d2 xorl %edx, %edx | |
// f4: 31 ff xorl %edi, %edi | |
// f6: 48 39 c1 cmpq %rax, %rcx | |
// f9: 0f 9d c2 setge %dl | |
// fc: 40 0f 9e c7 setle %dil | |
// 100: 01 d2 addl %edx, %edx | |
// 102: 09 d7 orl %edx, %edi | |
// 104: 8b 05 00 00 00 00 movl (%rip), %eax # 0x10a <_JIT_ENTRY+0x10a> | |
// 0000000000000106: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 10a: 0f a3 f8 btl %edi, %eax | |
// 10d: 72 09 jb 0x118 <_JIT_ENTRY+0x118> | |
// 10f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x116 <_JIT_ENTRY+0x116> | |
// 0000000000000112: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 116: eb 07 jmp 0x11f <_JIT_ENTRY+0x11f> | |
// 118: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11f <_JIT_ENTRY+0x11f> | |
// 000000000000011b: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// 11f: 49 89 46 f0 movq %rax, -0x10(%r14) | |
// 123: 48 89 df movq %rbx, %rdi | |
// 126: 4c 89 fa movq %r15, %rdx | |
// 129: 48 83 c4 18 addq $0x18, %rsp | |
// 12d: 5b popq %rbx | |
// 12e: 41 5c popq %r12 | |
// 130: 41 5d popq %r13 | |
// 132: 41 5e popq %r14 | |
// 134: 41 5f popq %r15 | |
// 136: 5d popq %rbp | |
// 137: ff 25 00 00 00 00 jmpq *(%rip) # 0x13d <_JIT_ENTRY+0x13d> | |
// 0000000000000139: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 137: | |
static const unsigned char _COMPARE_OP_INT_code_body[312] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x48, 0x83, 0xec, 0x18, 0x49, 0x89, | |
0xd7, 0x49, 0x89, 0xf6, 0x48, 0x89, 0xfb, 0x48, | |
0x8b, 0x7e, 0xf0, 0x48, 0x8b, 0x6f, 0x10, 0x48, | |
0x83, 0xfd, 0x0f, 0x77, 0x0f, 0x4d, 0x8b, 0x66, | |
0xf8, 0x4d, 0x8b, 0x6c, 0x24, 0x10, 0x49, 0x83, | |
0xfd, 0x0f, 0x76, 0x3f, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, | |
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, | |
0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, 0xc4, 0x18, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, 0x44, 0x8b, 0x47, 0x18, 0x41, | |
0x8b, 0x54, 0x24, 0x18, 0x48, 0x8b, 0x07, 0x85, | |
0xc0, 0x78, 0x22, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x07, 0x75, 0x1a, 0x48, 0x89, 0x54, 0x24, 0x08, | |
0x4c, 0x89, 0x44, 0x24, 0x10, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x44, 0x24, 0x10, | |
0x48, 0x8b, 0x54, 0x24, 0x08, 0x49, 0x8b, 0x04, | |
0x24, 0x85, 0xc0, 0x78, 0x22, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x04, 0x24, 0x75, 0x19, 0x4c, 0x89, | |
0xe7, 0x48, 0x89, 0x54, 0x24, 0x08, 0x4d, 0x89, | |
0xc4, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, | |
0x89, 0xe0, 0x48, 0x8b, 0x54, 0x24, 0x08, 0x49, | |
0x8d, 0x76, 0xf8, 0x83, 0xe5, 0x03, 0xb8, 0x01, | |
0x00, 0x00, 0x00, 0xb9, 0x01, 0x00, 0x00, 0x00, | |
0x48, 0x29, 0xe9, 0x49, 0x0f, 0xaf, 0xc8, 0x41, | |
0x83, 0xe5, 0x03, 0x4c, 0x29, 0xe8, 0x48, 0x0f, | |
0xaf, 0xc2, 0x31, 0xd2, 0x31, 0xff, 0x48, 0x39, | |
0xc1, 0x0f, 0x9d, 0xc2, 0x40, 0x0f, 0x9e, 0xc7, | |
0x01, 0xd2, 0x09, 0xd7, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x0f, 0xa3, 0xf8, 0x72, 0x09, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x07, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x46, 0xf0, 0x48, 0x89, 0xdf, 0x4c, 0x89, | |
0xfa, 0x48, 0x83, 0xc4, 0x18, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _COMPARE_OP_INT_code_holes[8] = { | |
{0x37, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x56, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x97, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xc3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x106, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x112, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x11b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: TARGET | |
// 10: &PyObject_Free+0x0 | |
// 18: OPARG | |
// 20: &_Py_FalseStruct+0x0 | |
// 28: &_Py_TrueStruct+0x0 | |
static const unsigned char _COMPARE_OP_INT_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COMPARE_OP_INT_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Free, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _COMPARE_OP_STR | |
// | |
// /tmp/tmp2mfmnab2/_COMPARE_OP_STR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 48 89 d3 movq %rdx, %rbx | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 4c 89 ef movq %r13, %rdi | |
// 1f: 4c 89 e6 movq %r12, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _PyUnicode_Equal-0x4 | |
// 28: 89 c5 movl %eax, %ebp | |
// 2a: 49 8b 45 00 movq (%r13), %rax | |
// 2e: 85 c0 testl %eax, %eax | |
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b> | |
// 32: 48 ff c8 decq %rax | |
// 35: 49 89 45 00 movq %rax, (%r13) | |
// 39: 74 1c je 0x57 <_JIT_ENTRY+0x57> | |
// 3b: 49 8b 04 24 movq (%r12), %rax | |
// 3f: 85 c0 testl %eax, %eax | |
// 41: 78 25 js 0x68 <_JIT_ENTRY+0x68> | |
// 43: 48 ff c8 decq %rax | |
// 46: 49 89 04 24 movq %rax, (%r12) | |
// 4a: 75 1c jne 0x68 <_JIT_ENTRY+0x68> | |
// 4c: 4c 89 e7 movq %r12, %rdi | |
// 4f: ff 15 00 00 00 00 callq *(%rip) # 0x55 <_JIT_ENTRY+0x55> | |
// 0000000000000051: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4 | |
// 55: eb 11 jmp 0x68 <_JIT_ENTRY+0x68> | |
// 57: 4c 89 ef movq %r13, %rdi | |
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _PyUnicode_ExactDealloc-0x4 | |
// 60: 49 8b 04 24 movq (%r12), %rax | |
// 64: 85 c0 testl %eax, %eax | |
// 66: 79 db jns 0x43 <_JIT_ENTRY+0x43> | |
// 68: 49 8d 77 f8 leaq -0x8(%r15), %rsi | |
// 6c: 83 c5 07 addl $0x7, %ebp | |
// 6f: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x76 <_JIT_ENTRY+0x76> | |
// 0000000000000072: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 76: 66 85 e8 testw %bp, %ax | |
// 79: 75 09 jne 0x84 <_JIT_ENTRY+0x84> | |
// 7b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x82 <_JIT_ENTRY+0x82> | |
// 000000000000007e: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 82: eb 07 jmp 0x8b <_JIT_ENTRY+0x8b> | |
// 84: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x8b <_JIT_ENTRY+0x8b> | |
// 0000000000000087: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// 8b: 49 89 47 f0 movq %rax, -0x10(%r15) | |
// 8f: 4c 89 f7 movq %r14, %rdi | |
// 92: 48 89 da movq %rbx, %rdx | |
// 95: 48 83 c4 08 addq $0x8, %rsp | |
// 99: 5b popq %rbx | |
// 9a: 41 5c popq %r12 | |
// 9c: 41 5d popq %r13 | |
// 9e: 41 5e popq %r14 | |
// a0: 41 5f popq %r15 | |
// a2: 5d popq %rbp | |
// a3: ff 25 00 00 00 00 jmpq *(%rip) # 0xa9 <_JIT_ENTRY+0xa9> | |
// 00000000000000a5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a3: | |
static const unsigned char _COMPARE_OP_STR_code_body[164] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x48, 0x89, 0xd3, 0x49, 0x89, | |
0xf7, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xef, 0x4c, | |
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x74, 0x1c, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xdb, | |
0x49, 0x8d, 0x77, 0xf8, 0x83, 0xc5, 0x07, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x66, 0x85, | |
0xe8, 0x75, 0x09, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0xeb, 0x07, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x47, 0xf0, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xda, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _COMPARE_OP_STR_code_holes[7] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x51, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x72, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x7e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x87, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &_PyUnicode_Equal+0x0 | |
// 8: &_PyUnicode_ExactDealloc+0x0 | |
// 10: OPARG | |
// 18: &_Py_FalseStruct+0x0 | |
// 20: &_Py_TrueStruct+0x0 | |
static const unsigned char _COMPARE_OP_STR_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COMPARE_OP_STR_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_Equal, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyUnicode_ExactDealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _CONTAINS_OP | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 4c 89 e7 movq %r12, %rdi | |
// 1f: 4c 89 ee movq %r13, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX PySequence_Contains-0x4 | |
// 28: 89 c5 movl %eax, %ebp | |
// 2a: 49 8b 45 00 movq (%r13), %rax | |
// 2e: 85 c0 testl %eax, %eax | |
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b> | |
// 32: 48 ff c8 decq %rax | |
// 35: 49 89 45 00 movq %rax, (%r13) | |
// 39: 74 1c je 0x57 <_JIT_ENTRY+0x57> | |
// 3b: 49 8b 04 24 movq (%r12), %rax | |
// 3f: 85 c0 testl %eax, %eax | |
// 41: 78 25 js 0x68 <_JIT_ENTRY+0x68> | |
// 43: 48 ff c8 decq %rax | |
// 46: 49 89 04 24 movq %rax, (%r12) | |
// 4a: 75 1c jne 0x68 <_JIT_ENTRY+0x68> | |
// 4c: 4c 89 e7 movq %r12, %rdi | |
// 4f: ff 15 00 00 00 00 callq *(%rip) # 0x55 <_JIT_ENTRY+0x55> | |
// 0000000000000051: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 55: eb 11 jmp 0x68 <_JIT_ENTRY+0x68> | |
// 57: 4c 89 ef movq %r13, %rdi | |
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 60: 49 8b 04 24 movq (%r12), %rax | |
// 64: 85 c0 testl %eax, %eax | |
// 66: 79 db jns 0x43 <_JIT_ENTRY+0x43> | |
// 68: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6c: 85 ed testl %ebp, %ebp | |
// 6e: 78 18 js 0x88 <_JIT_ENTRY+0x88> | |
// 70: 49 83 c7 f8 addq $-0x8, %r15 | |
// 74: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x7b <_JIT_ENTRY+0x7b> | |
// 0000000000000077: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 7b: 39 cd cmpl %ecx, %ebp | |
// 7d: 75 36 jne 0xb5 <_JIT_ENTRY+0xb5> | |
// 7f: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x86 <_JIT_ENTRY+0x86> | |
// 0000000000000082: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 86: eb 34 jmp 0xbc <_JIT_ENTRY+0xbc> | |
// 88: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x8f <_JIT_ENTRY+0x8f> | |
// 000000000000008b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 8f: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// 96: 48 29 d8 subq %rbx, %rax | |
// 99: 48 83 c0 b8 addq $-0x48, %rax | |
// 9d: 48 c1 e8 03 shrq $0x3, %rax | |
// a1: 89 43 40 movl %eax, 0x40(%rbx) | |
// a4: 31 c0 xorl %eax, %eax | |
// a6: 48 83 c4 08 addq $0x8, %rsp | |
// aa: 5b popq %rbx | |
// ab: 41 5c popq %r12 | |
// ad: 41 5d popq %r13 | |
// af: 41 5e popq %r14 | |
// b1: 41 5f popq %r15 | |
// b3: 5d popq %rbp | |
// b4: c3 retq | |
// b5: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xbc <_JIT_ENTRY+0xbc> | |
// 00000000000000b8: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// bc: 48 89 08 movq %rcx, (%rax) | |
// bf: 48 89 df movq %rbx, %rdi | |
// c2: 4c 89 fe movq %r15, %rsi | |
// c5: 4c 89 f2 movq %r14, %rdx | |
// c8: 48 83 c4 08 addq $0x8, %rsp | |
// cc: 5b popq %rbx | |
// cd: 41 5c popq %r12 | |
// cf: 41 5d popq %r13 | |
// d1: 41 5e popq %r14 | |
// d3: 41 5f popq %r15 | |
// d5: 5d popq %rbp | |
// d6: ff 25 00 00 00 00 jmpq *(%rip) # 0xdc <_JIT_ENTRY+0xdc> | |
// 00000000000000d8: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// d6: | |
static const unsigned char _CONTAINS_OP_code_body[215] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xe7, 0x4c, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x74, 0x1c, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x1c, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xdb, | |
0x49, 0x8d, 0x47, 0xf0, 0x85, 0xed, 0x78, 0x18, | |
0x49, 0x83, 0xc7, 0xf8, 0x0f, 0xb7, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, 0x36, 0x48, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x34, | |
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x8e, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, | |
0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, | |
0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x48, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x08, 0x48, | |
0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, 0x89, 0xf2, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _CONTAINS_OP_code_holes[8] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x51, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x77, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0xc}, | |
{0x82, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb8, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: &PySequence_Contains+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: OPARG | |
// 18: &_Py_FalseStruct+0x0 | |
// 20: EXECUTOR | |
// 28: &_Py_TrueStruct+0x0 | |
static const unsigned char _CONTAINS_OP_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Contains, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _CONTAINS_OP_DICT | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP_DICT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4 | |
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65> | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 34: 49 29 de subq %rbx, %r14 | |
// 37: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 43: 48 8b 03 movq (%rbx), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: 48 83 c4 08 addq $0x8, %rsp | |
// 5a: 5b popq %rbx | |
// 5b: 41 5c popq %r12 | |
// 5d: 41 5d popq %r13 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: 5d popq %rbp | |
// 64: c3 retq | |
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13 | |
// 69: 4c 89 e7 movq %r12, %rdi | |
// 6c: 4c 89 ee movq %r13, %rsi | |
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75> | |
// 0000000000000071: R_X86_64_GOTPCRELX PyDict_Contains-0x4 | |
// 75: 89 c5 movl %eax, %ebp | |
// 77: 49 8b 45 00 movq (%r13), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 45 00 movq %rax, (%r13) | |
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91> | |
// 88: 4c 89 ef movq %r13, %rdi | |
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91> | |
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 91: 49 8b 04 24 movq (%r12), %rax | |
// 95: 85 c0 testl %eax, %eax | |
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2> | |
// 99: 48 ff c8 decq %rax | |
// 9c: 49 89 04 24 movq %rax, (%r12) | |
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9> | |
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// a6: 85 ed testl %ebp, %ebp | |
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa> | |
// aa: 49 83 c6 f8 addq $-0x8, %r14 | |
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// b5: 39 cd cmpl %ecx, %ebp | |
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2> | |
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9> | |
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9> | |
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c9: 48 89 08 movq %rcx, (%rax) | |
// cc: 48 89 df movq %rbx, %rdi | |
// cf: 4c 89 f6 movq %r14, %rsi | |
// d2: 4c 89 fa movq %r15, %rdx | |
// d5: 48 83 c4 08 addq $0x8, %rsp | |
// d9: 5b popq %rbx | |
// da: 41 5c popq %r12 | |
// dc: 41 5d popq %r13 | |
// de: 41 5e popq %r14 | |
// e0: 41 5f popq %r15 | |
// e2: 5d popq %rbp | |
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e9: 4c 89 e7 movq %r12, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f6: 85 ed testl %ebp, %ebp | |
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa> | |
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101> | |
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 108: 48 29 d8 subq %rbx, %rax | |
// 10b: 48 83 c0 b8 addq $-0x48, %rax | |
// 10f: 48 c1 e8 03 shrq $0x3, %rax | |
// 113: 89 43 40 movl %eax, 0x40(%rbx) | |
// 116: 31 c0 xorl %eax, %eax | |
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56> | |
// 11d: | |
static const unsigned char _CONTAINS_OP_DICT_code_body[286] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8, | |
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e, | |
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, | |
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, | |
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, | |
0xe9, 0x39, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CONTAINS_OP_DICT_code_holes[12] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24}, | |
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyDict_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &PyDict_Contains+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: OPARG | |
// 30: &_Py_FalseStruct+0x0 | |
// 38: &_Py_TrueStruct+0x0 | |
// 40: CONTINUE | |
static const unsigned char _CONTAINS_OP_DICT_data_body[73] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_DICT_data_holes[10] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Contains, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CONTAINS_OP_LIST | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP_LIST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyList_Type-0x4 | |
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65> | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 34: 49 29 de subq %rbx, %r14 | |
// 37: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 43: 48 8b 03 movq (%rbx), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: 48 83 c4 08 addq $0x8, %rsp | |
// 5a: 5b popq %rbx | |
// 5b: 41 5c popq %r12 | |
// 5d: 41 5d popq %r13 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: 5d popq %rbp | |
// 64: c3 retq | |
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13 | |
// 69: 4c 89 e7 movq %r12, %rdi | |
// 6c: 4c 89 ee movq %r13, %rsi | |
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75> | |
// 0000000000000071: R_X86_64_GOTPCRELX _PyList_Contains-0x4 | |
// 75: 89 c5 movl %eax, %ebp | |
// 77: 49 8b 45 00 movq (%r13), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 45 00 movq %rax, (%r13) | |
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91> | |
// 88: 4c 89 ef movq %r13, %rdi | |
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91> | |
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 91: 49 8b 04 24 movq (%r12), %rax | |
// 95: 85 c0 testl %eax, %eax | |
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2> | |
// 99: 48 ff c8 decq %rax | |
// 9c: 49 89 04 24 movq %rax, (%r12) | |
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9> | |
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// a6: 85 ed testl %ebp, %ebp | |
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa> | |
// aa: 49 83 c6 f8 addq $-0x8, %r14 | |
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// b5: 39 cd cmpl %ecx, %ebp | |
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2> | |
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9> | |
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9> | |
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c9: 48 89 08 movq %rcx, (%rax) | |
// cc: 48 89 df movq %rbx, %rdi | |
// cf: 4c 89 f6 movq %r14, %rsi | |
// d2: 4c 89 fa movq %r15, %rdx | |
// d5: 48 83 c4 08 addq $0x8, %rsp | |
// d9: 5b popq %rbx | |
// da: 41 5c popq %r12 | |
// dc: 41 5d popq %r13 | |
// de: 41 5e popq %r14 | |
// e0: 41 5f popq %r15 | |
// e2: 5d popq %rbp | |
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e9: 4c 89 e7 movq %r12, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f6: 85 ed testl %ebp, %ebp | |
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa> | |
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101> | |
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 108: 48 29 d8 subq %rbx, %rax | |
// 10b: 48 83 c0 b8 addq $-0x48, %rax | |
// 10f: 48 c1 e8 03 shrq $0x3, %rax | |
// 113: 89 43 40 movl %eax, 0x40(%rbx) | |
// 116: 31 c0 xorl %eax, %eax | |
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56> | |
// 11d: | |
static const unsigned char _CONTAINS_OP_LIST_code_body[286] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8, | |
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e, | |
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, | |
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, | |
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, | |
0xe9, 0x39, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CONTAINS_OP_LIST_code_holes[12] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24}, | |
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyList_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &_PyList_Contains+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: OPARG | |
// 30: &_Py_FalseStruct+0x0 | |
// 38: &_Py_TrueStruct+0x0 | |
// 40: CONTINUE | |
static const unsigned char _CONTAINS_OP_LIST_data_body[73] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_LIST_data_holes[10] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyList_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_Contains, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CONTAINS_OP_SET | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP_SET.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX PySet_Type-0x4 | |
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65> | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 34: 49 29 de subq %rbx, %r14 | |
// 37: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 43: 48 8b 03 movq (%rbx), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: 48 83 c4 08 addq $0x8, %rsp | |
// 5a: 5b popq %rbx | |
// 5b: 41 5c popq %r12 | |
// 5d: 41 5d popq %r13 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: 5d popq %rbp | |
// 64: c3 retq | |
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13 | |
// 69: 4c 89 e7 movq %r12, %rdi | |
// 6c: 4c 89 ee movq %r13, %rsi | |
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75> | |
// 0000000000000071: R_X86_64_GOTPCRELX _PySet_Contains-0x4 | |
// 75: 89 c5 movl %eax, %ebp | |
// 77: 49 8b 45 00 movq (%r13), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 45 00 movq %rax, (%r13) | |
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91> | |
// 88: 4c 89 ef movq %r13, %rdi | |
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91> | |
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 91: 49 8b 04 24 movq (%r12), %rax | |
// 95: 85 c0 testl %eax, %eax | |
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2> | |
// 99: 48 ff c8 decq %rax | |
// 9c: 49 89 04 24 movq %rax, (%r12) | |
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9> | |
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// a6: 85 ed testl %ebp, %ebp | |
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa> | |
// aa: 49 83 c6 f8 addq $-0x8, %r14 | |
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// b5: 39 cd cmpl %ecx, %ebp | |
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2> | |
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9> | |
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9> | |
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c9: 48 89 08 movq %rcx, (%rax) | |
// cc: 48 89 df movq %rbx, %rdi | |
// cf: 4c 89 f6 movq %r14, %rsi | |
// d2: 4c 89 fa movq %r15, %rdx | |
// d5: 48 83 c4 08 addq $0x8, %rsp | |
// d9: 5b popq %rbx | |
// da: 41 5c popq %r12 | |
// dc: 41 5d popq %r13 | |
// de: 41 5e popq %r14 | |
// e0: 41 5f popq %r15 | |
// e2: 5d popq %rbp | |
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e9: 4c 89 e7 movq %r12, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f6: 85 ed testl %ebp, %ebp | |
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa> | |
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101> | |
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 108: 48 29 d8 subq %rbx, %rax | |
// 10b: 48 83 c0 b8 addq $-0x48, %rax | |
// 10f: 48 c1 e8 03 shrq $0x3, %rax | |
// 113: 89 43 40 movl %eax, 0x40(%rbx) | |
// 116: 31 c0 xorl %eax, %eax | |
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56> | |
// 11d: | |
static const unsigned char _CONTAINS_OP_SET_code_body[286] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8, | |
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e, | |
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, | |
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, | |
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, | |
0xe9, 0x39, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CONTAINS_OP_SET_code_holes[12] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24}, | |
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PySet_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &_PySet_Contains+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: OPARG | |
// 30: &_Py_FalseStruct+0x0 | |
// 38: &_Py_TrueStruct+0x0 | |
// 40: CONTINUE | |
static const unsigned char _CONTAINS_OP_SET_data_body[73] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_SET_data_holes[10] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySet_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PySet_Contains, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CONTAINS_OP_STR | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP_STR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65> | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 34: 49 29 de subq %rbx, %r14 | |
// 37: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 43: 48 8b 03 movq (%rbx), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: 48 83 c4 08 addq $0x8, %rsp | |
// 5a: 5b popq %rbx | |
// 5b: 41 5c popq %r12 | |
// 5d: 41 5d popq %r13 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: 5d popq %rbp | |
// 64: c3 retq | |
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13 | |
// 69: 4c 89 e7 movq %r12, %rdi | |
// 6c: 4c 89 ee movq %r13, %rsi | |
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75> | |
// 0000000000000071: R_X86_64_GOTPCRELX PyUnicode_Contains-0x4 | |
// 75: 89 c5 movl %eax, %ebp | |
// 77: 49 8b 45 00 movq (%r13), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 45 00 movq %rax, (%r13) | |
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91> | |
// 88: 4c 89 ef movq %r13, %rdi | |
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91> | |
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 91: 49 8b 04 24 movq (%r12), %rax | |
// 95: 85 c0 testl %eax, %eax | |
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2> | |
// 99: 48 ff c8 decq %rax | |
// 9c: 49 89 04 24 movq %rax, (%r12) | |
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9> | |
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// a6: 85 ed testl %ebp, %ebp | |
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa> | |
// aa: 49 83 c6 f8 addq $-0x8, %r14 | |
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// b5: 39 cd cmpl %ecx, %ebp | |
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2> | |
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9> | |
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9> | |
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c9: 48 89 08 movq %rcx, (%rax) | |
// cc: 48 89 df movq %rbx, %rdi | |
// cf: 4c 89 f6 movq %r14, %rsi | |
// d2: 4c 89 fa movq %r15, %rdx | |
// d5: 48 83 c4 08 addq $0x8, %rsp | |
// d9: 5b popq %rbx | |
// da: 41 5c popq %r12 | |
// dc: 41 5d popq %r13 | |
// de: 41 5e popq %r14 | |
// e0: 41 5f popq %r15 | |
// e2: 5d popq %rbp | |
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e9: 4c 89 e7 movq %r12, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f6: 85 ed testl %ebp, %ebp | |
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa> | |
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101> | |
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 108: 48 29 d8 subq %rbx, %rax | |
// 10b: 48 83 c0 b8 addq $-0x48, %rax | |
// 10f: 48 c1 e8 03 shrq $0x3, %rax | |
// 113: 89 43 40 movl %eax, 0x40(%rbx) | |
// 116: 31 c0 xorl %eax, %eax | |
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56> | |
// 11d: | |
static const unsigned char _CONTAINS_OP_STR_code_body[286] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8, | |
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e, | |
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, | |
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, | |
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, | |
0xe9, 0x39, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CONTAINS_OP_STR_code_holes[12] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24}, | |
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyUnicode_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &PyUnicode_Contains+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: OPARG | |
// 30: &_Py_FalseStruct+0x0 | |
// 38: &_Py_TrueStruct+0x0 | |
// 40: CONTINUE | |
static const unsigned char _CONTAINS_OP_STR_data_body[73] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_STR_data_holes[10] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Contains, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CONTAINS_OP_TUPLE | |
// | |
// /tmp/tmp2mfmnab2/_CONTAINS_OP_TUPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 49 89 f6 movq %rsi, %r14 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 18: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1d: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX PyTuple_Type-0x4 | |
// 24: 74 3f je 0x65 <_JIT_ENTRY+0x65> | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 34: 49 29 de subq %rbx, %r14 | |
// 37: 49 83 c6 b8 addq $-0x48, %r14 | |
// 3b: 49 c1 ee 03 shrq $0x3, %r14 | |
// 3f: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 43: 48 8b 03 movq (%rbx), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: 48 83 c4 08 addq $0x8, %rsp | |
// 5a: 5b popq %rbx | |
// 5b: 41 5c popq %r12 | |
// 5d: 41 5d popq %r13 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: 5d popq %rbp | |
// 64: c3 retq | |
// 65: 4d 8b 6e f0 movq -0x10(%r14), %r13 | |
// 69: 4c 89 e7 movq %r12, %rdi | |
// 6c: 4c 89 ee movq %r13, %rsi | |
// 6f: ff 15 00 00 00 00 callq *(%rip) # 0x75 <_JIT_ENTRY+0x75> | |
// 0000000000000071: R_X86_64_GOTPCRELX _PyTuple_Contains-0x4 | |
// 75: 89 c5 movl %eax, %ebp | |
// 77: 49 8b 45 00 movq (%r13), %rax | |
// 7b: 85 c0 testl %eax, %eax | |
// 7d: 78 12 js 0x91 <_JIT_ENTRY+0x91> | |
// 7f: 48 ff c8 decq %rax | |
// 82: 49 89 45 00 movq %rax, (%r13) | |
// 86: 75 09 jne 0x91 <_JIT_ENTRY+0x91> | |
// 88: 4c 89 ef movq %r13, %rdi | |
// 8b: ff 15 00 00 00 00 callq *(%rip) # 0x91 <_JIT_ENTRY+0x91> | |
// 000000000000008d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 91: 49 8b 04 24 movq (%r12), %rax | |
// 95: 85 c0 testl %eax, %eax | |
// 97: 78 09 js 0xa2 <_JIT_ENTRY+0xa2> | |
// 99: 48 ff c8 decq %rax | |
// 9c: 49 89 04 24 movq %rax, (%r12) | |
// a0: 74 47 je 0xe9 <_JIT_ENTRY+0xe9> | |
// a2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// a6: 85 ed testl %ebp, %ebp | |
// a8: 78 50 js 0xfa <_JIT_ENTRY+0xfa> | |
// aa: 49 83 c6 f8 addq $-0x8, %r14 | |
// ae: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0xb5 <_JIT_ENTRY+0xb5> | |
// 00000000000000b1: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// b5: 39 cd cmpl %ecx, %ebp | |
// b7: 75 09 jne 0xc2 <_JIT_ENTRY+0xc2> | |
// b9: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// c0: eb 07 jmp 0xc9 <_JIT_ENTRY+0xc9> | |
// c2: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xc9 <_JIT_ENTRY+0xc9> | |
// 00000000000000c5: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// c9: 48 89 08 movq %rcx, (%rax) | |
// cc: 48 89 df movq %rbx, %rdi | |
// cf: 4c 89 f6 movq %r14, %rsi | |
// d2: 4c 89 fa movq %r15, %rdx | |
// d5: 48 83 c4 08 addq $0x8, %rsp | |
// d9: 5b popq %rbx | |
// da: 41 5c popq %r12 | |
// dc: 41 5d popq %r13 | |
// de: 41 5e popq %r14 | |
// e0: 41 5f popq %r15 | |
// e2: 5d popq %rbp | |
// e3: ff 25 00 00 00 00 jmpq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// e9: 4c 89 e7 movq %r12, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 49 8d 46 f0 leaq -0x10(%r14), %rax | |
// f6: 85 ed testl %ebp, %ebp | |
// f8: 79 b0 jns 0xaa <_JIT_ENTRY+0xaa> | |
// fa: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x101 <_JIT_ENTRY+0x101> | |
// 00000000000000fd: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 101: 49 89 8f 28 01 00 00 movq %rcx, 0x128(%r15) | |
// 108: 48 29 d8 subq %rbx, %rax | |
// 10b: 48 83 c0 b8 addq $-0x48, %rax | |
// 10f: 48 c1 e8 03 shrq $0x3, %rax | |
// 113: 89 43 40 movl %eax, 0x40(%rbx) | |
// 116: 31 c0 xorl %eax, %eax | |
// 118: e9 39 ff ff ff jmp 0x56 <_JIT_ENTRY+0x56> | |
// 11d: | |
static const unsigned char _CONTAINS_OP_TUPLE_code_body[286] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x49, 0x89, | |
0xf6, 0x48, 0x89, 0xfb, 0x4c, 0x8b, 0x66, 0xf8, | |
0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x3f, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xde, 0x49, | |
0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, | |
0x89, 0x73, 0x40, 0x48, 0x8b, 0x03, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4d, 0x8b, 0x6e, | |
0xf0, 0x4c, 0x89, 0xe7, 0x4c, 0x89, 0xee, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x89, 0xc5, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, 0x75, 0x09, | |
0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x74, 0x47, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x78, 0x50, 0x49, 0x83, 0xc6, 0xf8, 0x0f, 0xb7, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x39, 0xcd, 0x75, | |
0x09, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x07, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x08, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf6, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x8d, 0x46, 0xf0, 0x85, 0xed, | |
0x79, 0xb0, 0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x8f, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xd8, 0x48, 0x83, 0xc0, 0xb8, 0x48, | |
0xc1, 0xe8, 0x03, 0x89, 0x43, 0x40, 0x31, 0xc0, | |
0xe9, 0x39, 0xff, 0xff, 0xff, | |
}; | |
static const Hole _CONTAINS_OP_TUPLE_code_holes[12] = { | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x71, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xb1, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x24}, | |
{0xbc, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xc5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xfd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyTuple_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
// 18: &_PyTuple_Contains+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: OPARG | |
// 30: &_Py_FalseStruct+0x0 | |
// 38: &_Py_TrueStruct+0x0 | |
// 40: CONTINUE | |
static const unsigned char _CONTAINS_OP_TUPLE_data_body[73] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONTAINS_OP_TUPLE_data_holes[10] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyTuple_Contains, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _CONVERT_VALUE | |
// | |
// /tmp/tmp2mfmnab2/_CONVERT_VALUE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 16: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1d: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX _PyEval_ConversionFuncs-0x4 | |
// 24: 4c 89 ef movq %r13, %rdi | |
// 27: ff 14 c1 callq *(%rcx,%rax,8) | |
// 2a: 49 89 c4 movq %rax, %r12 | |
// 2d: 49 8b 45 00 movq (%r13), %rax | |
// 31: 85 c0 testl %eax, %eax | |
// 33: 78 09 js 0x3e <_JIT_ENTRY+0x3e> | |
// 35: 48 ff c8 decq %rax | |
// 38: 49 89 45 00 movq %rax, (%r13) | |
// 3c: 74 21 je 0x5f <_JIT_ENTRY+0x5f> | |
// 3e: 4d 85 e4 testq %r12, %r12 | |
// 41: 74 2a je 0x6d <_JIT_ENTRY+0x6d> | |
// 43: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 47: 4c 89 f7 movq %r14, %rdi | |
// 4a: 48 89 de movq %rbx, %rsi | |
// 4d: 4c 89 fa movq %r15, %rdx | |
// 50: 5b popq %rbx | |
// 51: 41 5c popq %r12 | |
// 53: 41 5d popq %r13 | |
// 55: 41 5e popq %r14 | |
// 57: 41 5f popq %r15 | |
// 59: ff 25 00 00 00 00 jmpq *(%rip) # 0x5f <_JIT_ENTRY+0x5f> | |
// 000000000000005b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 5f: 4c 89 ef movq %r13, %rdi | |
// 62: ff 15 00 00 00 00 callq *(%rip) # 0x68 <_JIT_ENTRY+0x68> | |
// 0000000000000064: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 68: 4d 85 e4 testq %r12, %r12 | |
// 6b: 75 d6 jne 0x43 <_JIT_ENTRY+0x43> | |
// 6d: 48 83 c3 f8 addq $-0x8, %rbx | |
// 71: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 78: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 7f: 4c 29 f3 subq %r14, %rbx | |
// 82: 48 83 c3 b8 addq $-0x48, %rbx | |
// 86: 48 c1 eb 03 shrq $0x3, %rbx | |
// 8a: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 8e: 31 c0 xorl %eax, %eax | |
// 90: 5b popq %rbx | |
// 91: 41 5c popq %r12 | |
// 93: 41 5d popq %r13 | |
// 95: 41 5e popq %r14 | |
// 97: 41 5f popq %r15 | |
// 99: c3 retq | |
// 9a: | |
static const unsigned char _CONVERT_VALUE_code_body[155] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x0f, 0xb7, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff, | |
0x14, 0xc1, 0x49, 0x89, 0xc4, 0x49, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x45, 0x00, 0x74, 0x21, 0x4d, 0x85, | |
0xe4, 0x74, 0x2a, 0x4c, 0x89, 0x63, 0xf8, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x85, 0xe4, 0x75, 0xd6, 0x48, 0x83, 0xc3, | |
0xf8, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, | |
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, | |
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xc3, | |
}; | |
static const Hole _CONVERT_VALUE_code_holes[6] = { | |
{0x19, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x64, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x74, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyEval_ConversionFuncs+0x0 | |
// 10: CONTINUE | |
// 18: &_Py_Dealloc+0x0 | |
// 20: EXECUTOR | |
static const unsigned char _CONVERT_VALUE_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _CONVERT_VALUE_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_ConversionFuncs, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _COPY | |
// | |
// /tmp/tmp2mfmnab2/_COPY.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x7 <_JIT_ENTRY+0x7> | |
// 0000000000000003: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 7: 48 c1 e0 03 shlq $0x3, %rax | |
// b: 48 89 f1 movq %rsi, %rcx | |
// e: 48 29 c1 subq %rax, %rcx | |
// 11: 48 8b 01 movq (%rcx), %rax | |
// 14: 8b 08 movl (%rax), %ecx | |
// 16: ff c1 incl %ecx | |
// 18: 74 02 je 0x1c <_JIT_ENTRY+0x1c> | |
// 1a: 89 08 movl %ecx, (%rax) | |
// 1c: 48 89 06 movq %rax, (%rsi) | |
// 1f: 48 83 c6 08 addq $0x8, %rsi | |
// 23: ff 25 00 00 00 00 jmpq *(%rip) # 0x29 <_JIT_ENTRY+0x29> | |
// 0000000000000025: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 23: | |
static const unsigned char _COPY_code_body[36] = { | |
0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0xc1, 0xe0, 0x03, 0x48, 0x89, 0xf1, 0x48, 0x29, | |
0xc1, 0x48, 0x8b, 0x01, 0x8b, 0x08, 0xff, 0xc1, | |
0x74, 0x02, 0x89, 0x08, 0x48, 0x89, 0x06, 0x48, | |
0x83, 0xc6, 0x08, | |
}; | |
static const Hole _COPY_code_holes[2] = { | |
{0x3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
static const unsigned char _COPY_data_body[9] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COPY_data_holes[2] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
}; | |
// _COPY_FREE_VARS | |
// | |
// /tmp/tmp2mfmnab2/_COPY_FREE_VARS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 53 pushq %rbx | |
// 2: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9 <_JIT_ENTRY+0x9> | |
// 0000000000000005: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 9: 66 85 c0 testw %ax, %ax | |
// c: 74 55 je 0x63 <_JIT_ENTRY+0x63> | |
// e: 48 8b 47 10 movq 0x10(%rdi), %rax | |
// 12: 48 8b 40 48 movq 0x48(%rax), %rax | |
// 16: 48 8b 0f movq (%rdi), %rcx | |
// 19: 8b 49 48 movl 0x48(%rcx), %ecx | |
// 1c: 4c 8b 05 00 00 00 00 movq (%rip), %r8 # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 23: 45 0f b7 d0 movzwl %r8w, %r10d | |
// 27: 44 29 d1 subl %r10d, %ecx | |
// 2a: 48 63 c9 movslq %ecx, %rcx | |
// 2d: 41 83 fa 02 cmpl $0x2, %r10d | |
// 31: 41 b9 01 00 00 00 movl $0x1, %r9d | |
// 37: 45 0f 43 ca cmovael %r10d, %r9d | |
// 3b: 66 41 83 f8 02 cmpw $0x2, %r8w | |
// 40: 73 29 jae 0x6b <_JIT_ENTRY+0x6b> | |
// 42: 45 31 c0 xorl %r8d, %r8d | |
// 45: 41 f6 c1 01 testb $0x1, %r9b | |
// 49: 74 18 je 0x63 <_JIT_ENTRY+0x63> | |
// 4b: 4a 8b 44 c0 18 movq 0x18(%rax,%r8,8), %rax | |
// 50: 44 8b 08 movl (%rax), %r9d | |
// 53: 41 ff c1 incl %r9d | |
// 56: 74 03 je 0x5b <_JIT_ENTRY+0x5b> | |
// 58: 44 89 08 movl %r9d, (%rax) | |
// 5b: 49 01 c8 addq %rcx, %r8 | |
// 5e: 4a 89 44 c7 48 movq %rax, 0x48(%rdi,%r8,8) | |
// 63: 5b popq %rbx | |
// 64: 5d popq %rbp | |
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 6b: 45 89 ca movl %r9d, %r10d | |
// 6e: 41 83 e2 fe andl $-0x2, %r10d | |
// 72: 4c 8d 1c cf leaq (%rdi,%rcx,8), %r11 | |
// 76: 49 83 c3 50 addq $0x50, %r11 | |
// 7a: 45 31 c0 xorl %r8d, %r8d | |
// 7d: eb 0e jmp 0x8d <_JIT_ENTRY+0x8d> | |
// 7f: 90 nop | |
// 80: 4b 89 1c c3 movq %rbx, (%r11,%r8,8) | |
// 84: 49 83 c0 02 addq $0x2, %r8 | |
// 88: 4d 39 c2 cmpq %r8, %r10 | |
// 8b: 74 b8 je 0x45 <_JIT_ENTRY+0x45> | |
// 8d: 4a 8b 5c c0 18 movq 0x18(%rax,%r8,8), %rbx | |
// 92: 8b 2b movl (%rbx), %ebp | |
// 94: ff c5 incl %ebp | |
// 96: 74 02 je 0x9a <_JIT_ENTRY+0x9a> | |
// 98: 89 2b movl %ebp, (%rbx) | |
// 9a: 4b 89 5c c3 f8 movq %rbx, -0x8(%r11,%r8,8) | |
// 9f: 4a 8b 5c c0 20 movq 0x20(%rax,%r8,8), %rbx | |
// a4: 8b 2b movl (%rbx), %ebp | |
// a6: ff c5 incl %ebp | |
// a8: 74 d6 je 0x80 <_JIT_ENTRY+0x80> | |
// aa: 89 2b movl %ebp, (%rbx) | |
// ac: eb d2 jmp 0x80 <_JIT_ENTRY+0x80> | |
// ae: | |
static const unsigned char _COPY_FREE_VARS_code_body[175] = { | |
0x55, 0x53, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x66, 0x85, 0xc0, 0x74, 0x55, 0x48, 0x8b, | |
0x47, 0x10, 0x48, 0x8b, 0x40, 0x48, 0x48, 0x8b, | |
0x0f, 0x8b, 0x49, 0x48, 0x4c, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7, 0xd0, 0x44, | |
0x29, 0xd1, 0x48, 0x63, 0xc9, 0x41, 0x83, 0xfa, | |
0x02, 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x45, | |
0x0f, 0x43, 0xca, 0x66, 0x41, 0x83, 0xf8, 0x02, | |
0x73, 0x29, 0x45, 0x31, 0xc0, 0x41, 0xf6, 0xc1, | |
0x01, 0x74, 0x18, 0x4a, 0x8b, 0x44, 0xc0, 0x18, | |
0x44, 0x8b, 0x08, 0x41, 0xff, 0xc1, 0x74, 0x03, | |
0x44, 0x89, 0x08, 0x49, 0x01, 0xc8, 0x4a, 0x89, | |
0x44, 0xc7, 0x48, 0x5b, 0x5d, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x45, 0x89, 0xca, 0x41, 0x83, | |
0xe2, 0xfe, 0x4c, 0x8d, 0x1c, 0xcf, 0x49, 0x83, | |
0xc3, 0x50, 0x45, 0x31, 0xc0, 0xeb, 0x0e, 0x90, | |
0x4b, 0x89, 0x1c, 0xc3, 0x49, 0x83, 0xc0, 0x02, | |
0x4d, 0x39, 0xc2, 0x74, 0xb8, 0x4a, 0x8b, 0x5c, | |
0xc0, 0x18, 0x8b, 0x2b, 0xff, 0xc5, 0x74, 0x02, | |
0x89, 0x2b, 0x4b, 0x89, 0x5c, 0xc3, 0xf8, 0x4a, | |
0x8b, 0x5c, 0xc0, 0x20, 0x8b, 0x2b, 0xff, 0xc5, | |
0x74, 0xd6, 0x89, 0x2b, 0xeb, 0xd2, | |
}; | |
static const Hole _COPY_FREE_VARS_code_holes[4] = { | |
{0x5, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x67, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: CONTINUE | |
static const unsigned char _COPY_FREE_VARS_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _COPY_FREE_VARS_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
}; | |
// _DELETE_ATTR | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_ATTR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8d 6e f8 leaq -0x8(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 48 8b 07 movq (%rdi), %rax | |
// 1f: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 23: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x2a <_JIT_ENTRY+0x2a> | |
// 0000000000000026: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 2a: 48 8b 74 c8 18 movq 0x18(%rax,%rcx,8), %rsi | |
// 2f: 4c 89 e7 movq %r12, %rdi | |
// 32: ff 15 00 00 00 00 callq *(%rip) # 0x38 <_JIT_ENTRY+0x38> | |
// 0000000000000034: R_X86_64_GOTPCRELX PyObject_DelAttr-0x4 | |
// 38: 89 c5 movl %eax, %ebp | |
// 3a: 49 8b 04 24 movq (%r12), %rax | |
// 3e: 85 c0 testl %eax, %eax | |
// 40: 78 09 js 0x4b <_JIT_ENTRY+0x4b> | |
// 42: 48 ff c8 decq %rax | |
// 45: 49 89 04 24 movq %rax, (%r12) | |
// 49: 74 36 je 0x81 <_JIT_ENTRY+0x81> | |
// 4b: 85 ed testl %ebp, %ebp | |
// 4d: 49 0f 44 dd cmoveq %r13, %rbx | |
// 51: 74 3f je 0x92 <_JIT_ENTRY+0x92> | |
// 53: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x5a <_JIT_ENTRY+0x5a> | |
// 0000000000000056: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 5a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 61: 4c 29 f3 subq %r14, %rbx | |
// 64: 48 83 c3 b0 addq $-0x50, %rbx | |
// 68: 48 c1 eb 03 shrq $0x3, %rbx | |
// 6c: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 70: 31 c0 xorl %eax, %eax | |
// 72: 48 83 c4 08 addq $0x8, %rsp | |
// 76: 5b popq %rbx | |
// 77: 41 5c popq %r12 | |
// 79: 41 5d popq %r13 | |
// 7b: 41 5e popq %r14 | |
// 7d: 41 5f popq %r15 | |
// 7f: 5d popq %rbp | |
// 80: c3 retq | |
// 81: 4c 89 e7 movq %r12, %rdi | |
// 84: ff 15 00 00 00 00 callq *(%rip) # 0x8a <_JIT_ENTRY+0x8a> | |
// 0000000000000086: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 8a: 85 ed testl %ebp, %ebp | |
// 8c: 49 0f 44 dd cmoveq %r13, %rbx | |
// 90: 75 c1 jne 0x53 <_JIT_ENTRY+0x53> | |
// 92: 4c 89 f7 movq %r14, %rdi | |
// 95: 48 89 de movq %rbx, %rsi | |
// 98: 4c 89 fa movq %r15, %rdx | |
// 9b: 48 83 c4 08 addq $0x8, %rsp | |
// 9f: 5b popq %rbx | |
// a0: 41 5c popq %r12 | |
// a2: 41 5d popq %r13 | |
// a4: 41 5e popq %r14 | |
// a6: 41 5f popq %r15 | |
// a8: 5d popq %rbp | |
// a9: ff 25 00 00 00 00 jmpq *(%rip) # 0xaf <_JIT_ENTRY+0xaf> | |
// 00000000000000ab: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a9: | |
static const unsigned char _DELETE_ATTR_code_body[170] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8d, 0x6e, 0xf8, | |
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x8b, 0x07, 0x48, | |
0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x74, 0xc8, 0x18, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, | |
0x24, 0x74, 0x36, 0x85, 0xed, 0x49, 0x0f, 0x44, | |
0xdd, 0x74, 0x3f, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb0, | |
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, | |
0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xc3, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xed, 0x49, 0x0f, 0x44, 0xdd, | |
0x75, 0xc1, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, | |
0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0x5d, | |
}; | |
static const Hole _DELETE_ATTR_code_holes[5] = { | |
{0x26, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x34, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x56, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x86, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &PyObject_DelAttr+0x0 | |
// 10: EXECUTOR | |
// 18: &_Py_Dealloc+0x0 | |
static const unsigned char _DELETE_ATTR_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_ATTR_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelAttr, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _DELETE_DEREF | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_DEREF.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x15 <_JIT_ENTRY+0x15> | |
// 0000000000000011: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 15: 48 8b 44 c7 48 movq 0x48(%rdi,%rax,8), %rax | |
// 1a: 48 8b 78 10 movq 0x10(%rax), %rdi | |
// 1e: 48 85 ff testq %rdi, %rdi | |
// 21: 74 31 je 0x54 <_JIT_ENTRY+0x54> | |
// 23: 48 c7 40 10 00 00 00 00 movq $0x0, 0x10(%rax) | |
// 2b: 48 8b 07 movq (%rdi), %rax | |
// 2e: 85 c0 testl %eax, %eax | |
// 30: 78 0e js 0x40 <_JIT_ENTRY+0x40> | |
// 32: 48 ff c8 decq %rax | |
// 35: 48 89 07 movq %rax, (%rdi) | |
// 38: 75 06 jne 0x40 <_JIT_ENTRY+0x40> | |
// 3a: ff 15 00 00 00 00 callq *(%rip) # 0x40 <_JIT_ENTRY+0x40> | |
// 000000000000003c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 40: 4c 89 f7 movq %r14, %rdi | |
// 43: 48 89 de movq %rbx, %rsi | |
// 46: 4c 89 fa movq %r15, %rdx | |
// 49: 5b popq %rbx | |
// 4a: 41 5e popq %r14 | |
// 4c: 41 5f popq %r15 | |
// 4e: ff 25 00 00 00 00 jmpq *(%rip) # 0x54 <_JIT_ENTRY+0x54> | |
// 0000000000000050: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 54: 49 8b 36 movq (%r14), %rsi | |
// 57: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x5e <_JIT_ENTRY+0x5e> | |
// 000000000000005a: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 5e: 4c 89 ff movq %r15, %rdi | |
// 61: ff 15 00 00 00 00 callq *(%rip) # 0x67 <_JIT_ENTRY+0x67> | |
// 0000000000000063: R_X86_64_GOTPCRELX _PyEval_FormatExcUnbound-0x4 | |
// 67: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6e <_JIT_ENTRY+0x6e> | |
// 000000000000006a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 6e: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 75: 4c 29 f3 subq %r14, %rbx | |
// 78: 48 83 c3 b8 addq $-0x48, %rbx | |
// 7c: 48 c1 eb 03 shrq $0x3, %rbx | |
// 80: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 84: 31 c0 xorl %eax, %eax | |
// 86: 5b popq %rbx | |
// 87: 41 5e popq %r14 | |
// 89: 41 5f popq %r15 | |
// 8b: c3 retq | |
// 8c: | |
static const unsigned char _DELETE_DEREF_code_body[141] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x0f, 0xb7, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x44, | |
0xc7, 0x48, 0x48, 0x8b, 0x78, 0x10, 0x48, 0x85, | |
0xff, 0x74, 0x31, 0x48, 0xc7, 0x40, 0x10, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, | |
0x78, 0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, | |
0x75, 0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, | |
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x36, 0x0f, | |
0xb7, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, | |
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, | |
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, | |
0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _DELETE_DEREF_code_holes[7] = { | |
{0x11, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x3c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x50, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x5a, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x63, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x6a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_Py_Dealloc+0x0 | |
// 10: CONTINUE | |
// 18: &_PyEval_FormatExcUnbound+0x0 | |
// 20: EXECUTOR | |
static const unsigned char _DELETE_DEREF_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_DEREF_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcUnbound, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DELETE_FAST | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_FAST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 f3 movq %rsi, %rbx | |
// e: 49 89 fe movq %rdi, %r14 | |
// 11: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 18: 48 8b 7c c7 48 movq 0x48(%rdi,%rax,8), %rdi | |
// 1d: 48 85 ff testq %rdi, %rdi | |
// 20: 74 3f je 0x61 <_JIT_ENTRY+0x61> | |
// 22: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x29 <_JIT_ENTRY+0x29> | |
// 0000000000000025: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 29: 49 c7 44 c6 48 00 00 00 00 movq $0x0, 0x48(%r14,%rax,8) | |
// 32: 48 8b 07 movq (%rdi), %rax | |
// 35: 85 c0 testl %eax, %eax | |
// 37: 78 0e js 0x47 <_JIT_ENTRY+0x47> | |
// 39: 48 ff c8 decq %rax | |
// 3c: 48 89 07 movq %rax, (%rdi) | |
// 3f: 75 06 jne 0x47 <_JIT_ENTRY+0x47> | |
// 41: ff 15 00 00 00 00 callq *(%rip) # 0x47 <_JIT_ENTRY+0x47> | |
// 0000000000000043: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 47: 4c 89 f7 movq %r14, %rdi | |
// 4a: 48 89 de movq %rbx, %rsi | |
// 4d: 4c 89 fa movq %r15, %rdx | |
// 50: 48 83 c4 08 addq $0x8, %rsp | |
// 54: 5b popq %rbx | |
// 55: 41 5c popq %r12 | |
// 57: 41 5e popq %r14 | |
// 59: 41 5f popq %r15 | |
// 5b: ff 25 00 00 00 00 jmpq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 61: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x68 <_JIT_ENTRY+0x68> | |
// 0000000000000064: R_X86_64_REX_GOTPCRELX PyExc_UnboundLocalError-0x4 | |
// 68: 4c 8b 20 movq (%rax), %r12 | |
// 6b: 49 8b 06 movq (%r14), %rax | |
// 6e: 48 8b 78 60 movq 0x60(%rax), %rdi | |
// 72: 0f b7 35 00 00 00 00 movzwl (%rip), %esi # 0x79 <_JIT_ENTRY+0x79> | |
// 0000000000000075: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 79: ff 15 00 00 00 00 callq *(%rip) # 0x7f <_JIT_ENTRY+0x7f> | |
// 000000000000007b: R_X86_64_GOTPCRELX PyTuple_GetItem-0x4 | |
// 7f: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x86 <_JIT_ENTRY+0x86> | |
// 0000000000000082: R_X86_64_PC32 .L.str.22-0x4 | |
// 86: 4c 89 ff movq %r15, %rdi | |
// 89: 4c 89 e6 movq %r12, %rsi | |
// 8c: 48 89 c1 movq %rax, %rcx | |
// 8f: ff 15 00 00 00 00 callq *(%rip) # 0x95 <_JIT_ENTRY+0x95> | |
// 0000000000000091: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4 | |
// 95: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9c <_JIT_ENTRY+0x9c> | |
// 0000000000000098: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9c: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// a3: 4c 29 f3 subq %r14, %rbx | |
// a6: 48 83 c3 b8 addq $-0x48, %rbx | |
// aa: 48 c1 eb 03 shrq $0x3, %rbx | |
// ae: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5e popq %r14 | |
// bd: 41 5f popq %r15 | |
// bf: c3 retq | |
// c0: | |
static const unsigned char _DELETE_FAST_code_body[193] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, | |
0xfe, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x7c, 0xc7, 0x48, 0x48, 0x85, 0xff, | |
0x74, 0x3f, 0x0f, 0xb7, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xc7, 0x44, 0xc6, 0x48, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, | |
0x0e, 0x48, 0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, | |
0x06, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x8b, 0x20, 0x49, 0x8b, 0x06, 0x48, 0x8b, | |
0x78, 0x60, 0x0f, 0xb7, 0x35, 0x00, 0x00, 0x00, | |
0x00, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xff, 0x4c, 0x89, 0xe6, 0x48, 0x89, 0xc1, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, | |
0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, | |
0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, | |
0x5e, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _DELETE_FAST_code_holes[11] = { | |
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c}, | |
{0x25, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c}, | |
{0x43, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0x64, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
{0x75, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4c}, | |
{0x7b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x6c}, | |
{0x82, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x91, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x74}, | |
{0x98, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x7c}, | |
}; | |
// 0: "cannot access local variable '%s' where it is not associated with a value\x00" | |
// 4a: 00 00 00 00 00 00 | |
// 50: OPARG | |
// 58: &_Py_Dealloc+0x0 | |
// 60: CONTINUE | |
// 68: &PyExc_UnboundLocalError+0x0 | |
// 70: &PyTuple_GetItem+0x0 | |
// 78: &_PyEval_FormatExcCheckArg+0x0 | |
// 80: EXECUTOR | |
static const unsigned char _DELETE_FAST_data_body[137] = { | |
0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x61, | |
0x63, 0x63, 0x65, 0x73, 0x73, 0x20, 0x6c, 0x6f, | |
0x63, 0x61, 0x6c, 0x20, 0x76, 0x61, 0x72, 0x69, | |
0x61, 0x62, 0x6c, 0x65, 0x20, 0x27, 0x25, 0x73, | |
0x27, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, | |
0x69, 0x74, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, | |
0x74, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, | |
0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, | |
0x68, 0x20, 0x61, 0x20, 0x76, 0x61, 0x6c, 0x75, | |
0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_FAST_data_holes[8] = { | |
{0x50, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_UnboundLocalError, 0x0}, | |
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTuple_GetItem, 0x0}, | |
{0x78, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0}, | |
{0x80, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DELETE_GLOBAL | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_GLOBAL.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 f3 movq %rsi, %rbx | |
// e: 49 89 fe movq %rdi, %r14 | |
// 11: 48 8b 07 movq (%rdi), %rax | |
// 14: 48 8b 7f 18 movq 0x18(%rdi), %rdi | |
// 18: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 1c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 23: 4c 8b 64 c8 18 movq 0x18(%rax,%rcx,8), %r12 | |
// 28: 4c 89 e6 movq %r12, %rsi | |
// 2b: ff 15 00 00 00 00 callq *(%rip) # 0x31 <_JIT_ENTRY+0x31> | |
// 000000000000002d: R_X86_64_GOTPCRELX PyDict_DelItem-0x4 | |
// 31: 85 c0 testl %eax, %eax | |
// 33: 74 5f je 0x94 <_JIT_ENTRY+0x94> | |
// 35: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x3c <_JIT_ENTRY+0x3c> | |
// 0000000000000038: R_X86_64_REX_GOTPCRELX PyExc_KeyError-0x4 | |
// 3c: 48 8b 30 movq (%rax), %rsi | |
// 3f: 4c 89 ff movq %r15, %rdi | |
// 42: ff 15 00 00 00 00 callq *(%rip) # 0x48 <_JIT_ENTRY+0x48> | |
// 0000000000000044: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4 | |
// 48: 85 c0 testl %eax, %eax | |
// 4a: 74 1d je 0x69 <_JIT_ENTRY+0x69> | |
// 4c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x53 <_JIT_ENTRY+0x53> | |
// 000000000000004f: R_X86_64_REX_GOTPCRELX PyExc_NameError-0x4 | |
// 53: 48 8b 30 movq (%rax), %rsi | |
// 56: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x5d <_JIT_ENTRY+0x5d> | |
// 0000000000000059: R_X86_64_PC32 .L.str.8-0x4 | |
// 5d: 4c 89 ff movq %r15, %rdi | |
// 60: 4c 89 e1 movq %r12, %rcx | |
// 63: ff 15 00 00 00 00 callq *(%rip) # 0x69 <_JIT_ENTRY+0x69> | |
// 0000000000000065: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4 | |
// 69: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 70: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 77: 4c 29 f3 subq %r14, %rbx | |
// 7a: 48 83 c3 b8 addq $-0x48, %rbx | |
// 7e: 48 c1 eb 03 shrq $0x3, %rbx | |
// 82: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 86: 31 c0 xorl %eax, %eax | |
// 88: 48 83 c4 08 addq $0x8, %rsp | |
// 8c: 5b popq %rbx | |
// 8d: 41 5c popq %r12 | |
// 8f: 41 5e popq %r14 | |
// 91: 41 5f popq %r15 | |
// 93: c3 retq | |
// 94: 4c 89 f7 movq %r14, %rdi | |
// 97: 48 89 de movq %rbx, %rsi | |
// 9a: 4c 89 fa movq %r15, %rdx | |
// 9d: 48 83 c4 08 addq $0x8, %rsp | |
// a1: 5b popq %rbx | |
// a2: 41 5c popq %r12 | |
// a4: 41 5e popq %r14 | |
// a6: 41 5f popq %r15 | |
// a8: ff 25 00 00 00 00 jmpq *(%rip) # 0xae <_JIT_ENTRY+0xae> | |
// 00000000000000aa: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a8: | |
static const unsigned char _DELETE_GLOBAL_code_body[169] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, | |
0xfe, 0x48, 0x8b, 0x07, 0x48, 0x8b, 0x7f, 0x18, | |
0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x64, 0xc8, 0x18, | |
0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x85, 0xc0, 0x74, 0x5f, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x4c, | |
0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x74, 0x1d, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x48, 0x8d, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, | |
0x4c, 0x89, 0xe1, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, | |
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, | |
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, 0xc3, 0x4c, 0x89, 0xf7, 0x48, | |
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _DELETE_GLOBAL_code_holes[9] = { | |
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x1c}, | |
{0x2d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x38, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x44, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x4f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x59, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x6c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
}; | |
// 0: "name '%.200s' is not defined\x00" | |
// 1d: 00 00 00 | |
// 20: OPARG | |
// 28: &PyDict_DelItem+0x0 | |
// 30: &PyExc_KeyError+0x0 | |
// 38: &_PyErr_ExceptionMatches+0x0 | |
// 40: &PyExc_NameError+0x0 | |
// 48: &_PyEval_FormatExcCheckArg+0x0 | |
// 50: EXECUTOR | |
static const unsigned char _DELETE_GLOBAL_data_body[89] = { | |
0x6e, 0x61, 0x6d, 0x65, 0x20, 0x27, 0x25, 0x2e, | |
0x32, 0x30, 0x30, 0x73, 0x27, 0x20, 0x69, 0x73, | |
0x20, 0x6e, 0x6f, 0x74, 0x20, 0x64, 0x65, 0x66, | |
0x69, 0x6e, 0x65, 0x64, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_GLOBAL_data_holes[8] = { | |
{0x20, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_DelItem, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_KeyError, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_NameError, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DELETE_NAME | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_NAME.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 f3 movq %rsi, %rbx | |
// e: 49 89 fe movq %rdi, %r14 | |
// 11: 48 8b 07 movq (%rdi), %rax | |
// 14: 48 8b 7f 28 movq 0x28(%rdi), %rdi | |
// 18: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 1c: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x23 <_JIT_ENTRY+0x23> | |
// 000000000000001f: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 23: 4c 8b 64 c8 18 movq 0x18(%rax,%rcx,8), %r12 | |
// 28: 48 85 ff testq %rdi, %rdi | |
// 2b: 74 2c je 0x59 <_JIT_ENTRY+0x59> | |
// 2d: 4c 89 e6 movq %r12, %rsi | |
// 30: ff 15 00 00 00 00 callq *(%rip) # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX PyObject_DelItem-0x4 | |
// 36: 85 c0 testl %eax, %eax | |
// 38: 74 69 je 0xa3 <_JIT_ENTRY+0xa3> | |
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41> | |
// 000000000000003d: R_X86_64_REX_GOTPCRELX PyExc_NameError-0x4 | |
// 41: 48 8b 30 movq (%rax), %rsi | |
// 44: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_PC32 .L.str.8-0x4 | |
// 4b: 4c 89 ff movq %r15, %rdi | |
// 4e: 4c 89 e1 movq %r12, %rcx | |
// 51: ff 15 00 00 00 00 callq *(%rip) # 0x57 <_JIT_ENTRY+0x57> | |
// 0000000000000053: R_X86_64_GOTPCRELX _PyEval_FormatExcCheckArg-0x4 | |
// 57: eb 1f jmp 0x78 <_JIT_ENTRY+0x78> | |
// 59: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_REX_GOTPCRELX PyExc_SystemError-0x4 | |
// 60: 48 8b 30 movq (%rax), %rsi | |
// 63: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x6a <_JIT_ENTRY+0x6a> | |
// 0000000000000066: R_X86_64_PC32 .L.str.7-0x4 | |
// 6a: 4c 89 ff movq %r15, %rdi | |
// 6d: 4c 89 e1 movq %r12, %rcx | |
// 70: 31 c0 xorl %eax, %eax | |
// 72: ff 15 00 00 00 00 callq *(%rip) # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f> | |
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 86: 4c 29 f3 subq %r14, %rbx | |
// 89: 48 83 c3 b8 addq $-0x48, %rbx | |
// 8d: 48 c1 eb 03 shrq $0x3, %rbx | |
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 95: 31 c0 xorl %eax, %eax | |
// 97: 48 83 c4 08 addq $0x8, %rsp | |
// 9b: 5b popq %rbx | |
// 9c: 41 5c popq %r12 | |
// 9e: 41 5e popq %r14 | |
// a0: 41 5f popq %r15 | |
// a2: c3 retq | |
// a3: 4c 89 f7 movq %r14, %rdi | |
// a6: 48 89 de movq %rbx, %rsi | |
// a9: 4c 89 fa movq %r15, %rdx | |
// ac: 48 83 c4 08 addq $0x8, %rsp | |
// b0: 5b popq %rbx | |
// b1: 41 5c popq %r12 | |
// b3: 41 5e popq %r14 | |
// b5: 41 5f popq %r15 | |
// b7: ff 25 00 00 00 00 jmpq *(%rip) # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// b7: | |
static const unsigned char _DELETE_NAME_code_body[184] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, | |
0xfe, 0x48, 0x8b, 0x07, 0x48, 0x8b, 0x7f, 0x28, | |
0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x8b, 0x64, 0xc8, 0x18, | |
0x48, 0x85, 0xff, 0x74, 0x2c, 0x4c, 0x89, 0xe6, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, | |
0x74, 0x69, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x30, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c, 0x89, | |
0xe1, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, | |
0x1f, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x30, 0x48, 0x8d, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xe1, | |
0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, | |
0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, | |
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, 0x4c, 0x89, 0xf7, 0x48, 0x89, | |
0xde, 0x4c, 0x89, 0xfa, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _DELETE_NAME_code_holes[10] = { | |
{0x1f, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x34}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x47, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x17}, | |
{0x53, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x66, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
}; | |
// 0: "no locals when deleting %R\x00name '%.200s' is not defined\x00" | |
// 38: | |
// 38: OPARG | |
// 40: &PyObject_DelItem+0x0 | |
// 48: &PyExc_NameError+0x0 | |
// 50: &_PyEval_FormatExcCheckArg+0x0 | |
// 58: &PyExc_SystemError+0x0 | |
// 60: &_PyErr_Format+0x0 | |
// 68: EXECUTOR | |
static const unsigned char _DELETE_NAME_data_body[113] = { | |
0x6e, 0x6f, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, | |
0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x64, | |
0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x20, | |
0x25, 0x52, 0x00, 0x6e, 0x61, 0x6d, 0x65, 0x20, | |
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, | |
0x20, 0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, | |
0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_NAME_data_holes[8] = { | |
{0x38, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelItem, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_NameError, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatExcCheckArg, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_SystemError, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DELETE_SUBSCR | |
// | |
// /tmp/tmp2mfmnab2/_DELETE_SUBSCR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d7 movq %rdx, %r15 | |
// e: 48 89 f3 movq %rsi, %rbx | |
// 11: 49 89 fe movq %rdi, %r14 | |
// 14: 4c 8b 6e f0 movq -0x10(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 4c 89 ef movq %r13, %rdi | |
// 1f: 4c 89 e6 movq %r12, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_DelItem-0x4 | |
// 28: 89 c5 movl %eax, %ebp | |
// 2a: 49 8b 45 00 movq (%r13), %rax | |
// 2e: 85 c0 testl %eax, %eax | |
// 30: 78 09 js 0x3b <_JIT_ENTRY+0x3b> | |
// 32: 48 ff c8 decq %rax | |
// 35: 49 89 45 00 movq %rax, (%r13) | |
// 39: 74 20 je 0x5b <_JIT_ENTRY+0x5b> | |
// 3b: 4c 8d 6b f0 leaq -0x10(%rbx), %r13 | |
// 3f: 49 8b 04 24 movq (%r12), %rax | |
// 43: 85 c0 testl %eax, %eax | |
// 45: 78 29 js 0x70 <_JIT_ENTRY+0x70> | |
// 47: 48 ff c8 decq %rax | |
// 4a: 49 89 04 24 movq %rax, (%r12) | |
// 4e: 75 20 jne 0x70 <_JIT_ENTRY+0x70> | |
// 50: 4c 89 e7 movq %r12, %rdi | |
// 53: ff 15 00 00 00 00 callq *(%rip) # 0x59 <_JIT_ENTRY+0x59> | |
// 0000000000000055: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 59: eb 15 jmp 0x70 <_JIT_ENTRY+0x70> | |
// 5b: 4c 89 ef movq %r13, %rdi | |
// 5e: ff 15 00 00 00 00 callq *(%rip) # 0x64 <_JIT_ENTRY+0x64> | |
// 0000000000000060: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 64: 4c 8d 6b f0 leaq -0x10(%rbx), %r13 | |
// 68: 49 8b 04 24 movq (%r12), %rax | |
// 6c: 85 c0 testl %eax, %eax | |
// 6e: 79 d7 jns 0x47 <_JIT_ENTRY+0x47> | |
// 70: 85 ed testl %ebp, %ebp | |
// 72: 49 0f 44 dd cmoveq %r13, %rbx | |
// 76: 74 2e je 0xa6 <_JIT_ENTRY+0xa6> | |
// 78: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7f <_JIT_ENTRY+0x7f> | |
// 000000000000007b: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 7f: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 86: 4c 29 f3 subq %r14, %rbx | |
// 89: 48 83 c3 a8 addq $-0x58, %rbx | |
// 8d: 48 c1 eb 03 shrq $0x3, %rbx | |
// 91: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 95: 31 c0 xorl %eax, %eax | |
// 97: 48 83 c4 08 addq $0x8, %rsp | |
// 9b: 5b popq %rbx | |
// 9c: 41 5c popq %r12 | |
// 9e: 41 5d popq %r13 | |
// a0: 41 5e popq %r14 | |
// a2: 41 5f popq %r15 | |
// a4: 5d popq %rbp | |
// a5: c3 retq | |
// a6: 4c 89 f7 movq %r14, %rdi | |
// a9: 48 89 de movq %rbx, %rsi | |
// ac: 4c 89 fa movq %r15, %rdx | |
// af: 48 83 c4 08 addq $0x8, %rsp | |
// b3: 5b popq %rbx | |
// b4: 41 5c popq %r12 | |
// b6: 41 5d popq %r13 | |
// b8: 41 5e popq %r14 | |
// ba: 41 5f popq %r15 | |
// bc: 5d popq %rbp | |
// bd: ff 25 00 00 00 00 jmpq *(%rip) # 0xc3 <_JIT_ENTRY+0xc3> | |
// 00000000000000bf: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// bd: | |
static const unsigned char _DELETE_SUBSCR_code_body[190] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd7, 0x48, 0x89, | |
0xf3, 0x49, 0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x66, 0xf8, 0x4c, 0x89, 0xef, 0x4c, | |
0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x89, 0xc5, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x74, 0x20, 0x4c, 0x8d, 0x6b, 0xf0, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x29, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x20, | |
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0xeb, 0x15, 0x4c, 0x89, 0xef, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x8d, 0x6b, 0xf0, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x79, 0xd7, | |
0x85, 0xed, 0x49, 0x0f, 0x44, 0xdd, 0x74, 0x2e, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, | |
0xf3, 0x48, 0x83, 0xc3, 0xa8, 0x48, 0xc1, 0xeb, | |
0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, 0xc3, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _DELETE_SUBSCR_code_holes[5] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x55, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x60, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x7b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &PyObject_DelItem+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: EXECUTOR | |
static const unsigned char _DELETE_SUBSCR_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DELETE_SUBSCR_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_DelItem, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DICT_MERGE | |
// | |
// /tmp/tmp2mfmnab2/_DICT_MERGE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 fb movq %rdi, %rbx | |
// f: 4c 8d 76 f8 leaq -0x8(%rsi), %r14 | |
// 13: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 17: 0f b7 05 00 00 00 00 movzwl (%rip), %eax # 0x1e <_JIT_ENTRY+0x1e> | |
// 000000000000001a: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 1e: b9 fc ff ff ff movl $0xfffffffc, %ecx # imm = 0xFFFFFFFC | |
// 23: 29 c1 subl %eax, %ecx | |
// 25: f7 d0 notl %eax | |
// 27: 48 98 cltq | |
// 29: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi | |
// 2d: 48 63 c1 movslq %ecx, %rax | |
// 30: 4c 8b 2c c6 movq (%rsi,%rax,8), %r13 | |
// 34: 4c 89 e6 movq %r12, %rsi | |
// 37: ba 02 00 00 00 movl $0x2, %edx | |
// 3c: ff 15 00 00 00 00 callq *(%rip) # 0x42 <_JIT_ENTRY+0x42> | |
// 000000000000003e: R_X86_64_GOTPCRELX _PyDict_MergeEx-0x4 | |
// 42: 85 c0 testl %eax, %eax | |
// 44: 78 32 js 0x78 <_JIT_ENTRY+0x78> | |
// 46: 49 8b 04 24 movq (%r12), %rax | |
// 4a: 85 c0 testl %eax, %eax | |
// 4c: 78 12 js 0x60 <_JIT_ENTRY+0x60> | |
// 4e: 48 ff c8 decq %rax | |
// 51: 49 89 04 24 movq %rax, (%r12) | |
// 55: 75 09 jne 0x60 <_JIT_ENTRY+0x60> | |
// 57: 4c 89 e7 movq %r12, %rdi | |
// 5a: ff 15 00 00 00 00 callq *(%rip) # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 60: 48 89 df movq %rbx, %rdi | |
// 63: 4c 89 f6 movq %r14, %rsi | |
// 66: 4c 89 fa movq %r15, %rdx | |
// 69: 5b popq %rbx | |
// 6a: 41 5c popq %r12 | |
// 6c: 41 5d popq %r13 | |
// 6e: 41 5e popq %r14 | |
// 70: 41 5f popq %r15 | |
// 72: ff 25 00 00 00 00 jmpq *(%rip) # 0x78 <_JIT_ENTRY+0x78> | |
// 0000000000000074: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 78: 4c 89 ff movq %r15, %rdi | |
// 7b: 4c 89 ee movq %r13, %rsi | |
// 7e: 4c 89 e2 movq %r12, %rdx | |
// 81: ff 15 00 00 00 00 callq *(%rip) # 0x87 <_JIT_ENTRY+0x87> | |
// 0000000000000083: R_X86_64_GOTPCRELX _PyEval_FormatKwargsError-0x4 | |
// 87: 49 8b 04 24 movq (%r12), %rax | |
// 8b: 85 c0 testl %eax, %eax | |
// 8d: 78 12 js 0xa1 <_JIT_ENTRY+0xa1> | |
// 8f: 48 ff c8 decq %rax | |
// 92: 49 89 04 24 movq %rax, (%r12) | |
// 96: 75 09 jne 0xa1 <_JIT_ENTRY+0xa1> | |
// 98: 4c 89 e7 movq %r12, %rdi | |
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1> | |
// 000000000000009d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// a8: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// af: 49 29 de subq %rbx, %r14 | |
// b2: 49 83 c6 b8 addq $-0x48, %r14 | |
// b6: 49 c1 ee 03 shrq $0x3, %r14 | |
// ba: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// be: 31 c0 xorl %eax, %eax | |
// c0: 5b popq %rbx | |
// c1: 41 5c popq %r12 | |
// c3: 41 5d popq %r13 | |
// c5: 41 5e popq %r14 | |
// c7: 41 5f popq %r15 | |
// c9: c3 retq | |
// ca: | |
static const unsigned char _DICT_MERGE_code_body[203] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c, | |
0x8d, 0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x0f, | |
0xb7, 0x05, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xfc, | |
0xff, 0xff, 0xff, 0x29, 0xc1, 0xf7, 0xd0, 0x48, | |
0x98, 0x48, 0x8b, 0x3c, 0xc6, 0x48, 0x63, 0xc1, | |
0x4c, 0x8b, 0x2c, 0xc6, 0x4c, 0x89, 0xe6, 0xba, | |
0x02, 0x00, 0x00, 0x00, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xc0, 0x78, 0x32, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89, | |
0xfa, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xee, 0x4c, 0x89, | |
0xe2, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, | |
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, | |
0x29, 0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, | |
0xee, 0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xc3, | |
}; | |
static const Hole _DICT_MERGE_code_holes[8] = { | |
{0x1a, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x74, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x83, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyDict_MergeEx+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: CONTINUE | |
// 20: &_PyEval_FormatKwargsError+0x0 | |
// 28: EXECUTOR | |
static const unsigned char _DICT_MERGE_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DICT_MERGE_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyDict_MergeEx, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatKwargsError, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _DICT_UPDATE | |
// | |
// /tmp/tmp2mfmnab2/_DICT_UPDATE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 fb movq %rdi, %rbx | |
// e: 4c 8d 76 f8 leaq -0x8(%rsi), %r14 | |
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 16: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 1c: f7 d0 notl %eax | |
// 1e: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 23: 48 98 cltq | |
// 25: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi | |
// 29: 4c 89 e6 movq %r12, %rsi | |
// 2c: ff 15 00 00 00 00 callq *(%rip) # 0x32 <_JIT_ENTRY+0x32> | |
// 000000000000002e: R_X86_64_GOTPCRELX PyDict_Update-0x4 | |
// 32: 85 c0 testl %eax, %eax | |
// 34: 78 34 js 0x6a <_JIT_ENTRY+0x6a> | |
// 36: 49 8b 04 24 movq (%r12), %rax | |
// 3a: 85 c0 testl %eax, %eax | |
// 3c: 78 12 js 0x50 <_JIT_ENTRY+0x50> | |
// 3e: 48 ff c8 decq %rax | |
// 41: 49 89 04 24 movq %rax, (%r12) | |
// 45: 75 09 jne 0x50 <_JIT_ENTRY+0x50> | |
// 47: 4c 89 e7 movq %r12, %rdi | |
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50> | |
// 000000000000004c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 50: 48 89 df movq %rbx, %rdi | |
// 53: 4c 89 f6 movq %r14, %rsi | |
// 56: 4c 89 fa movq %r15, %rdx | |
// 59: 48 83 c4 08 addq $0x8, %rsp | |
// 5d: 5b popq %rbx | |
// 5e: 41 5c popq %r12 | |
// 60: 41 5e popq %r14 | |
// 62: 41 5f popq %r15 | |
// 64: ff 25 00 00 00 00 jmpq *(%rip) # 0x6a <_JIT_ENTRY+0x6a> | |
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 6a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x71 <_JIT_ENTRY+0x71> | |
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyExc_AttributeError-0x4 | |
// 71: 48 8b 30 movq (%rax), %rsi | |
// 74: 4c 89 ff movq %r15, %rdi | |
// 77: ff 15 00 00 00 00 callq *(%rip) # 0x7d <_JIT_ENTRY+0x7d> | |
// 0000000000000079: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4 | |
// 7d: 85 c0 testl %eax, %eax | |
// 7f: 74 25 je 0xa6 <_JIT_ENTRY+0xa6> | |
// 81: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x88 <_JIT_ENTRY+0x88> | |
// 0000000000000084: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 88: 48 8b 30 movq (%rax), %rsi | |
// 8b: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 90: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 94: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x9b <_JIT_ENTRY+0x9b> | |
// 0000000000000097: R_X86_64_PC32 .L.str.13-0x4 | |
// 9b: 4c 89 ff movq %r15, %rdi | |
// 9e: 31 c0 xorl %eax, %eax | |
// a0: ff 15 00 00 00 00 callq *(%rip) # 0xa6 <_JIT_ENTRY+0xa6> | |
// 00000000000000a2: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// a6: 49 8b 04 24 movq (%r12), %rax | |
// aa: 85 c0 testl %eax, %eax | |
// ac: 78 12 js 0xc0 <_JIT_ENTRY+0xc0> | |
// ae: 48 ff c8 decq %rax | |
// b1: 49 89 04 24 movq %rax, (%r12) | |
// b5: 75 09 jne 0xc0 <_JIT_ENTRY+0xc0> | |
// b7: 4c 89 e7 movq %r12, %rdi | |
// ba: ff 15 00 00 00 00 callq *(%rip) # 0xc0 <_JIT_ENTRY+0xc0> | |
// 00000000000000bc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// c0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xc7 <_JIT_ENTRY+0xc7> | |
// 00000000000000c3: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// c7: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// ce: 49 29 de subq %rbx, %r14 | |
// d1: 49 83 c6 b8 addq $-0x48, %r14 | |
// d5: 49 c1 ee 03 shrq $0x3, %r14 | |
// d9: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// dd: 31 c0 xorl %eax, %eax | |
// df: 48 83 c4 08 addq $0x8, %rsp | |
// e3: 5b popq %rbx | |
// e4: 41 5c popq %r12 | |
// e6: 41 5e popq %r14 | |
// e8: 41 5f popq %r15 | |
// ea: c3 retq | |
// eb: | |
static const unsigned char _DICT_UPDATE_code_body[236] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c, 0x8d, | |
0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00, | |
0x00, 0xff, 0xff, 0x48, 0x98, 0x48, 0x8b, 0x3c, | |
0xc6, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xc0, 0x78, 0x34, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89, | |
0xfa, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x30, 0x4c, 0x89, 0xff, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, | |
0x25, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x30, 0x49, 0x8b, 0x44, 0x24, 0x08, | |
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, | |
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, | |
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _DICT_UPDATE_code_holes[12] = { | |
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x2e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x79, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x84, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x97, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xa2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0xbc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0xc3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
}; | |
// 0: "'%.200s' object is not a mapping\x00" | |
// 21: 00 00 00 00 00 00 00 | |
// 28: OPARG | |
// 30: &PyDict_Update+0x0 | |
// 38: &_Py_Dealloc+0x0 | |
// 40: CONTINUE | |
// 48: &PyExc_AttributeError+0x0 | |
// 50: &_PyErr_ExceptionMatches+0x0 | |
// 58: &PyExc_TypeError+0x0 | |
// 60: &_PyErr_Format+0x0 | |
// 68: EXECUTOR | |
static const unsigned char _DICT_UPDATE_data_body[113] = { | |
0x27, 0x25, 0x2e, 0x32, 0x30, 0x30, 0x73, 0x27, | |
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, | |
0x69, 0x73, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x61, | |
0x20, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _DICT_UPDATE_data_holes[10] = { | |
{0x28, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Update, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_AttributeError, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _END_SEND | |
// | |
// /tmp/tmp2mfmnab2/_END_SEND.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 48 89 d3 movq %rdx, %rbx | |
// c: 49 89 f4 movq %rsi, %r12 | |
// f: 49 89 ff movq %rdi, %r15 | |
// 12: 4c 8d 76 f8 leaq -0x8(%rsi), %r14 | |
// 16: 48 8b 7e f0 movq -0x10(%rsi), %rdi | |
// 1a: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1e: 48 8b 07 movq (%rdi), %rax | |
// 21: 85 c0 testl %eax, %eax | |
// 23: 78 0e js 0x33 <_JIT_ENTRY+0x33> | |
// 25: 48 ff c8 decq %rax | |
// 28: 48 89 07 movq %rax, (%rdi) | |
// 2b: 75 06 jne 0x33 <_JIT_ENTRY+0x33> | |
// 2d: ff 15 00 00 00 00 callq *(%rip) # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 33: 4d 89 6c 24 f0 movq %r13, -0x10(%r12) | |
// 38: 4c 89 ff movq %r15, %rdi | |
// 3b: 4c 89 f6 movq %r14, %rsi | |
// 3e: 48 89 da movq %rbx, %rdx | |
// 41: 5b popq %rbx | |
// 42: 41 5c popq %r12 | |
// 44: 41 5d popq %r13 | |
// 46: 41 5e popq %r14 | |
// 48: 41 5f popq %r15 | |
// 4a: ff 25 00 00 00 00 jmpq *(%rip) # 0x50 <_JIT_ENTRY+0x50> | |
// 000000000000004c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 4a: | |
static const unsigned char _END_SEND_code_body[75] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x48, 0x89, 0xd3, 0x49, 0x89, 0xf4, 0x49, | |
0x89, 0xff, 0x4c, 0x8d, 0x76, 0xf8, 0x48, 0x8b, | |
0x7e, 0xf0, 0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x8b, | |
0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4d, 0x89, 0x6c, 0x24, 0xf0, | |
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89, | |
0xda, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, | |
}; | |
static const Hole _END_SEND_code_holes[2] = { | |
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
}; | |
// 0: | |
// 0: &_Py_Dealloc+0x0 | |
static const unsigned char _END_SEND_data_body[9] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _END_SEND_data_holes[2] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _EXIT_INIT_CHECK | |
// | |
// /tmp/tmp2mfmnab2/_EXIT_INIT_CHECK.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 12: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x19 <_JIT_ENTRY+0x19> | |
// 0000000000000015: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4 | |
// 19: 74 46 je 0x61 <_JIT_ENTRY+0x61> | |
// 1b: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 22: 48 8b 39 movq (%rcx), %rdi | |
// 25: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 29: 48 8b 50 18 movq 0x18(%rax), %rdx | |
// 2d: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0x34 <_JIT_ENTRY+0x34> | |
// 0000000000000030: R_X86_64_PC32 .L.str.19-0x4 | |
// 34: 31 c0 xorl %eax, %eax | |
// 36: ff 15 00 00 00 00 callq *(%rip) # 0x3c <_JIT_ENTRY+0x3c> | |
// 0000000000000038: R_X86_64_GOTPCRELX PyErr_Format-0x4 | |
// 3c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x43 <_JIT_ENTRY+0x43> | |
// 000000000000003f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 43: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 4a: 4c 29 f3 subq %r14, %rbx | |
// 4d: 48 83 c3 b8 addq $-0x48, %rbx | |
// 51: 48 c1 eb 03 shrq $0x3, %rbx | |
// 55: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 59: 31 c0 xorl %eax, %eax | |
// 5b: 5b popq %rbx | |
// 5c: 41 5e popq %r14 | |
// 5e: 41 5f popq %r15 | |
// 60: c3 retq | |
// 61: 48 83 c3 f8 addq $-0x8, %rbx | |
// 65: 4c 89 f7 movq %r14, %rdi | |
// 68: 48 89 de movq %rbx, %rsi | |
// 6b: 4c 89 fa movq %r15, %rdx | |
// 6e: 5b popq %rbx | |
// 6f: 41 5e popq %r14 | |
// 71: 41 5f popq %r15 | |
// 73: ff 25 00 00 00 00 jmpq *(%rip) # 0x79 <_JIT_ENTRY+0x79> | |
// 0000000000000075: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 73: | |
static const unsigned char _EXIT_INIT_CHECK_code_body[116] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x46, 0xf8, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x74, 0x46, 0x48, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x39, 0x48, 0x8b, 0x40, | |
0x08, 0x48, 0x8b, 0x50, 0x18, 0x48, 0x8d, 0x35, | |
0x00, 0x00, 0x00, 0x00, 0x31, 0xc0, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, | |
0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, | |
0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, | |
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, | |
0xc3, 0x48, 0x83, 0xc3, 0xf8, 0x4c, 0x89, 0xf7, | |
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, | |
0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _EXIT_INIT_CHECK_code_holes[6] = { | |
{0x15, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x30, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x38, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x3f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
}; | |
// 0: "__init__() should return None, not '%.200s'\x00" | |
// 2c: 00 00 00 00 | |
// 30: &_Py_NoneStruct+0x0 | |
// 38: &PyExc_TypeError+0x0 | |
// 40: &PyErr_Format+0x0 | |
// 48: EXECUTOR | |
static const unsigned char _EXIT_INIT_CHECK_data_body[81] = { | |
0x5f, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x5f, | |
0x28, 0x29, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, | |
0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, | |
0x20, 0x4e, 0x6f, 0x6e, 0x65, 0x2c, 0x20, 0x6e, | |
0x6f, 0x74, 0x20, 0x27, 0x25, 0x2e, 0x32, 0x30, | |
0x30, 0x73, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _EXIT_INIT_CHECK_data_holes[5] = { | |
{0x30, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyErr_Format, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _EXIT_TRACE | |
// | |
// /tmp/tmp2mfmnab2/_EXIT_TRACE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6 <_JIT_ENTRY+0x6> | |
// 0000000000000002: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 6: 48 c1 e1 04 shlq $0x4, %rcx | |
// a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11 <_JIT_ENTRY+0x11> | |
// 000000000000000d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 11: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 19: 44 8b 01 movl (%rcx), %r8d | |
// 1c: 41 ff c0 incl %r8d | |
// 1f: 74 15 je 0x36 <_JIT_ENTRY+0x36> | |
// 21: 44 89 01 movl %r8d, (%rcx) | |
// 24: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x2a <_JIT_ENTRY+0x2a> | |
// 0000000000000026: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 2a: 48 c1 e1 04 shlq $0x4, %rcx | |
// 2e: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 36: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 3d: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 41: ff e0 jmpq *%rax | |
// 43: | |
static const unsigned char _EXIT_TRACE_code_body[68] = { | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, | |
0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, | |
0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0, 0x74, | |
0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, | |
0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x41, | |
0x70, 0xff, 0xe0, | |
}; | |
static const Hole _EXIT_TRACE_code_holes[4] = { | |
{0x2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0xd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x26, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
}; | |
// 0: | |
// 0: TARGET | |
// 8: EXECUTOR | |
static const unsigned char _EXIT_TRACE_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _EXIT_TRACE_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _FATAL_ERROR | |
// | |
// /tmp/tmp2mfmnab2/_FATAL_ERROR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 50 pushq %rax | |
// 1: 48 8d 3d 00 00 00 00 leaq (%rip), %rdi # 0x8 <_JIT_ENTRY+0x8> | |
// 0000000000000004: R_X86_64_PC32 .L__func__._JIT_ENTRY-0x4 | |
// 8: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_PC32 .L.str.21-0x4 | |
// f: ff 15 00 00 00 00 callq *(%rip) # 0x15 <_JIT_ENTRY+0x15> | |
// 0000000000000011: R_X86_64_GOTPCRELX _Py_FatalErrorFunc-0x4 | |
// 15: | |
static const unsigned char _FATAL_ERROR_code_body[22] = { | |
0x50, 0x48, 0x8d, 0x3d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, 0x00, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _FATAL_ERROR_code_holes[4] = { | |
{0x4, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xb, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x7}, | |
{0x11, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: '_JIT_ENTRY\x00Fatal error uop executed.\x00' | |
// 25: 00 00 00 | |
// 28: &_Py_FatalErrorFunc+0x0 | |
static const unsigned char _FATAL_ERROR_data_body[49] = { | |
0x5f, 0x4a, 0x49, 0x54, 0x5f, 0x45, 0x4e, 0x54, | |
0x52, 0x59, 0x00, 0x46, 0x61, 0x74, 0x61, 0x6c, | |
0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x75, | |
0x6f, 0x70, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, | |
0x74, 0x65, 0x64, 0x2e, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _FATAL_ERROR_data_holes[2] = { | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FatalErrorFunc, 0x0}, | |
}; | |
// _FORMAT_SIMPLE | |
// | |
// /tmp/tmp2mfmnab2/_FORMAT_SIMPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// 22: 74 27 je 0x4b <_JIT_ENTRY+0x4b> | |
// 24: 4c 89 e7 movq %r12, %rdi | |
// 27: 31 f6 xorl %esi, %esi | |
// 29: ff 15 00 00 00 00 callq *(%rip) # 0x2f <_JIT_ENTRY+0x2f> | |
// 000000000000002b: R_X86_64_GOTPCRELX PyObject_Format-0x4 | |
// 2f: 49 89 c5 movq %rax, %r13 | |
// 32: 49 8b 04 24 movq (%r12), %rax | |
// 36: 85 c0 testl %eax, %eax | |
// 38: 78 09 js 0x43 <_JIT_ENTRY+0x43> | |
// 3a: 48 ff c8 decq %rax | |
// 3d: 49 89 04 24 movq %rax, (%r12) | |
// 41: 74 24 je 0x67 <_JIT_ENTRY+0x67> | |
// 43: 4d 89 ec movq %r13, %r12 | |
// 46: 4d 85 ed testq %r13, %r13 | |
// 49: 74 2d je 0x78 <_JIT_ENTRY+0x78> | |
// 4b: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 4f: 4c 89 f7 movq %r14, %rdi | |
// 52: 48 89 de movq %rbx, %rsi | |
// 55: 4c 89 fa movq %r15, %rdx | |
// 58: 5b popq %rbx | |
// 59: 41 5c popq %r12 | |
// 5b: 41 5d popq %r13 | |
// 5d: 41 5e popq %r14 | |
// 5f: 41 5f popq %r15 | |
// 61: ff 25 00 00 00 00 jmpq *(%rip) # 0x67 <_JIT_ENTRY+0x67> | |
// 0000000000000063: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 67: 4c 89 e7 movq %r12, %rdi | |
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 70: 4d 89 ec movq %r13, %r12 | |
// 73: 4d 85 ed testq %r13, %r13 | |
// 76: 75 d3 jne 0x4b <_JIT_ENTRY+0x4b> | |
// 78: 48 83 c3 f8 addq $-0x8, %rbx | |
// 7c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x83 <_JIT_ENTRY+0x83> | |
// 000000000000007f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 83: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 8a: 4c 29 f3 subq %r14, %rbx | |
// 8d: 48 83 c3 b8 addq $-0x48, %rbx | |
// 91: 48 c1 eb 03 shrq $0x3, %rbx | |
// 95: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 99: 31 c0 xorl %eax, %eax | |
// 9b: 5b popq %rbx | |
// 9c: 41 5c popq %r12 | |
// 9e: 41 5d popq %r13 | |
// a0: 41 5e popq %r14 | |
// a2: 41 5f popq %r15 | |
// a4: c3 retq | |
// a5: | |
static const unsigned char _FORMAT_SIMPLE_code_body[166] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b, | |
0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x74, 0x27, 0x4c, 0x89, 0xe7, 0x31, | |
0xf6, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, | |
0x24, 0x74, 0x24, 0x4d, 0x89, 0xec, 0x4d, 0x85, | |
0xed, 0x74, 0x2d, 0x4c, 0x89, 0x63, 0xf8, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x89, 0xec, 0x4d, 0x85, 0xed, 0x75, 0xd3, | |
0x48, 0x83, 0xc3, 0xf8, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, | |
0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, | |
0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, | |
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _FORMAT_SIMPLE_code_holes[6] = { | |
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x63, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x7f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &PyUnicode_Type+0x0 | |
// 8: &PyObject_Format+0x0 | |
// 10: CONTINUE | |
// 18: &_Py_Dealloc+0x0 | |
// 20: EXECUTOR | |
static const unsigned char _FORMAT_SIMPLE_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _FORMAT_SIMPLE_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Format, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _FORMAT_WITH_SPEC | |
// | |
// /tmp/tmp2mfmnab2/_FORMAT_WITH_SPEC.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 48 8b 6e f0 movq -0x10(%rsi), %rbp | |
// 18: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1c: 48 89 ef movq %rbp, %rdi | |
// 1f: 4c 89 ee movq %r13, %rsi | |
// 22: ff 15 00 00 00 00 callq *(%rip) # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX PyObject_Format-0x4 | |
// 28: 49 89 c4 movq %rax, %r12 | |
// 2b: 48 8b 45 00 movq (%rbp), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 09 js 0x3c <_JIT_ENTRY+0x3c> | |
// 33: 48 ff c8 decq %rax | |
// 36: 48 89 45 00 movq %rax, (%rbp) | |
// 3a: 74 1c je 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 49 8b 45 00 movq (%r13), %rax | |
// 40: 85 c0 testl %eax, %eax | |
// 42: 78 25 js 0x69 <_JIT_ENTRY+0x69> | |
// 44: 48 ff c8 decq %rax | |
// 47: 49 89 45 00 movq %rax, (%r13) | |
// 4b: 75 1c jne 0x69 <_JIT_ENTRY+0x69> | |
// 4d: 4c 89 ef movq %r13, %rdi | |
// 50: ff 15 00 00 00 00 callq *(%rip) # 0x56 <_JIT_ENTRY+0x56> | |
// 0000000000000052: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 56: eb 11 jmp 0x69 <_JIT_ENTRY+0x69> | |
// 58: 48 89 ef movq %rbp, %rdi | |
// 5b: ff 15 00 00 00 00 callq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 61: 49 8b 45 00 movq (%r13), %rax | |
// 65: 85 c0 testl %eax, %eax | |
// 67: 79 db jns 0x44 <_JIT_ENTRY+0x44> | |
// 69: 49 8d 47 f0 leaq -0x10(%r15), %rax | |
// 6d: 4d 85 e4 testq %r12, %r12 | |
// 70: 74 24 je 0x96 <_JIT_ENTRY+0x96> | |
// 72: 49 83 c7 f8 addq $-0x8, %r15 | |
// 76: 4c 89 20 movq %r12, (%rax) | |
// 79: 48 89 df movq %rbx, %rdi | |
// 7c: 4c 89 fe movq %r15, %rsi | |
// 7f: 4c 89 f2 movq %r14, %rdx | |
// 82: 48 83 c4 08 addq $0x8, %rsp | |
// 86: 5b popq %rbx | |
// 87: 41 5c popq %r12 | |
// 89: 41 5d popq %r13 | |
// 8b: 41 5e popq %r14 | |
// 8d: 41 5f popq %r15 | |
// 8f: 5d popq %rbp | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 96: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x9d <_JIT_ENTRY+0x9d> | |
// 0000000000000099: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9d: 49 89 8e 28 01 00 00 movq %rcx, 0x128(%r14) | |
// a4: 48 29 d8 subq %rbx, %rax | |
// a7: 48 83 c0 b8 addq $-0x48, %rax | |
// ab: 48 c1 e8 03 shrq $0x3, %rax | |
// af: 89 43 40 movl %eax, 0x40(%rbx) | |
// b2: 31 c0 xorl %eax, %eax | |
// b4: 48 83 c4 08 addq $0x8, %rsp | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: 5d popq %rbp | |
// c2: c3 retq | |
// c3: | |
static const unsigned char _FORMAT_WITH_SPEC_code_body[196] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x48, 0x8b, 0x6e, 0xf0, | |
0x4c, 0x8b, 0x6e, 0xf8, 0x48, 0x89, 0xef, 0x4c, | |
0x89, 0xee, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x09, 0x48, 0xff, 0xc8, 0x48, 0x89, | |
0x45, 0x00, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, | |
0x85, 0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, | |
0x48, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, | |
0xdb, 0x49, 0x8d, 0x47, 0xf0, 0x4d, 0x85, 0xe4, | |
0x74, 0x24, 0x49, 0x83, 0xc7, 0xf8, 0x4c, 0x89, | |
0x20, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xfe, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x8e, | |
0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xd8, 0x48, | |
0x83, 0xc0, 0xb8, 0x48, 0xc1, 0xe8, 0x03, 0x89, | |
0x43, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, 0x08, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _FORMAT_WITH_SPEC_code_holes[6] = { | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x52, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x99, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &PyObject_Format+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _FORMAT_WITH_SPEC_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _FORMAT_WITH_SPEC_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Format, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _FOR_ITER_TIER_TWO | |
// | |
// /tmp/tmp2mfmnab2/_FOR_ITER_TIER_TWO.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 f3 movq %rsi, %rbx | |
// e: 49 89 fe movq %rdi, %r14 | |
// 11: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 15: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1a: 4c 89 e7 movq %r12, %rdi | |
// 1d: ff 90 e0 00 00 00 callq *0xe0(%rax) | |
// 23: 48 85 c0 testq %rax, %rax | |
// 26: 74 21 je 0x49 <_JIT_ENTRY+0x49> | |
// 28: 48 89 03 movq %rax, (%rbx) | |
// 2b: 48 83 c3 08 addq $0x8, %rbx | |
// 2f: 4c 89 f7 movq %r14, %rdi | |
// 32: 48 89 de movq %rbx, %rsi | |
// 35: 4c 89 fa movq %r15, %rdx | |
// 38: 48 83 c4 08 addq $0x8, %rsp | |
// 3c: 5b popq %rbx | |
// 3d: 41 5c popq %r12 | |
// 3f: 41 5e popq %r14 | |
// 41: 41 5f popq %r15 | |
// 43: ff 25 00 00 00 00 jmpq *(%rip) # 0x49 <_JIT_ENTRY+0x49> | |
// 0000000000000045: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 49: 49 8b 47 70 movq 0x70(%r15), %rax | |
// 4d: 48 85 c0 testq %rax, %rax | |
// 50: 74 27 je 0x79 <_JIT_ENTRY+0x79> | |
// 52: 48 83 78 08 00 cmpq $0x0, 0x8(%rax) | |
// 57: 74 20 je 0x79 <_JIT_ENTRY+0x79> | |
// 59: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_REX_GOTPCRELX PyExc_StopIteration-0x4 | |
// 60: 48 8b 30 movq (%rax), %rsi | |
// 63: 4c 89 ff movq %r15, %rdi | |
// 66: ff 15 00 00 00 00 callq *(%rip) # 0x6c <_JIT_ENTRY+0x6c> | |
// 0000000000000068: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4 | |
// 6c: 85 c0 testl %eax, %eax | |
// 6e: 74 63 je 0xd3 <_JIT_ENTRY+0xd3> | |
// 70: 4c 89 ff movq %r15, %rdi | |
// 73: ff 15 00 00 00 00 callq *(%rip) # 0x79 <_JIT_ENTRY+0x79> | |
// 0000000000000075: R_X86_64_GOTPCRELX _PyErr_Clear-0x4 | |
// 79: 48 83 c3 f8 addq $-0x8, %rbx | |
// 7d: 49 8b 04 24 movq (%r12), %rax | |
// 81: 85 c0 testl %eax, %eax | |
// 83: 78 12 js 0x97 <_JIT_ENTRY+0x97> | |
// 85: 48 ff c8 decq %rax | |
// 88: 49 89 04 24 movq %rax, (%r12) | |
// 8c: 75 09 jne 0x97 <_JIT_ENTRY+0x97> | |
// 8e: 4c 89 e7 movq %r12, %rdi | |
// 91: ff 15 00 00 00 00 callq *(%rip) # 0x97 <_JIT_ENTRY+0x97> | |
// 0000000000000093: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 97: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x9e <_JIT_ENTRY+0x9e> | |
// 000000000000009a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 9e: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// a5: 4c 29 f3 subq %r14, %rbx | |
// a8: 48 83 c3 b8 addq $-0x48, %rbx | |
// ac: 48 c1 eb 03 shrq $0x3, %rbx | |
// b0: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// b4: 49 8b 06 movq (%r14), %rax | |
// b7: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// bd: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// c1: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// c7: 48 83 c4 08 addq $0x8, %rsp | |
// cb: 5b popq %rbx | |
// cc: 41 5c popq %r12 | |
// ce: 41 5e popq %r14 | |
// d0: 41 5f popq %r15 | |
// d2: c3 retq | |
// d3: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xda <_JIT_ENTRY+0xda> | |
// 00000000000000d6: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// da: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// e1: 4c 29 f3 subq %r14, %rbx | |
// e4: 48 83 c3 b8 addq $-0x48, %rbx | |
// e8: 48 c1 eb 03 shrq $0x3, %rbx | |
// ec: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// f0: 31 c0 xorl %eax, %eax | |
// f2: eb d3 jmp 0xc7 <_JIT_ENTRY+0xc7> | |
// f4: | |
static const unsigned char _FOR_ITER_TIER_TWO_code_body[245] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, | |
0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b, 0x44, | |
0x24, 0x08, 0x4c, 0x89, 0xe7, 0xff, 0x90, 0xe0, | |
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x21, | |
0x48, 0x89, 0x03, 0x48, 0x83, 0xc3, 0x08, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x47, 0x70, 0x48, 0x85, 0xc0, | |
0x74, 0x27, 0x48, 0x83, 0x78, 0x08, 0x00, 0x74, | |
0x20, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x30, 0x4c, 0x89, 0xff, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0x63, | |
0x4c, 0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x83, 0xc3, 0xf8, 0x49, 0x8b, 0x04, | |
0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, | |
0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, | |
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, | |
0x41, 0x89, 0x5e, 0x40, 0x49, 0x8b, 0x06, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0x48, | |
0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, | |
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, | |
0x31, 0xc0, 0xeb, 0xd3, | |
}; | |
static const Hole _FOR_ITER_TIER_TWO_code_holes[9] = { | |
{0x45, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x5c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x68, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x75, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x93, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x9a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0xb9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0xd6, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: CONTINUE | |
// 8: &PyExc_StopIteration+0x0 | |
// 10: &_PyErr_ExceptionMatches+0x0 | |
// 18: &_PyErr_Clear+0x0 | |
// 20: &_Py_Dealloc+0x0 | |
// 28: EXECUTOR | |
// 30: TARGET | |
static const unsigned char _FOR_ITER_TIER_TWO_data_body[57] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _FOR_ITER_TIER_TWO_data_holes[8] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_StopIteration, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Clear, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GET_AITER | |
// | |
// /tmp/tmp2mfmnab2/_GET_AITER.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1b: 48 8b 48 50 movq 0x50(%rax), %rcx | |
// 1f: 48 85 c9 testq %rcx, %rcx | |
// 22: 74 5f je 0x83 <_JIT_ENTRY+0x83> | |
// 24: 48 8b 49 08 movq 0x8(%rcx), %rcx | |
// 28: 48 85 c9 testq %rcx, %rcx | |
// 2b: 74 56 je 0x83 <_JIT_ENTRY+0x83> | |
// 2d: 4c 89 e7 movq %r12, %rdi | |
// 30: ff d1 callq *%rcx | |
// 32: 49 89 c5 movq %rax, %r13 | |
// 35: 49 8b 04 24 movq (%r12), %rax | |
// 39: 85 c0 testl %eax, %eax | |
// 3b: 78 0d js 0x4a <_JIT_ENTRY+0x4a> | |
// 3d: 48 ff c8 decq %rax | |
// 40: 49 89 04 24 movq %rax, (%r12) | |
// 44: 0f 84 d6 00 00 00 je 0x120 <_JIT_ENTRY+0x120> | |
// 4a: 4d 85 ed testq %r13, %r13 | |
// 4d: 0f 84 a0 00 00 00 je 0xf3 <_JIT_ENTRY+0xf3> | |
// 53: 49 8b 45 08 movq 0x8(%r13), %rax | |
// 57: 48 8b 48 50 movq 0x50(%rax), %rcx | |
// 5b: 48 85 c9 testq %rcx, %rcx | |
// 5e: 74 56 je 0xb6 <_JIT_ENTRY+0xb6> | |
// 60: 48 83 79 10 00 cmpq $0x0, 0x10(%rcx) | |
// 65: 74 4f je 0xb6 <_JIT_ENTRY+0xb6> | |
// 67: 4c 89 6b f8 movq %r13, -0x8(%rbx) | |
// 6b: 4c 89 f7 movq %r14, %rdi | |
// 6e: 48 89 de movq %rbx, %rsi | |
// 71: 4c 89 fa movq %r15, %rdx | |
// 74: 5b popq %rbx | |
// 75: 41 5c popq %r12 | |
// 77: 41 5d popq %r13 | |
// 79: 41 5e popq %r14 | |
// 7b: 41 5f popq %r15 | |
// 7d: ff 25 00 00 00 00 jmpq *(%rip) # 0x83 <_JIT_ENTRY+0x83> | |
// 000000000000007f: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 83: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x8a <_JIT_ENTRY+0x8a> | |
// 0000000000000086: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 8a: 48 8b 31 movq (%rcx), %rsi | |
// 8d: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 91: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x98 <_JIT_ENTRY+0x98> | |
// 0000000000000094: R_X86_64_PC32 .L.str-0x4 | |
// 98: 4c 89 ff movq %r15, %rdi | |
// 9b: 31 c0 xorl %eax, %eax | |
// 9d: ff 15 00 00 00 00 callq *(%rip) # 0xa3 <_JIT_ENTRY+0xa3> | |
// 000000000000009f: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// a3: 49 8b 04 24 movq (%r12), %rax | |
// a7: 85 c0 testl %eax, %eax | |
// a9: 78 48 js 0xf3 <_JIT_ENTRY+0xf3> | |
// ab: 48 ff c8 decq %rax | |
// ae: 49 89 04 24 movq %rax, (%r12) | |
// b2: 75 3f jne 0xf3 <_JIT_ENTRY+0xf3> | |
// b4: eb 34 jmp 0xea <_JIT_ENTRY+0xea> | |
// b6: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0xbd <_JIT_ENTRY+0xbd> | |
// 00000000000000b9: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// bd: 48 8b 31 movq (%rcx), %rsi | |
// c0: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// c4: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xcb <_JIT_ENTRY+0xcb> | |
// 00000000000000c7: R_X86_64_PC32 .L.str.1-0x4 | |
// cb: 4c 89 ff movq %r15, %rdi | |
// ce: 31 c0 xorl %eax, %eax | |
// d0: ff 15 00 00 00 00 callq *(%rip) # 0xd6 <_JIT_ENTRY+0xd6> | |
// 00000000000000d2: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// d6: 49 8b 45 00 movq (%r13), %rax | |
// da: 85 c0 testl %eax, %eax | |
// dc: 78 15 js 0xf3 <_JIT_ENTRY+0xf3> | |
// de: 4d 89 ec movq %r13, %r12 | |
// e1: 48 ff c8 decq %rax | |
// e4: 49 89 45 00 movq %rax, (%r13) | |
// e8: 75 09 jne 0xf3 <_JIT_ENTRY+0xf3> | |
// ea: 4c 89 e7 movq %r12, %rdi | |
// ed: ff 15 00 00 00 00 callq *(%rip) # 0xf3 <_JIT_ENTRY+0xf3> | |
// 00000000000000ef: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f3: 48 83 c3 f8 addq $-0x8, %rbx | |
// f7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xfe <_JIT_ENTRY+0xfe> | |
// 00000000000000fa: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// fe: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 105: 4c 29 f3 subq %r14, %rbx | |
// 108: 48 83 c3 b8 addq $-0x48, %rbx | |
// 10c: 48 c1 eb 03 shrq $0x3, %rbx | |
// 110: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 114: 31 c0 xorl %eax, %eax | |
// 116: 5b popq %rbx | |
// 117: 41 5c popq %r12 | |
// 119: 41 5d popq %r13 | |
// 11b: 41 5e popq %r14 | |
// 11d: 41 5f popq %r15 | |
// 11f: c3 retq | |
// 120: 4c 89 e7 movq %r12, %rdi | |
// 123: ff 15 00 00 00 00 callq *(%rip) # 0x129 <_JIT_ENTRY+0x129> | |
// 0000000000000125: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 129: 4d 85 ed testq %r13, %r13 | |
// 12c: 0f 85 21 ff ff ff jne 0x53 <_JIT_ENTRY+0x53> | |
// 132: eb bf jmp 0xf3 <_JIT_ENTRY+0xf3> | |
// 134: | |
static const unsigned char _GET_AITER_code_body[309] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b, | |
0x44, 0x24, 0x08, 0x48, 0x8b, 0x48, 0x50, 0x48, | |
0x85, 0xc9, 0x74, 0x5f, 0x48, 0x8b, 0x49, 0x08, | |
0x48, 0x85, 0xc9, 0x74, 0x56, 0x4c, 0x89, 0xe7, | |
0xff, 0xd1, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04, | |
0x24, 0x85, 0xc0, 0x78, 0x0d, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x04, 0x24, 0x0f, 0x84, 0xd6, 0x00, | |
0x00, 0x00, 0x4d, 0x85, 0xed, 0x0f, 0x84, 0xa0, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, 0x08, 0x48, | |
0x8b, 0x48, 0x50, 0x48, 0x85, 0xc9, 0x74, 0x56, | |
0x48, 0x83, 0x79, 0x10, 0x00, 0x74, 0x4f, 0x4c, | |
0x89, 0x6b, 0xf8, 0x4c, 0x89, 0xf7, 0x48, 0x89, | |
0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c, 0x41, | |
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x31, 0x48, 0x8b, 0x48, | |
0x18, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xff, 0x31, 0xc0, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x78, 0x48, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x3f, 0xeb, 0x34, 0x48, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x31, | |
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x45, 0x00, 0x85, 0xc0, 0x78, 0x15, 0x4d, 0x89, | |
0xec, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, 0x00, | |
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x83, 0xc3, 0xf8, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, | |
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, | |
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x4d, 0x85, 0xed, 0x0f, 0x85, 0x21, 0xff, | |
0xff, 0xff, 0xeb, 0xbf, | |
}; | |
static const Hole _GET_AITER_code_holes[11] = { | |
{0x7f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x9c}, | |
{0x86, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0x94, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x9f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0xb9, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0xc7, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3d}, | |
{0xd2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0xef, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
{0xfa, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
{0x125, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
}; | |
// 0: "'async for' requires an object with __aiter__ method, got %.100s\x00'async for' received an object from __aiter__ that does not implement __anext__: %.100s\x00" | |
// 99: 00 00 00 00 00 00 00 | |
// a0: CONTINUE | |
// a8: &PyExc_TypeError+0x0 | |
// b0: &_PyErr_Format+0x0 | |
// b8: &_Py_Dealloc+0x0 | |
// c0: EXECUTOR | |
static const unsigned char _GET_AITER_data_body[201] = { | |
0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x66, | |
0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x71, 0x75, | |
0x69, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, | |
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x77, | |
0x69, 0x74, 0x68, 0x20, 0x5f, 0x5f, 0x61, 0x69, | |
0x74, 0x65, 0x72, 0x5f, 0x5f, 0x20, 0x6d, 0x65, | |
0x74, 0x68, 0x6f, 0x64, 0x2c, 0x20, 0x67, 0x6f, | |
0x74, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73, | |
0x00, 0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, | |
0x66, 0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x63, | |
0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x61, 0x6e, | |
0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, | |
0x66, 0x72, 0x6f, 0x6d, 0x20, 0x5f, 0x5f, 0x61, | |
0x69, 0x74, 0x65, 0x72, 0x5f, 0x5f, 0x20, 0x74, | |
0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x65, 0x73, | |
0x20, 0x6e, 0x6f, 0x74, 0x20, 0x69, 0x6d, 0x70, | |
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x5f, | |
0x5f, 0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, | |
0x3a, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_AITER_data_holes[6] = { | |
{0xa0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0xb0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0xc0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GET_ANEXT | |
// | |
// /tmp/tmp2mfmnab2/_GET_ANEXT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 16: 48 8b 47 08 movq 0x8(%rdi), %rax | |
// 1a: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x21 <_JIT_ENTRY+0x21> | |
// 000000000000001d: R_X86_64_REX_GOTPCRELX PyAsyncGen_Type-0x4 | |
// 21: 74 6f je 0x92 <_JIT_ENTRY+0x92> | |
// 23: 48 8b 48 50 movq 0x50(%rax), %rcx | |
// 27: 48 85 c9 testq %rcx, %rcx | |
// 2a: 74 44 je 0x70 <_JIT_ENTRY+0x70> | |
// 2c: 48 8b 49 10 movq 0x10(%rcx), %rcx | |
// 30: 48 85 c9 testq %rcx, %rcx | |
// 33: 74 3b je 0x70 <_JIT_ENTRY+0x70> | |
// 35: ff d1 callq *%rcx | |
// 37: 48 85 c0 testq %rax, %rax | |
// 3a: 0f 84 c3 00 00 00 je 0x103 <_JIT_ENTRY+0x103> | |
// 40: 49 89 c4 movq %rax, %r12 | |
// 43: 48 89 c7 movq %rax, %rdi | |
// 46: ff 15 00 00 00 00 callq *(%rip) # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _PyCoro_GetAwaitableIter-0x4 | |
// 4c: 48 85 c0 testq %rax, %rax | |
// 4f: 74 76 je 0xc7 <_JIT_ENTRY+0xc7> | |
// 51: 49 89 c5 movq %rax, %r13 | |
// 54: 49 8b 04 24 movq (%r12), %rax | |
// 58: 85 c0 testl %eax, %eax | |
// 5a: 78 4c js 0xa8 <_JIT_ENTRY+0xa8> | |
// 5c: 48 ff c8 decq %rax | |
// 5f: 49 89 04 24 movq %rax, (%r12) | |
// 63: 75 43 jne 0xa8 <_JIT_ENTRY+0xa8> | |
// 65: 4c 89 e7 movq %r12, %rdi | |
// 68: ff 15 00 00 00 00 callq *(%rip) # 0x6e <_JIT_ENTRY+0x6e> | |
// 000000000000006a: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 6e: eb 38 jmp 0xa8 <_JIT_ENTRY+0xa8> | |
// 70: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 77: 48 8b 31 movq (%rcx), %rsi | |
// 7a: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 7e: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x85 <_JIT_ENTRY+0x85> | |
// 0000000000000081: R_X86_64_PC32 .L.str.2-0x4 | |
// 85: 4c 89 ff movq %r15, %rdi | |
// 88: 31 c0 xorl %eax, %eax | |
// 8a: ff 15 00 00 00 00 callq *(%rip) # 0x90 <_JIT_ENTRY+0x90> | |
// 000000000000008c: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// 90: eb 71 jmp 0x103 <_JIT_ENTRY+0x103> | |
// 92: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x99 <_JIT_ENTRY+0x99> | |
// 0000000000000095: R_X86_64_REX_GOTPCRELX PyAsyncGen_Type-0x4 | |
// 99: 48 8b 40 50 movq 0x50(%rax), %rax | |
// 9d: ff 50 10 callq *0x10(%rax) | |
// a0: 49 89 c5 movq %rax, %r13 | |
// a3: 48 85 c0 testq %rax, %rax | |
// a6: 74 5b je 0x103 <_JIT_ENTRY+0x103> | |
// a8: 4c 89 2b movq %r13, (%rbx) | |
// ab: 48 83 c3 08 addq $0x8, %rbx | |
// af: 4c 89 f7 movq %r14, %rdi | |
// b2: 48 89 de movq %rbx, %rsi | |
// b5: 4c 89 fa movq %r15, %rdx | |
// b8: 5b popq %rbx | |
// b9: 41 5c popq %r12 | |
// bb: 41 5d popq %r13 | |
// bd: 41 5e popq %r14 | |
// bf: 41 5f popq %r15 | |
// c1: ff 25 00 00 00 00 jmpq *(%rip) # 0xc7 <_JIT_ENTRY+0xc7> | |
// 00000000000000c3: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// c7: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xce <_JIT_ENTRY+0xce> | |
// 00000000000000ca: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// ce: 48 8b 38 movq (%rax), %rdi | |
// d1: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// d6: 48 8b 50 18 movq 0x18(%rax), %rdx | |
// da: 48 8d 35 00 00 00 00 leaq (%rip), %rsi # 0xe1 <_JIT_ENTRY+0xe1> | |
// 00000000000000dd: R_X86_64_PC32 .L.str.3-0x4 | |
// e1: 31 c0 xorl %eax, %eax | |
// e3: ff 15 00 00 00 00 callq *(%rip) # 0xe9 <_JIT_ENTRY+0xe9> | |
// 00000000000000e5: R_X86_64_GOTPCRELX _PyErr_FormatFromCause-0x4 | |
// e9: 49 8b 04 24 movq (%r12), %rax | |
// ed: 85 c0 testl %eax, %eax | |
// ef: 78 12 js 0x103 <_JIT_ENTRY+0x103> | |
// f1: 48 ff c8 decq %rax | |
// f4: 49 89 04 24 movq %rax, (%r12) | |
// f8: 75 09 jne 0x103 <_JIT_ENTRY+0x103> | |
// fa: 4c 89 e7 movq %r12, %rdi | |
// fd: ff 15 00 00 00 00 callq *(%rip) # 0x103 <_JIT_ENTRY+0x103> | |
// 00000000000000ff: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 103: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x10a <_JIT_ENTRY+0x10a> | |
// 0000000000000106: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 10a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 111: 4c 29 f3 subq %r14, %rbx | |
// 114: 48 83 c3 b8 addq $-0x48, %rbx | |
// 118: 48 c1 eb 03 shrq $0x3, %rbx | |
// 11c: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 120: 31 c0 xorl %eax, %eax | |
// 122: 5b popq %rbx | |
// 123: 41 5c popq %r12 | |
// 125: 41 5d popq %r13 | |
// 127: 41 5e popq %r14 | |
// 129: 41 5f popq %r15 | |
// 12b: c3 retq | |
// 12c: | |
static const unsigned char _GET_ANEXT_code_body[301] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x8b, | |
0x47, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x74, 0x6f, 0x48, 0x8b, 0x48, 0x50, 0x48, | |
0x85, 0xc9, 0x74, 0x44, 0x48, 0x8b, 0x49, 0x10, | |
0x48, 0x85, 0xc9, 0x74, 0x3b, 0xff, 0xd1, 0x48, | |
0x85, 0xc0, 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0xc4, 0x48, 0x89, 0xc7, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, | |
0x76, 0x49, 0x89, 0xc5, 0x49, 0x8b, 0x04, 0x24, | |
0x85, 0xc0, 0x78, 0x4c, 0x48, 0xff, 0xc8, 0x49, | |
0x89, 0x04, 0x24, 0x75, 0x43, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x38, | |
0x48, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x31, 0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, | |
0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0xeb, 0x71, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x40, 0x50, 0xff, 0x50, 0x10, | |
0x49, 0x89, 0xc5, 0x48, 0x85, 0xc0, 0x74, 0x5b, | |
0x4c, 0x89, 0x2b, 0x48, 0x83, 0xc3, 0x08, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x38, 0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, 0x8b, | |
0x50, 0x18, 0x48, 0x8d, 0x35, 0x00, 0x00, 0x00, | |
0x00, 0x31, 0xc0, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, | |
0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, | |
0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, | |
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, | |
0x31, 0xc0, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _GET_ANEXT_code_holes[14] = { | |
{0x1d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x84}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x8c}, | |
{0x6a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x94}, | |
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x9c}, | |
{0x81, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x8c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xa4}, | |
{0x95, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x84}, | |
{0xc3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xac}, | |
{0xca, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x9c}, | |
{0xdd, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, 0x3f}, | |
{0xe5, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xb4}, | |
{0xff, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x94}, | |
{0x106, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xbc}, | |
}; | |
// 0: "'async for' requires an iterator with __anext__ method, got %.100s\x00'async for' received an invalid object from __anext__: %.100s\x00" | |
// 81: 00 00 00 00 00 00 00 | |
// 88: &PyAsyncGen_Type+0x0 | |
// 90: &_PyCoro_GetAwaitableIter+0x0 | |
// 98: &_Py_Dealloc+0x0 | |
// a0: &PyExc_TypeError+0x0 | |
// a8: &_PyErr_Format+0x0 | |
// b0: CONTINUE | |
// b8: &_PyErr_FormatFromCause+0x0 | |
// c0: EXECUTOR | |
static const unsigned char _GET_ANEXT_data_body[201] = { | |
0x27, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x66, | |
0x6f, 0x72, 0x27, 0x20, 0x72, 0x65, 0x71, 0x75, | |
0x69, 0x72, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, | |
0x69, 0x74, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, | |
0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x5f, 0x5f, | |
0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, 0x20, | |
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x2c, 0x20, | |
0x67, 0x6f, 0x74, 0x20, 0x25, 0x2e, 0x31, 0x30, | |
0x30, 0x73, 0x00, 0x27, 0x61, 0x73, 0x79, 0x6e, | |
0x63, 0x20, 0x66, 0x6f, 0x72, 0x27, 0x20, 0x72, | |
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, | |
0x61, 0x6e, 0x20, 0x69, 0x6e, 0x76, 0x61, 0x6c, | |
0x69, 0x64, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, | |
0x74, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x5f, | |
0x5f, 0x61, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x5f, | |
0x3a, 0x20, 0x25, 0x2e, 0x31, 0x30, 0x30, 0x73, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_ANEXT_data_holes[9] = { | |
{0x88, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyAsyncGen_Type, 0x0}, | |
{0x90, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyCoro_GetAwaitableIter, 0x0}, | |
{0x98, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0xa0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0xa8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0xb0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0xb8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_FormatFromCause, 0x0}, | |
{0xc0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GET_AWAITABLE | |
// | |
// /tmp/tmp2mfmnab2/_GET_AWAITABLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 16: 4c 89 ef movq %r13, %rdi | |
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f> | |
// 000000000000001b: R_X86_64_GOTPCRELX _PyCoro_GetAwaitableIter-0x4 | |
// 1f: 49 89 c4 movq %rax, %r12 | |
// 22: 48 85 c0 testq %rax, %rax | |
// 25: 74 0a je 0x31 <_JIT_ENTRY+0x31> | |
// 27: 49 8b 45 00 movq (%r13), %rax | |
// 2b: 85 c0 testl %eax, %eax | |
// 2d: 79 1e jns 0x4d <_JIT_ENTRY+0x4d> | |
// 2f: eb 29 jmp 0x5a <_JIT_ENTRY+0x5a> | |
// 31: 49 8b 75 08 movq 0x8(%r13), %rsi | |
// 35: 0f b7 15 00 00 00 00 movzwl (%rip), %edx # 0x3c <_JIT_ENTRY+0x3c> | |
// 0000000000000038: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 3c: 4c 89 ff movq %r15, %rdi | |
// 3f: ff 15 00 00 00 00 callq *(%rip) # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_GOTPCRELX _PyEval_FormatAwaitableError-0x4 | |
// 45: 49 8b 45 00 movq (%r13), %rax | |
// 49: 85 c0 testl %eax, %eax | |
// 4b: 78 0d js 0x5a <_JIT_ENTRY+0x5a> | |
// 4d: 48 ff c8 decq %rax | |
// 50: 49 89 45 00 movq %rax, (%r13) | |
// 54: 0f 84 8f 00 00 00 je 0xe9 <_JIT_ENTRY+0xe9> | |
// 5a: 4d 85 e4 testq %r12, %r12 | |
// 5d: 0f 84 98 00 00 00 je 0xfb <_JIT_ENTRY+0xfb> | |
// 63: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 68: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x6f <_JIT_ENTRY+0x6f> | |
// 000000000000006b: R_X86_64_REX_GOTPCRELX PyCoro_Type-0x4 | |
// 6f: 74 1c je 0x8d <_JIT_ENTRY+0x8d> | |
// 71: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 75: 4c 89 f7 movq %r14, %rdi | |
// 78: 48 89 de movq %rbx, %rsi | |
// 7b: 4c 89 fa movq %r15, %rdx | |
// 7e: 5b popq %rbx | |
// 7f: 41 5c popq %r12 | |
// 81: 41 5d popq %r13 | |
// 83: 41 5e popq %r14 | |
// 85: 41 5f popq %r15 | |
// 87: ff 25 00 00 00 00 jmpq *(%rip) # 0x8d <_JIT_ENTRY+0x8d> | |
// 0000000000000089: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 8d: 4c 89 e7 movq %r12, %rdi | |
// 90: ff 15 00 00 00 00 callq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _PyGen_yf-0x4 | |
// 96: 48 85 c0 testq %rax, %rax | |
// 99: 74 d6 je 0x71 <_JIT_ENTRY+0x71> | |
// 9b: 48 8b 08 movq (%rax), %rcx | |
// 9e: 85 c9 testl %ecx, %ecx | |
// a0: 78 11 js 0xb3 <_JIT_ENTRY+0xb3> | |
// a2: 48 ff c9 decq %rcx | |
// a5: 48 89 08 movq %rcx, (%rax) | |
// a8: 75 09 jne 0xb3 <_JIT_ENTRY+0xb3> | |
// aa: 48 89 c7 movq %rax, %rdi | |
// ad: ff 15 00 00 00 00 callq *(%rip) # 0xb3 <_JIT_ENTRY+0xb3> | |
// 00000000000000af: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// b3: 49 8b 04 24 movq (%r12), %rax | |
// b7: 85 c0 testl %eax, %eax | |
// b9: 78 12 js 0xcd <_JIT_ENTRY+0xcd> | |
// bb: 48 ff c8 decq %rax | |
// be: 49 89 04 24 movq %rax, (%r12) | |
// c2: 75 09 jne 0xcd <_JIT_ENTRY+0xcd> | |
// c4: 4c 89 e7 movq %r12, %rdi | |
// c7: ff 15 00 00 00 00 callq *(%rip) # 0xcd <_JIT_ENTRY+0xcd> | |
// 00000000000000c9: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// cd: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xd4 <_JIT_ENTRY+0xd4> | |
// 00000000000000d0: R_X86_64_REX_GOTPCRELX PyExc_RuntimeError-0x4 | |
// d4: 48 8b 30 movq (%rax), %rsi | |
// d7: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xde <_JIT_ENTRY+0xde> | |
// 00000000000000da: R_X86_64_PC32 .L.str.4-0x4 | |
// de: 4c 89 ff movq %r15, %rdi | |
// e1: ff 15 00 00 00 00 callq *(%rip) # 0xe7 <_JIT_ENTRY+0xe7> | |
// 00000000000000e3: R_X86_64_GOTPCRELX _PyErr_SetString-0x4 | |
// e7: eb 12 jmp 0xfb <_JIT_ENTRY+0xfb> | |
// e9: 4c 89 ef movq %r13, %rdi | |
// ec: ff 15 00 00 00 00 callq *(%rip) # 0xf2 <_JIT_ENTRY+0xf2> | |
// 00000000000000ee: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// f2: 4d 85 e4 testq %r12, %r12 | |
// f5: 0f 85 68 ff ff ff jne 0x63 <_JIT_ENTRY+0x63> | |
// fb: 48 83 c3 f8 addq $-0x8, %rbx | |
// ff: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x106 <_JIT_ENTRY+0x106> | |
// 0000000000000102: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 106: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 10d: 4c 29 f3 subq %r14, %rbx | |
// 110: 48 83 c3 b8 addq $-0x48, %rbx | |
// 114: 48 c1 eb 03 shrq $0x3, %rbx | |
// 118: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 11c: 31 c0 xorl %eax, %eax | |
// 11e: 5b popq %rbx | |
// 11f: 41 5c popq %r12 | |
// 121: 41 5d popq %r13 | |
// 123: 41 5e popq %r14 | |
// 125: 41 5f popq %r15 | |
// 127: c3 retq | |
// 128: | |
static const unsigned char _GET_AWAITABLE_code_body[297] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, | |
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0xc4, 0x48, 0x85, 0xc0, 0x74, 0x0a, 0x49, | |
0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, 0x1e, 0xeb, | |
0x29, 0x49, 0x8b, 0x75, 0x08, 0x0f, 0xb7, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, 0x45, | |
0x00, 0x85, 0xc0, 0x78, 0x0d, 0x48, 0xff, 0xc8, | |
0x49, 0x89, 0x45, 0x00, 0x0f, 0x84, 0x8f, 0x00, | |
0x00, 0x00, 0x4d, 0x85, 0xe4, 0x0f, 0x84, 0x98, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x1c, 0x4c, 0x89, 0x63, 0xf8, 0x4c, 0x89, 0xf7, | |
0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff, | |
0x25, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x74, 0xd6, 0x48, 0x8b, 0x08, 0x85, 0xc9, | |
0x78, 0x11, 0x48, 0xff, 0xc9, 0x48, 0x89, 0x08, | |
0x75, 0x09, 0x48, 0x89, 0xc7, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x8b, 0x04, 0x24, 0x85, | |
0xc0, 0x78, 0x12, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x04, 0x24, 0x75, 0x09, 0x4c, 0x89, 0xe7, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x30, 0x48, | |
0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, | |
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, | |
0x12, 0x4c, 0x89, 0xef, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x4d, 0x85, 0xe4, 0x0f, 0x85, 0x68, | |
0xff, 0xff, 0xff, 0x48, 0x83, 0xc3, 0xf8, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, | |
0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, | |
0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, | |
0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _GET_AWAITABLE_code_holes[14] = { | |
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
{0x38, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x2c}, | |
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x6b, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x89, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x92, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0xaf, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0xc9, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0xd0, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0xda, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xe3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
{0xee, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x102, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x6c}, | |
}; | |
// 0: 'coroutine is being awaited already\x00' | |
// 23: 00 00 00 00 00 | |
// 28: &_PyCoro_GetAwaitableIter+0x0 | |
// 30: OPARG | |
// 38: &_PyEval_FormatAwaitableError+0x0 | |
// 40: &PyCoro_Type+0x0 | |
// 48: CONTINUE | |
// 50: &_PyGen_yf+0x0 | |
// 58: &_Py_Dealloc+0x0 | |
// 60: &PyExc_RuntimeError+0x0 | |
// 68: &_PyErr_SetString+0x0 | |
// 70: EXECUTOR | |
static const unsigned char _GET_AWAITABLE_data_body[121] = { | |
0x63, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, | |
0x65, 0x20, 0x69, 0x73, 0x20, 0x62, 0x65, 0x69, | |
0x6e, 0x67, 0x20, 0x61, 0x77, 0x61, 0x69, 0x74, | |
0x65, 0x64, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, | |
0x64, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_AWAITABLE_data_holes[11] = { | |
{0x28, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyCoro_GetAwaitableIter, 0x0}, | |
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyEval_FormatAwaitableError, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCoro_Type, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyGen_yf, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_RuntimeError, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0}, | |
{0x70, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GET_ITER | |
// | |
// /tmp/tmp2mfmnab2/_GET_ITER.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 16: 4c 89 ef movq %r13, %rdi | |
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f> | |
// 000000000000001b: R_X86_64_GOTPCRELX PyObject_GetIter-0x4 | |
// 1f: 49 89 c4 movq %rax, %r12 | |
// 22: 49 8b 45 00 movq (%r13), %rax | |
// 26: 85 c0 testl %eax, %eax | |
// 28: 78 09 js 0x33 <_JIT_ENTRY+0x33> | |
// 2a: 48 ff c8 decq %rax | |
// 2d: 49 89 45 00 movq %rax, (%r13) | |
// 31: 74 21 je 0x54 <_JIT_ENTRY+0x54> | |
// 33: 4d 85 e4 testq %r12, %r12 | |
// 36: 74 2a je 0x62 <_JIT_ENTRY+0x62> | |
// 38: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 3c: 4c 89 f7 movq %r14, %rdi | |
// 3f: 48 89 de movq %rbx, %rsi | |
// 42: 4c 89 fa movq %r15, %rdx | |
// 45: 5b popq %rbx | |
// 46: 41 5c popq %r12 | |
// 48: 41 5d popq %r13 | |
// 4a: 41 5e popq %r14 | |
// 4c: 41 5f popq %r15 | |
// 4e: ff 25 00 00 00 00 jmpq *(%rip) # 0x54 <_JIT_ENTRY+0x54> | |
// 0000000000000050: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 54: 4c 89 ef movq %r13, %rdi | |
// 57: ff 15 00 00 00 00 callq *(%rip) # 0x5d <_JIT_ENTRY+0x5d> | |
// 0000000000000059: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 5d: 4d 85 e4 testq %r12, %r12 | |
// 60: 75 d6 jne 0x38 <_JIT_ENTRY+0x38> | |
// 62: 48 83 c3 f8 addq $-0x8, %rbx | |
// 66: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6d <_JIT_ENTRY+0x6d> | |
// 0000000000000069: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 6d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 74: 4c 29 f3 subq %r14, %rbx | |
// 77: 48 83 c3 b8 addq $-0x48, %rbx | |
// 7b: 48 c1 eb 03 shrq $0x3, %rbx | |
// 7f: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 83: 31 c0 xorl %eax, %eax | |
// 85: 5b popq %rbx | |
// 86: 41 5c popq %r12 | |
// 88: 41 5d popq %r13 | |
// 8a: 41 5e popq %r14 | |
// 8c: 41 5f popq %r15 | |
// 8e: c3 retq | |
// 8f: | |
static const unsigned char _GET_ITER_code_body[144] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x6e, 0xf8, 0x4c, 0x89, | |
0xef, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0xc4, 0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x45, | |
0x00, 0x74, 0x21, 0x4d, 0x85, 0xe4, 0x74, 0x2a, | |
0x4c, 0x89, 0x63, 0xf8, 0x4c, 0x89, 0xf7, 0x48, | |
0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xef, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x85, 0xe4, | |
0x75, 0xd6, 0x48, 0x83, 0xc3, 0xf8, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5c, | |
0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _GET_ITER_code_holes[5] = { | |
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x50, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x59, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x69, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &PyObject_GetIter+0x0 | |
// 8: CONTINUE | |
// 10: &_Py_Dealloc+0x0 | |
// 18: EXECUTOR | |
static const unsigned char _GET_ITER_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_ITER_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetIter, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GET_LEN | |
// | |
// /tmp/tmp2mfmnab2/_GET_LEN.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 12: ff 15 00 00 00 00 callq *(%rip) # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCRELX PyObject_Size-0x4 | |
// 18: 48 85 c0 testq %rax, %rax | |
// 1b: 78 29 js 0x46 <_JIT_ENTRY+0x46> | |
// 1d: 48 89 c7 movq %rax, %rdi | |
// 20: ff 15 00 00 00 00 callq *(%rip) # 0x26 <_JIT_ENTRY+0x26> | |
// 0000000000000022: R_X86_64_GOTPCRELX PyLong_FromSsize_t-0x4 | |
// 26: 48 85 c0 testq %rax, %rax | |
// 29: 74 1b je 0x46 <_JIT_ENTRY+0x46> | |
// 2b: 48 89 03 movq %rax, (%rbx) | |
// 2e: 48 83 c3 08 addq $0x8, %rbx | |
// 32: 4c 89 f7 movq %r14, %rdi | |
// 35: 48 89 de movq %rbx, %rsi | |
// 38: 4c 89 fa movq %r15, %rdx | |
// 3b: 5b popq %rbx | |
// 3c: 41 5e popq %r14 | |
// 3e: 41 5f popq %r15 | |
// 40: ff 25 00 00 00 00 jmpq *(%rip) # 0x46 <_JIT_ENTRY+0x46> | |
// 0000000000000042: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 46: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x4d <_JIT_ENTRY+0x4d> | |
// 0000000000000049: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 4d: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 54: 4c 29 f3 subq %r14, %rbx | |
// 57: 48 83 c3 b8 addq $-0x48, %rbx | |
// 5b: 48 c1 eb 03 shrq $0x3, %rbx | |
// 5f: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 63: 31 c0 xorl %eax, %eax | |
// 65: 5b popq %rbx | |
// 66: 41 5e popq %r14 | |
// 68: 41 5f popq %r15 | |
// 6a: c3 retq | |
// 6b: | |
static const unsigned char _GET_LEN_code_body[108] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x7e, 0xf8, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x85, 0xc0, 0x78, 0x29, 0x48, 0x89, 0xc7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x74, 0x1b, 0x48, 0x89, 0x03, 0x48, 0x83, | |
0xc3, 0x08, 0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, | |
0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x87, | |
0x28, 0x01, 0x00, 0x00, 0x4c, 0x29, 0xf3, 0x48, | |
0x83, 0xc3, 0xb8, 0x48, 0xc1, 0xeb, 0x03, 0x41, | |
0x89, 0x5e, 0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e, | |
0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _GET_LEN_code_holes[5] = { | |
{0x14, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x22, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x42, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x49, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &PyObject_Size+0x0 | |
// 8: &PyLong_FromSsize_t+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _GET_LEN_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_LEN_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_Size, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromSsize_t, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GET_YIELD_FROM_ITER | |
// | |
// /tmp/tmp2mfmnab2/_GET_YIELD_FROM_ITER.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 f3 movq %rsi, %rbx | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 16: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 1b: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_REX_GOTPCRELX PyCoro_Type-0x4 | |
// 22: 74 39 je 0x5d <_JIT_ENTRY+0x5d> | |
// 24: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x2b <_JIT_ENTRY+0x2b> | |
// 0000000000000027: R_X86_64_REX_GOTPCRELX PyGen_Type-0x4 | |
// 2b: 74 3e je 0x6b <_JIT_ENTRY+0x6b> | |
// 2d: 4c 89 e7 movq %r12, %rdi | |
// 30: ff 15 00 00 00 00 callq *(%rip) # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX PyObject_GetIter-0x4 | |
// 36: 48 85 c0 testq %rax, %rax | |
// 39: 74 66 je 0xa1 <_JIT_ENTRY+0xa1> | |
// 3b: 49 89 c5 movq %rax, %r13 | |
// 3e: 49 8b 04 24 movq (%r12), %rax | |
// 42: 85 c0 testl %eax, %eax | |
// 44: 78 12 js 0x58 <_JIT_ENTRY+0x58> | |
// 46: 48 ff c8 decq %rax | |
// 49: 49 89 04 24 movq %rax, (%r12) | |
// 4d: 75 09 jne 0x58 <_JIT_ENTRY+0x58> | |
// 4f: 4c 89 e7 movq %r12, %rdi | |
// 52: ff 15 00 00 00 00 callq *(%rip) # 0x58 <_JIT_ENTRY+0x58> | |
// 0000000000000054: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 58: 4d 89 ec movq %r13, %r12 | |
// 5b: eb 0e jmp 0x6b <_JIT_ENTRY+0x6b> | |
// 5d: 49 8b 06 movq (%r14), %rax | |
// 60: 0f b7 40 30 movzwl 0x30(%rax), %eax | |
// 64: a9 80 01 00 00 testl $0x180, %eax # imm = 0x180 | |
// 69: 74 1c je 0x87 <_JIT_ENTRY+0x87> | |
// 6b: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 6f: 4c 89 f7 movq %r14, %rdi | |
// 72: 48 89 de movq %rbx, %rsi | |
// 75: 4c 89 fa movq %r15, %rdx | |
// 78: 5b popq %rbx | |
// 79: 41 5c popq %r12 | |
// 7b: 41 5d popq %r13 | |
// 7d: 41 5e popq %r14 | |
// 7f: 41 5f popq %r15 | |
// 81: ff 25 00 00 00 00 jmpq *(%rip) # 0x87 <_JIT_ENTRY+0x87> | |
// 0000000000000083: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 87: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x8e <_JIT_ENTRY+0x8e> | |
// 000000000000008a: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 8e: 48 8b 30 movq (%rax), %rsi | |
// 91: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0x98 <_JIT_ENTRY+0x98> | |
// 0000000000000094: R_X86_64_PC32 .L.str.14-0x4 | |
// 98: 4c 89 ff movq %r15, %rdi | |
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1> | |
// 000000000000009d: R_X86_64_GOTPCRELX _PyErr_SetString-0x4 | |
// a1: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xa8 <_JIT_ENTRY+0xa8> | |
// 00000000000000a4: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// a8: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// af: 4c 29 f3 subq %r14, %rbx | |
// b2: 48 83 c3 b8 addq $-0x48, %rbx | |
// b6: 48 c1 eb 03 shrq $0x3, %rbx | |
// ba: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// be: 31 c0 xorl %eax, %eax | |
// c0: 5b popq %rbx | |
// c1: 41 5c popq %r12 | |
// c3: 41 5d popq %r13 | |
// c5: 41 5e popq %r14 | |
// c7: 41 5f popq %r15 | |
// c9: c3 retq | |
// ca: | |
static const unsigned char _GET_YIELD_FROM_ITER_code_body[203] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf8, 0x49, 0x8b, | |
0x44, 0x24, 0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x74, 0x39, 0x48, 0x3b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x74, 0x3e, 0x4c, 0x89, 0xe7, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, | |
0xc0, 0x74, 0x66, 0x49, 0x89, 0xc5, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4d, 0x89, 0xec, 0xeb, 0x0e, 0x49, 0x8b, 0x06, | |
0x0f, 0xb7, 0x40, 0x30, 0xa9, 0x80, 0x01, 0x00, | |
0x00, 0x74, 0x1c, 0x4c, 0x89, 0x63, 0xf8, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x30, 0x48, 0x8d, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x89, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, | |
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, | |
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x31, 0xc0, | |
0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, | |
0x5f, 0xc3, | |
}; | |
static const Hole _GET_YIELD_FROM_ITER_code_holes[10] = { | |
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x27, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x54, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0x83, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
{0x8a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x6c}, | |
{0x94, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x74}, | |
{0xa4, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x7c}, | |
}; | |
// 0: "cannot 'yield from' a coroutine object in a non-coroutine generator\x00" | |
// 44: 00 00 00 00 | |
// 48: &PyCoro_Type+0x0 | |
// 50: &PyGen_Type+0x0 | |
// 58: &PyObject_GetIter+0x0 | |
// 60: &_Py_Dealloc+0x0 | |
// 68: CONTINUE | |
// 70: &PyExc_TypeError+0x0 | |
// 78: &_PyErr_SetString+0x0 | |
// 80: EXECUTOR | |
static const unsigned char _GET_YIELD_FROM_ITER_data_body[137] = { | |
0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x20, 0x27, | |
0x79, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x66, 0x72, | |
0x6f, 0x6d, 0x27, 0x20, 0x61, 0x20, 0x63, 0x6f, | |
0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x65, 0x20, | |
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x69, | |
0x6e, 0x20, 0x61, 0x20, 0x6e, 0x6f, 0x6e, 0x2d, | |
0x63, 0x6f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, | |
0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, | |
0x74, 0x6f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GET_YIELD_FROM_ITER_data_holes[9] = { | |
{0x48, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyCoro_Type, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyGen_Type, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetIter, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0x78, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_SetString, 0x0}, | |
{0x80, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_BOTH_FLOAT | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_BOTH_FLOAT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyFloat_Type-0x4 | |
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22> | |
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 15: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyFloat_Type-0x4 | |
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65> | |
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 28: 48 c1 e1 04 shlq $0x4, %rcx | |
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 3b: 44 8b 01 movl (%rcx), %r8d | |
// 3e: 41 ff c0 incl %r8d | |
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58> | |
// 43: 44 89 01 movl %r8d, (%rcx) | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 c1 e1 04 shlq $0x4, %rcx | |
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 63: ff e0 jmpq *%rax | |
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 65: | |
static const unsigned char _GUARD_BOTH_FLOAT_code_body[102] = { | |
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, | |
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, | |
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, | |
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, | |
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x8b, 0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_BOTH_FLOAT_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyFloat_Type+0x0 | |
// 8: TARGET | |
// 10: EXECUTOR | |
static const unsigned char _GUARD_BOTH_FLOAT_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_BOTH_FLOAT_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyFloat_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_BOTH_INT | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_BOTH_INT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4 | |
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22> | |
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 15: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyLong_Type-0x4 | |
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65> | |
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 28: 48 c1 e1 04 shlq $0x4, %rcx | |
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 3b: 44 8b 01 movl (%rcx), %r8d | |
// 3e: 41 ff c0 incl %r8d | |
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58> | |
// 43: 44 89 01 movl %r8d, (%rcx) | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 c1 e1 04 shlq $0x4, %rcx | |
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 63: ff e0 jmpq *%rax | |
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 65: | |
static const unsigned char _GUARD_BOTH_INT_code_body[102] = { | |
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, | |
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, | |
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, | |
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, | |
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x8b, 0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_BOTH_INT_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyLong_Type+0x0 | |
// 8: TARGET | |
// 10: EXECUTOR | |
static const unsigned char _GUARD_BOTH_INT_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_BOTH_INT_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_BOTH_UNICODE | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_BOTH_UNICODE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f0 movq -0x10(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// f: 75 11 jne 0x22 <_JIT_ENTRY+0x22> | |
// 11: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 15: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 19: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_REX_GOTPCRELX PyUnicode_Type-0x4 | |
// 20: 74 43 je 0x65 <_JIT_ENTRY+0x65> | |
// 22: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 28: 48 c1 e1 04 shlq $0x4, %rcx | |
// 2c: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 33: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 3b: 44 8b 01 movl (%rcx), %r8d | |
// 3e: 41 ff c0 incl %r8d | |
// 41: 74 15 je 0x58 <_JIT_ENTRY+0x58> | |
// 43: 44 89 01 movl %r8d, (%rcx) | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 c1 e1 04 shlq $0x4, %rcx | |
// 50: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 58: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 5f: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 63: ff e0 jmpq *%rax | |
// 65: ff 25 00 00 00 00 jmpq *(%rip) # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 65: | |
static const unsigned char _GUARD_BOTH_UNICODE_code_body[102] = { | |
0x48, 0x8b, 0x46, 0xf0, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x11, 0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, | |
0x08, 0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x74, 0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, | |
0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, | |
0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, | |
0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x8b, 0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_BOTH_UNICODE_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x24, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x2f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &PyUnicode_Type+0x0 | |
// 8: TARGET | |
// 10: EXECUTOR | |
static const unsigned char _GUARD_BOTH_UNICODE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_BOTH_UNICODE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyUnicode_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_BUILTINS_VERSION | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_BUILTINS_VERSION.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 47 20 movq 0x20(%rdi), %rax | |
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx | |
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4 | |
// f: 75 16 jne 0x27 <_JIT_ENTRY+0x27> | |
// 11: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 15: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_GOTPCREL _JIT_OPERAND-0x4 | |
// 1c: 39 48 0c cmpl %ecx, 0xc(%rax) | |
// 1f: 75 06 jne 0x27 <_JIT_ENTRY+0x27> | |
// 21: ff 25 00 00 00 00 jmpq *(%rip) # 0x27 <_JIT_ENTRY+0x27> | |
// 0000000000000023: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e> | |
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 35: 48 29 fe subq %rdi, %rsi | |
// 38: 48 83 c6 b8 addq $-0x48, %rsi | |
// 3c: 48 c1 ee 03 shrq $0x3, %rsi | |
// 40: 89 77 40 movl %esi, 0x40(%rdi) | |
// 43: 48 8b 07 movq (%rdi), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: c3 retq | |
// 57: | |
static const unsigned char _GUARD_BUILTINS_VERSION_code_body[88] = { | |
0x48, 0x8b, 0x47, 0x20, 0x48, 0x8b, 0x48, 0x08, | |
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x16, 0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x39, 0x48, 0x0c, 0x75, | |
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, | |
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, | |
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _GUARD_BUILTINS_VERSION_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x18, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4}, | |
{0x23, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &PyDict_Type+0x0 | |
// 8: OPERAND | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
// 20: TARGET | |
static const unsigned char _GUARD_BUILTINS_VERSION_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_BUILTINS_VERSION_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_DORV_VALUES | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_DORV_VALUES.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: f6 40 e8 01 testb $0x1, -0x18(%rax) | |
// 8: 75 30 jne 0x3a <_JIT_ENTRY+0x3a> | |
// a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x11 <_JIT_ENTRY+0x11> | |
// 000000000000000d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 11: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 18: 48 29 fe subq %rdi, %rsi | |
// 1b: 48 83 c6 b8 addq $-0x48, %rsi | |
// 1f: 48 c1 ee 03 shrq $0x3, %rsi | |
// 23: 89 77 40 movl %esi, 0x40(%rdi) | |
// 26: 48 8b 07 movq (%rdi), %rax | |
// 29: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x2f <_JIT_ENTRY+0x2f> | |
// 000000000000002b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 2f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 33: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 39: c3 retq | |
// 3a: ff 25 00 00 00 00 jmpq *(%rip) # 0x40 <_JIT_ENTRY+0x40> | |
// 000000000000003c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3a: | |
static const unsigned char _GUARD_DORV_VALUES_code_body[59] = { | |
0x48, 0x8b, 0x46, 0xf8, 0xf6, 0x40, 0xe8, 0x01, | |
0x75, 0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, | |
0x48, 0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, | |
0xc1, 0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, | |
0x07, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, | |
0x00, 0xc3, | |
}; | |
static const Hole _GUARD_DORV_VALUES_code_holes[3] = { | |
{0xd, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x2b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: EXECUTOR | |
// 8: TARGET | |
static const unsigned char _GUARD_DORV_VALUES_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_DORV_VALUES_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_DORV_VALUES_INST_ATTR_FROM_DICT.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 12: f6 47 e8 01 testb $0x1, -0x18(%rdi) | |
// 16: 75 0e jne 0x26 <_JIT_ENTRY+0x26> | |
// 18: 48 8d 77 e8 leaq -0x18(%rdi), %rsi | |
// 1c: ff 15 00 00 00 00 callq *(%rip) # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_GOTPCRELX _PyObject_MakeInstanceAttributesFromDict-0x4 | |
// 22: 84 c0 testb %al, %al | |
// 24: 74 14 je 0x3a <_JIT_ENTRY+0x3a> | |
// 26: 4c 89 f7 movq %r14, %rdi | |
// 29: 48 89 de movq %rbx, %rsi | |
// 2c: 4c 89 fa movq %r15, %rdx | |
// 2f: 5b popq %rbx | |
// 30: 41 5e popq %r14 | |
// 32: 41 5f popq %r15 | |
// 34: ff 25 00 00 00 00 jmpq *(%rip) # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3a: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x41 <_JIT_ENTRY+0x41> | |
// 000000000000003d: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 41: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 48: 4c 29 f3 subq %r14, %rbx | |
// 4b: 48 83 c3 b8 addq $-0x48, %rbx | |
// 4f: 48 c1 eb 03 shrq $0x3, %rbx | |
// 53: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 57: 49 8b 06 movq (%r14), %rax | |
// 5a: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x60 <_JIT_ENTRY+0x60> | |
// 000000000000005c: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 60: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 64: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 6a: 5b popq %rbx | |
// 6b: 41 5e popq %r14 | |
// 6d: 41 5f popq %r15 | |
// 6f: c3 retq | |
// 70: | |
static const unsigned char _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_code_body[113] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x7e, 0xf8, 0xf6, 0x47, 0xe8, 0x01, 0x75, 0x0e, | |
0x48, 0x8d, 0x77, 0xe8, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x84, 0xc0, 0x74, 0x14, 0x4c, 0x89, | |
0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, 0x5b, | |
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, | |
0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, | |
0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49, | |
0x8b, 0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, | |
0x00, 0x00, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_code_holes[5] = { | |
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x5c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_PyObject_MakeInstanceAttributesFromDict+0x0 | |
// 8: CONTINUE | |
// 10: EXECUTOR | |
// 18: TARGET | |
static const unsigned char _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_DORV_VALUES_INST_ATTR_FROM_DICT_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_MakeInstanceAttributesFromDict, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_GLOBALS_VERSION | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_GLOBALS_VERSION.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 47 18 movq 0x18(%rdi), %rax | |
// 4: 48 8b 48 08 movq 0x8(%rax), %rcx | |
// 8: 48 3b 0d 00 00 00 00 cmpq (%rip), %rcx # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyDict_Type-0x4 | |
// f: 75 16 jne 0x27 <_JIT_ENTRY+0x27> | |
// 11: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 15: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_GOTPCREL _JIT_OPERAND-0x4 | |
// 1c: 39 48 0c cmpl %ecx, 0xc(%rax) | |
// 1f: 75 06 jne 0x27 <_JIT_ENTRY+0x27> | |
// 21: ff 25 00 00 00 00 jmpq *(%rip) # 0x27 <_JIT_ENTRY+0x27> | |
// 0000000000000023: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 27: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2e <_JIT_ENTRY+0x2e> | |
// 000000000000002a: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2e: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 35: 48 29 fe subq %rdi, %rsi | |
// 38: 48 83 c6 b8 addq $-0x48, %rsi | |
// 3c: 48 c1 ee 03 shrq $0x3, %rsi | |
// 40: 89 77 40 movl %esi, 0x40(%rdi) | |
// 43: 48 8b 07 movq (%rdi), %rax | |
// 46: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4c: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 50: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 56: c3 retq | |
// 57: | |
static const unsigned char _GUARD_GLOBALS_VERSION_code_body[88] = { | |
0x48, 0x8b, 0x47, 0x18, 0x48, 0x8b, 0x48, 0x08, | |
0x48, 0x3b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x16, 0x48, 0x8b, 0x40, 0x20, 0x0f, 0xb7, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x39, 0x48, 0x0c, 0x75, | |
0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x89, | |
0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, | |
0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, | |
0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, | |
0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _GUARD_GLOBALS_VERSION_code_holes[6] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x18, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, 0x4}, | |
{0x23, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x2a, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: &PyDict_Type+0x0 | |
// 8: OPERAND | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
// 20: TARGET | |
static const unsigned char _GUARD_GLOBALS_VERSION_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_GLOBALS_VERSION_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyDict_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_IS_FALSE_POP | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_IS_FALSE_POP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 83 c6 f8 addq $-0x8, %rsi | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// f: 74 43 je 0x54 <_JIT_ENTRY+0x54> | |
// 11: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x17 <_JIT_ENTRY+0x17> | |
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 17: 48 c1 e1 04 shlq $0x4, %rcx | |
// 1b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 22: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 2a: 44 8b 01 movl (%rcx), %r8d | |
// 2d: 41 ff c0 incl %r8d | |
// 30: 74 15 je 0x47 <_JIT_ENTRY+0x47> | |
// 32: 44 89 01 movl %r8d, (%rcx) | |
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3b: 48 c1 e1 04 shlq $0x4, %rcx | |
// 3f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 47: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 4e: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 52: ff e0 jmpq *%rax | |
// 54: ff 25 00 00 00 00 jmpq *(%rip) # 0x5a <_JIT_ENTRY+0x5a> | |
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 54: | |
static const unsigned char _GUARD_IS_FALSE_POP_code_body[85] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0xc6, 0xf8, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, | |
0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0, | |
0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, | |
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b, | |
0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_IS_FALSE_POP_code_holes[5] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &_Py_FalseStruct+0x0 | |
// 8: TARGET | |
// 10: EXECUTOR | |
static const unsigned char _GUARD_IS_FALSE_POP_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_IS_FALSE_POP_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_IS_NONE_POP | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_IS_NONE_POP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 48 89 d3 movq %rdx, %rbx | |
// 8: 49 89 f6 movq %rsi, %r14 | |
// b: 49 89 ff movq %rdi, %r15 | |
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 12: 49 83 c6 f8 addq $-0x8, %r14 | |
// 16: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4 | |
// 1d: 74 63 je 0x82 <_JIT_ENTRY+0x82> | |
// 1f: 48 8b 07 movq (%rdi), %rax | |
// 22: 85 c0 testl %eax, %eax | |
// 24: 78 0e js 0x34 <_JIT_ENTRY+0x34> | |
// 26: 48 ff c8 decq %rax | |
// 29: 48 89 07 movq %rax, (%rdi) | |
// 2c: 75 06 jne 0x34 <_JIT_ENTRY+0x34> | |
// 2e: ff 15 00 00 00 00 callq *(%rip) # 0x34 <_JIT_ENTRY+0x34> | |
// 0000000000000030: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 34: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3a: 48 c1 e1 04 shlq $0x4, %rcx | |
// 3e: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 45: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 4d: 8b 11 movl (%rcx), %edx | |
// 4f: ff c2 incl %edx | |
// 51: 74 14 je 0x67 <_JIT_ENTRY+0x67> | |
// 53: 89 11 movl %edx, (%rcx) | |
// 55: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x5b <_JIT_ENTRY+0x5b> | |
// 0000000000000057: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 5b: 48 c1 e1 04 shlq $0x4, %rcx | |
// 5f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 67: 48 89 83 28 01 00 00 movq %rax, 0x128(%rbx) | |
// 6e: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 72: 4c 89 ff movq %r15, %rdi | |
// 75: 4c 89 f6 movq %r14, %rsi | |
// 78: 48 89 da movq %rbx, %rdx | |
// 7b: 5b popq %rbx | |
// 7c: 41 5e popq %r14 | |
// 7e: 41 5f popq %r15 | |
// 80: ff e0 jmpq *%rax | |
// 82: 4c 89 ff movq %r15, %rdi | |
// 85: 4c 89 f6 movq %r14, %rsi | |
// 88: 48 89 da movq %rbx, %rdx | |
// 8b: 5b popq %rbx | |
// 8c: 41 5e popq %r14 | |
// 8e: 41 5f popq %r15 | |
// 90: ff 25 00 00 00 00 jmpq *(%rip) # 0x96 <_JIT_ENTRY+0x96> | |
// 0000000000000092: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 90: | |
static const unsigned char _GUARD_IS_NONE_POP_code_body[145] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x48, 0x89, 0xd3, | |
0x49, 0x89, 0xf6, 0x49, 0x89, 0xff, 0x48, 0x8b, | |
0x7e, 0xf8, 0x49, 0x83, 0xc6, 0xf8, 0x48, 0x3b, | |
0x3d, 0x00, 0x00, 0x00, 0x00, 0x74, 0x63, 0x48, | |
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, | |
0x08, 0x80, 0x00, 0x00, 0x00, 0x8b, 0x11, 0xff, | |
0xc2, 0x74, 0x14, 0x89, 0x11, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, | |
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x83, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b, | |
0x41, 0x70, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, | |
0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e, 0x41, 0x5f, | |
0xff, 0xe0, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, | |
0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _GUARD_IS_NONE_POP_code_holes[6] = { | |
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x30, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x41, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x57, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &_Py_NoneStruct+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: TARGET | |
// 18: EXECUTOR | |
static const unsigned char _GUARD_IS_NONE_POP_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_IS_NONE_POP_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_IS_NOT_NONE_POP | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_IS_NOT_NONE_POP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 48 89 d3 movq %rdx, %rbx | |
// 8: 49 89 f6 movq %rsi, %r14 | |
// b: 49 89 ff movq %rdi, %r15 | |
// e: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 12: 49 83 c6 f8 addq $-0x8, %r14 | |
// 16: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4 | |
// 1d: 74 29 je 0x48 <_JIT_ENTRY+0x48> | |
// 1f: 48 8b 07 movq (%rdi), %rax | |
// 22: 85 c0 testl %eax, %eax | |
// 24: 78 0e js 0x34 <_JIT_ENTRY+0x34> | |
// 26: 48 ff c8 decq %rax | |
// 29: 48 89 07 movq %rax, (%rdi) | |
// 2c: 75 06 jne 0x34 <_JIT_ENTRY+0x34> | |
// 2e: ff 15 00 00 00 00 callq *(%rip) # 0x34 <_JIT_ENTRY+0x34> | |
// 0000000000000030: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 34: 4c 89 ff movq %r15, %rdi | |
// 37: 4c 89 f6 movq %r14, %rsi | |
// 3a: 48 89 da movq %rbx, %rdx | |
// 3d: 5b popq %rbx | |
// 3e: 41 5e popq %r14 | |
// 40: 41 5f popq %r15 | |
// 42: ff 25 00 00 00 00 jmpq *(%rip) # 0x48 <_JIT_ENTRY+0x48> | |
// 0000000000000044: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 48: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x4e <_JIT_ENTRY+0x4e> | |
// 000000000000004a: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 4e: 48 c1 e1 04 shlq $0x4, %rcx | |
// 52: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x59 <_JIT_ENTRY+0x59> | |
// 0000000000000055: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 59: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 61: 8b 11 movl (%rcx), %edx | |
// 63: ff c2 incl %edx | |
// 65: 74 14 je 0x7b <_JIT_ENTRY+0x7b> | |
// 67: 89 11 movl %edx, (%rcx) | |
// 69: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x6f <_JIT_ENTRY+0x6f> | |
// 000000000000006b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 6f: 48 c1 e1 04 shlq $0x4, %rcx | |
// 73: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 7b: 48 89 83 28 01 00 00 movq %rax, 0x128(%rbx) | |
// 82: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 86: 4c 89 ff movq %r15, %rdi | |
// 89: 4c 89 f6 movq %r14, %rsi | |
// 8c: 48 89 da movq %rbx, %rdx | |
// 8f: 5b popq %rbx | |
// 90: 41 5e popq %r14 | |
// 92: 41 5f popq %r15 | |
// 94: ff e0 jmpq *%rax | |
// 96: | |
static const unsigned char _GUARD_IS_NOT_NONE_POP_code_body[151] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x48, 0x89, 0xd3, | |
0x49, 0x89, 0xf6, 0x49, 0x89, 0xff, 0x48, 0x8b, | |
0x7e, 0xf8, 0x49, 0x83, 0xc6, 0xf8, 0x48, 0x3b, | |
0x3d, 0x00, 0x00, 0x00, 0x00, 0x74, 0x29, 0x48, | |
0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, | |
0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x4c, | |
0x89, 0xf6, 0x48, 0x89, 0xda, 0x5b, 0x41, 0x5e, | |
0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, | |
0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, | |
0x00, 0x8b, 0x11, 0xff, 0xc2, 0x74, 0x14, 0x89, | |
0x11, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x8c, 0x08, 0x80, | |
0x00, 0x00, 0x00, 0x48, 0x89, 0x83, 0x28, 0x01, | |
0x00, 0x00, 0x48, 0x8b, 0x41, 0x70, 0x4c, 0x89, | |
0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89, 0xda, 0x5b, | |
0x41, 0x5e, 0x41, 0x5f, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_IS_NOT_NONE_POP_code_holes[7] = { | |
{0x19, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x30, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x44, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x4a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x55, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0x6b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_Py_NoneStruct+0x0 | |
// 8: &_Py_Dealloc+0x0 | |
// 10: CONTINUE | |
// 18: TARGET | |
// 20: EXECUTOR | |
static const unsigned char _GUARD_IS_NOT_NONE_POP_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_IS_NOT_NONE_POP_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_IS_TRUE_POP | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_IS_TRUE_POP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 83 c6 f8 addq $-0x8, %rsi | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// f: 74 43 je 0x54 <_JIT_ENTRY+0x54> | |
// 11: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x17 <_JIT_ENTRY+0x17> | |
// 0000000000000013: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 17: 48 c1 e1 04 shlq $0x4, %rcx | |
// 1b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 22: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 2a: 44 8b 01 movl (%rcx), %r8d | |
// 2d: 41 ff c0 incl %r8d | |
// 30: 74 15 je 0x47 <_JIT_ENTRY+0x47> | |
// 32: 44 89 01 movl %r8d, (%rcx) | |
// 35: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 3b: 48 c1 e1 04 shlq $0x4, %rcx | |
// 3f: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 47: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 4e: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 52: ff e0 jmpq *%rax | |
// 54: ff 25 00 00 00 00 jmpq *(%rip) # 0x5a <_JIT_ENTRY+0x5a> | |
// 0000000000000056: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 54: | |
static const unsigned char _GUARD_IS_TRUE_POP_code_body[85] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0xc6, 0xf8, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x43, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0xc1, 0xe1, 0x04, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, | |
0x00, 0x00, 0x44, 0x8b, 0x01, 0x41, 0xff, 0xc0, | |
0x74, 0x15, 0x44, 0x89, 0x01, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, | |
0x8b, 0x8c, 0x08, 0x80, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x8b, | |
0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_IS_TRUE_POP_code_holes[5] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x13, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x1e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: &_Py_TrueStruct+0x0 | |
// 8: TARGET | |
// 10: EXECUTOR | |
static const unsigned char _GUARD_IS_TRUE_POP_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_IS_TRUE_POP_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _GUARD_KEYS_VERSION | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_KEYS_VERSION.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 8b 80 70 03 00 00 movq 0x370(%rax), %rax | |
// f: 8b 40 0c movl 0xc(%rax), %eax | |
// 12: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4 | |
// 18: 75 06 jne 0x20 <_JIT_ENTRY+0x20> | |
// 1a: ff 25 00 00 00 00 jmpq *(%rip) # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 20: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x27 <_JIT_ENTRY+0x27> | |
// 0000000000000023: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 27: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 2e: 48 29 fe subq %rdi, %rsi | |
// 31: 48 83 c6 b8 addq $-0x48, %rsi | |
// 35: 48 c1 ee 03 shrq $0x3, %rsi | |
// 39: 89 77 40 movl %esi, 0x40(%rdi) | |
// 3c: 48 8b 07 movq (%rdi), %rax | |
// 3f: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 45: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 49: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 4f: c3 retq | |
// 50: | |
static const unsigned char _GUARD_KEYS_VERSION_code_body[81] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x8b, 0x80, 0x70, 0x03, 0x00, 0x00, 0x8b, | |
0x40, 0x0c, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x75, 0x06, 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, 0x29, | |
0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, 0xee, | |
0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, 0x8b, | |
0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x04, | |
0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _GUARD_KEYS_VERSION_code_holes[5] = { | |
{0x14, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x23, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: CONTINUE | |
// 10: EXECUTOR | |
// 18: TARGET | |
static const unsigned char _GUARD_KEYS_VERSION_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_KEYS_VERSION_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_NOT_EXHAUSTED_LIST | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_LIST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 8: 48 85 c9 testq %rcx, %rcx | |
// b: 74 10 je 0x1d <_JIT_ENTRY+0x1d> | |
// d: 48 8b 40 10 movq 0x10(%rax), %rax | |
// 11: 48 3b 41 10 cmpq 0x10(%rcx), %rax | |
// 15: 73 06 jae 0x1d <_JIT_ENTRY+0x1d> | |
// 17: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 24: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 2b: 48 29 fe subq %rdi, %rsi | |
// 2e: 48 83 c6 b8 addq $-0x48, %rsi | |
// 32: 48 c1 ee 03 shrq $0x3, %rsi | |
// 36: 89 77 40 movl %esi, 0x40(%rdi) | |
// 39: 48 8b 07 movq (%rdi), %rax | |
// 3c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x42 <_JIT_ENTRY+0x42> | |
// 000000000000003e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 42: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 46: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 4c: c3 retq | |
// 4d: | |
static const unsigned char _GUARD_NOT_EXHAUSTED_LIST_code_body[78] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x18, | |
0x48, 0x85, 0xc9, 0x74, 0x10, 0x48, 0x8b, 0x40, | |
0x10, 0x48, 0x3b, 0x41, 0x10, 0x73, 0x06, 0xff, | |
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, | |
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, | |
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, | |
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_LIST_code_holes[4] = { | |
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: CONTINUE | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _GUARD_NOT_EXHAUSTED_LIST_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_LIST_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_NOT_EXHAUSTED_RANGE | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_RANGE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 83 78 20 00 cmpq $0x0, 0x20(%rax) | |
// 9: 7e 06 jle 0x11 <_JIT_ENTRY+0x11> | |
// b: ff 25 00 00 00 00 jmpq *(%rip) # 0x11 <_JIT_ENTRY+0x11> | |
// 000000000000000d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1f: 48 29 fe subq %rdi, %rsi | |
// 22: 48 83 c6 b8 addq $-0x48, %rsi | |
// 26: 48 c1 ee 03 shrq $0x3, %rsi | |
// 2a: 89 77 40 movl %esi, 0x40(%rdi) | |
// 2d: 48 8b 07 movq (%rdi), %rax | |
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 40: c3 retq | |
// 41: | |
static const unsigned char _GUARD_NOT_EXHAUSTED_RANGE_code_body[66] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x83, 0x78, 0x20, | |
0x00, 0x7e, 0x06, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, | |
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, | |
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, | |
0xc3, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_RANGE_code_holes[4] = { | |
{0xd, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: CONTINUE | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _GUARD_NOT_EXHAUSTED_RANGE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_RANGE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_NOT_EXHAUSTED_TUPLE | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_NOT_EXHAUSTED_TUPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 8: 48 85 c9 testq %rcx, %rcx | |
// b: 74 10 je 0x1d <_JIT_ENTRY+0x1d> | |
// d: 48 8b 40 10 movq 0x10(%rax), %rax | |
// 11: 48 3b 41 10 cmpq 0x10(%rcx), %rax | |
// 15: 7d 06 jge 0x1d <_JIT_ENTRY+0x1d> | |
// 17: ff 25 00 00 00 00 jmpq *(%rip) # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1d: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x24 <_JIT_ENTRY+0x24> | |
// 0000000000000020: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 24: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 2b: 48 29 fe subq %rdi, %rsi | |
// 2e: 48 83 c6 b8 addq $-0x48, %rsi | |
// 32: 48 c1 ee 03 shrq $0x3, %rsi | |
// 36: 89 77 40 movl %esi, 0x40(%rdi) | |
// 39: 48 8b 07 movq (%rdi), %rax | |
// 3c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x42 <_JIT_ENTRY+0x42> | |
// 000000000000003e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 42: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 46: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 4c: c3 retq | |
// 4d: | |
static const unsigned char _GUARD_NOT_EXHAUSTED_TUPLE_code_body[78] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x18, | |
0x48, 0x85, 0xc9, 0x74, 0x10, 0x48, 0x8b, 0x40, | |
0x10, 0x48, 0x3b, 0x41, 0x10, 0x7d, 0x06, 0xff, | |
0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0x82, 0x28, | |
0x01, 0x00, 0x00, 0x48, 0x29, 0xfe, 0x48, 0x83, | |
0xc6, 0xb8, 0x48, 0xc1, 0xee, 0x03, 0x89, 0x77, | |
0x40, 0x48, 0x8b, 0x07, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x8d, 0x04, 0x48, 0x48, 0x05, | |
0xc8, 0x00, 0x00, 0x00, 0xc3, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_TUPLE_code_holes[4] = { | |
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x20, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x3e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: CONTINUE | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _GUARD_NOT_EXHAUSTED_TUPLE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_NOT_EXHAUSTED_TUPLE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _GUARD_TYPE_VERSION | |
// | |
// /tmp/tmp2mfmnab2/_GUARD_TYPE_VERSION.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 8b 80 80 01 00 00 movl 0x180(%rax), %eax | |
// e: 3b 05 00 00 00 00 cmpl (%rip), %eax # 0x14 <_JIT_ENTRY+0x14> | |
// 0000000000000010: R_X86_64_GOTPCRELX _JIT_OPERAND-0x4 | |
// 14: 75 06 jne 0x1c <_JIT_ENTRY+0x1c> | |
// 16: ff 25 00 00 00 00 jmpq *(%rip) # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1c: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x22 <_JIT_ENTRY+0x22> | |
// 000000000000001e: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 22: 48 c1 e1 04 shlq $0x4, %rcx | |
// 26: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2d <_JIT_ENTRY+0x2d> | |
// 0000000000000029: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2d: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 35: 44 8b 01 movl (%rcx), %r8d | |
// 38: 41 ff c0 incl %r8d | |
// 3b: 74 15 je 0x52 <_JIT_ENTRY+0x52> | |
// 3d: 44 89 01 movl %r8d, (%rcx) | |
// 40: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x46 <_JIT_ENTRY+0x46> | |
// 0000000000000042: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 46: 48 c1 e1 04 shlq $0x4, %rcx | |
// 4a: 48 8b 8c 08 80 00 00 00 movq 0x80(%rax,%rcx), %rcx | |
// 52: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 59: 48 8b 41 70 movq 0x70(%rcx), %rax | |
// 5d: ff e0 jmpq *%rax | |
// 5f: | |
static const unsigned char _GUARD_TYPE_VERSION_code_body[96] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08, | |
0x8b, 0x80, 0x80, 0x01, 0x00, 0x00, 0x3b, 0x05, | |
0x00, 0x00, 0x00, 0x00, 0x75, 0x06, 0xff, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x8b, 0x0d, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0xc1, 0xe1, 0x04, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x8c, | |
0x08, 0x80, 0x00, 0x00, 0x00, 0x44, 0x8b, 0x01, | |
0x41, 0xff, 0xc0, 0x74, 0x15, 0x44, 0x89, 0x01, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0xc1, | |
0xe1, 0x04, 0x48, 0x8b, 0x8c, 0x08, 0x80, 0x00, | |
0x00, 0x00, 0x48, 0x89, 0x82, 0x28, 0x01, 0x00, | |
0x00, 0x48, 0x8b, 0x41, 0x70, 0xff, 0xe0, | |
}; | |
static const Hole _GUARD_TYPE_VERSION_code_holes[6] = { | |
{0x10, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x1e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x29, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x42, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: CONTINUE | |
// 10: TARGET | |
// 18: EXECUTOR | |
static const unsigned char _GUARD_TYPE_VERSION_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _GUARD_TYPE_VERSION_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _INIT_CALL_BOUND_METHOD_EXACT_ARGS | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_BOUND_METHOD_EXACT_ARGS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 f6 movq %rsi, %r14 | |
// e: 49 89 ff movq %rdi, %r15 | |
// 11: 0f b7 2d 00 00 00 00 movzwl (%rip), %ebp # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 18: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE | |
// 1d: 29 e8 subl %ebp, %eax | |
// 1f: 48 98 cltq | |
// 21: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi | |
// 25: 4c 8b 67 18 movq 0x18(%rdi), %r12 | |
// 29: 41 8b 04 24 movl (%r12), %eax | |
// 2d: ff c0 incl %eax | |
// 2f: 74 04 je 0x35 <_JIT_ENTRY+0x35> | |
// 31: 41 89 04 24 movl %eax, (%r12) | |
// 35: 8b 05 00 00 00 00 movl (%rip), %eax # 0x3b <_JIT_ENTRY+0x3b> | |
// 0000000000000037: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 3b: f7 d0 notl %eax | |
// 3d: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 42: 48 98 cltq | |
// 44: 4d 89 24 c6 movq %r12, (%r14,%rax,8) | |
// 48: 4c 8b 6f 10 movq 0x10(%rdi), %r13 | |
// 4c: 41 8b 45 00 movl (%r13), %eax | |
// 50: ff c0 incl %eax | |
// 52: 74 04 je 0x58 <_JIT_ENTRY+0x58> | |
// 54: 41 89 45 00 movl %eax, (%r13) | |
// 58: b8 fe ff ff ff movl $0xfffffffe, %eax # imm = 0xFFFFFFFE | |
// 5d: 29 e8 subl %ebp, %eax | |
// 5f: 48 63 d8 movslq %eax, %rbx | |
// 62: 4d 89 2c de movq %r13, (%r14,%rbx,8) | |
// 66: 48 8b 07 movq (%rdi), %rax | |
// 69: 85 c0 testl %eax, %eax | |
// 6b: 78 16 js 0x83 <_JIT_ENTRY+0x83> | |
// 6d: 48 ff c8 decq %rax | |
// 70: 48 89 07 movq %rax, (%rdi) | |
// 73: 75 0e jne 0x83 <_JIT_ENTRY+0x83> | |
// 75: 48 89 14 24 movq %rdx, (%rsp) | |
// 79: ff 15 00 00 00 00 callq *(%rip) # 0x7f <_JIT_ENTRY+0x7f> | |
// 000000000000007b: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 7f: 48 8b 14 24 movq (%rsp), %rdx | |
// 83: 4d 89 2c de movq %r13, (%r14,%rbx,8) | |
// 87: f7 d5 notl %ebp | |
// 89: 48 63 c5 movslq %ebp, %rax | |
// 8c: 4d 89 24 c6 movq %r12, (%r14,%rax,8) | |
// 90: 4c 89 ff movq %r15, %rdi | |
// 93: 4c 89 f6 movq %r14, %rsi | |
// 96: 48 83 c4 08 addq $0x8, %rsp | |
// 9a: 5b popq %rbx | |
// 9b: 41 5c popq %r12 | |
// 9d: 41 5d popq %r13 | |
// 9f: 41 5e popq %r14 | |
// a1: 41 5f popq %r15 | |
// a3: 5d popq %rbp | |
// a4: ff 25 00 00 00 00 jmpq *(%rip) # 0xaa <_JIT_ENTRY+0xaa> | |
// 00000000000000a6: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// a4: | |
static const unsigned char _INIT_CALL_BOUND_METHOD_EXACT_ARGS_code_body[165] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xf6, 0x49, 0x89, | |
0xff, 0x0f, 0xb7, 0x2d, 0x00, 0x00, 0x00, 0x00, | |
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xe8, 0x48, | |
0x98, 0x48, 0x8b, 0x3c, 0xc6, 0x4c, 0x8b, 0x67, | |
0x18, 0x41, 0x8b, 0x04, 0x24, 0xff, 0xc0, 0x74, | |
0x04, 0x41, 0x89, 0x04, 0x24, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d, 0x00, 0x00, | |
0xff, 0xff, 0x48, 0x98, 0x4d, 0x89, 0x24, 0xc6, | |
0x4c, 0x8b, 0x6f, 0x10, 0x41, 0x8b, 0x45, 0x00, | |
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x45, 0x00, | |
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x29, 0xe8, 0x48, | |
0x63, 0xd8, 0x4d, 0x89, 0x2c, 0xde, 0x48, 0x8b, | |
0x07, 0x85, 0xc0, 0x78, 0x16, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x07, 0x75, 0x0e, 0x48, 0x89, 0x14, | |
0x24, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x14, 0x24, 0x4d, 0x89, 0x2c, 0xde, 0xf7, | |
0xd5, 0x48, 0x63, 0xc5, 0x4d, 0x89, 0x24, 0xc6, | |
0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x83, | |
0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _INIT_CALL_BOUND_METHOD_EXACT_ARGS_code_holes[4] = { | |
{0x14, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x37, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x7b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_Py_Dealloc+0x0 | |
static const unsigned char _INIT_CALL_BOUND_METHOD_EXACT_ARGS_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _INIT_CALL_BOUND_METHOD_EXACT_ARGS_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _INIT_CALL_PY_EXACT_ARGS | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x11 <_JIT_ENTRY+0x11> | |
// 000000000000000d: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 11: 89 c8 movl %ecx, %eax | |
// 13: f7 d0 notl %eax | |
// 15: 48 98 cltq | |
// 17: 41 b8 fe ff ff ff movl $0xfffffffe, %r8d # imm = 0xFFFFFFFE | |
// 1d: 41 29 c8 subl %ecx, %r8d | |
// 20: 4d 63 c0 movslq %r8d, %r8 | |
// 23: 4e 8b 0c c6 movq (%rsi,%r8,8), %r9 | |
// 27: 48 8b 1c c6 movq (%rsi,%rax,8), %rbx | |
// 2b: 4d 8b 59 30 movq 0x30(%r9), %r11 | |
// 2f: 4c 8b 82 08 01 00 00 movq 0x108(%rdx), %r8 | |
// 36: 4d 63 53 4c movslq 0x4c(%r11), %r10 | |
// 3a: 4f 8d 14 d0 leaq (%r8,%r10,8), %r10 | |
// 3e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx) | |
// 45: 4d 89 48 10 movq %r9, 0x10(%r8) | |
// 49: 45 8b 13 movl (%r11), %r10d | |
// 4c: 41 ff c2 incl %r10d | |
// 4f: 48 85 db testq %rbx, %rbx | |
// 52: 0f 84 8a 00 00 00 je 0xe2 <_JIT_ENTRY+0xe2> | |
// 58: 45 85 d2 testl %r10d, %r10d | |
// 5b: 74 03 je 0x60 <_JIT_ENTRY+0x60> | |
// 5d: 45 89 13 movl %r10d, (%r11) | |
// 60: 4d 89 18 movq %r11, (%r8) | |
// 63: 41 0f 10 41 10 movups 0x10(%r9), %xmm0 | |
// 68: 41 0f 11 40 18 movups %xmm0, 0x18(%r8) | |
// 6d: 49 c7 40 28 00 00 00 00 movq $0x0, 0x28(%r8) | |
// 75: 4d 63 53 48 movslq 0x48(%r11), %r10 | |
// 79: 45 89 50 40 movl %r10d, 0x40(%r8) | |
// 7d: 49 c7 40 30 00 00 00 00 movq $0x0, 0x30(%r8) | |
// 85: 49 81 c3 c8 00 00 00 addq $0xc8, %r11 | |
// 8c: 4d 89 58 38 movq %r11, 0x38(%r8) | |
// 90: 66 41 c7 40 44 00 00 movw $0x0, 0x44(%r8) | |
// 97: 41 c6 40 46 00 movb $0x0, 0x46(%r8) | |
// 9c: 8b 1d 00 00 00 00 movl (%rip), %ebx # 0xa2 <_JIT_ENTRY+0xa2> | |
// 000000000000009e: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// a2: 41 89 d9 movl %ebx, %r9d | |
// a5: 41 f7 d1 notl %r9d | |
// a8: 44 0f b7 db movzwl %bx, %r11d | |
// ac: 41 ff c3 incl %r11d | |
// af: 45 85 db testl %r11d, %r11d | |
// b2: 40 0f 9f c5 setg %bpl | |
// b6: 45 39 da cmpl %r11d, %r10d | |
// b9: 0f 8e 78 01 00 00 jle 0x237 <_JIT_ENTRY+0x237> | |
// bf: 4d 89 cf movq %r9, %r15 | |
// c2: 49 81 cf 00 00 ff ff orq $-0x10000, %r15 # imm = 0xFFFF0000 | |
// c9: 4d 01 d7 addq %r10, %r15 | |
// cc: 49 83 ff 04 cmpq $0x4, %r15 | |
// d0: 0f 83 0d 01 00 00 jae 0x1e3 <_JIT_ENTRY+0x1e3> | |
// d6: 44 0f b7 f3 movzwl %bx, %r14d | |
// da: 41 ff c6 incl %r14d | |
// dd: e9 6c 01 00 00 jmp 0x24e <_JIT_ENTRY+0x24e> | |
// e2: 45 85 d2 testl %r10d, %r10d | |
// e5: 74 03 je 0xea <_JIT_ENTRY+0xea> | |
// e7: 45 89 13 movl %r10d, (%r11) | |
// ea: 4d 89 18 movq %r11, (%r8) | |
// ed: 41 0f 10 41 10 movups 0x10(%r9), %xmm0 | |
// f2: 41 0f 11 40 18 movups %xmm0, 0x18(%r8) | |
// f7: 49 c7 40 28 00 00 00 00 movq $0x0, 0x28(%r8) | |
// ff: 4d 63 4b 48 movslq 0x48(%r11), %r9 | |
// 103: 45 89 48 40 movl %r9d, 0x40(%r8) | |
// 107: 49 c7 40 30 00 00 00 00 movq $0x0, 0x30(%r8) | |
// 10f: 49 81 c3 c8 00 00 00 addq $0xc8, %r11 | |
// 116: 4d 89 58 38 movq %r11, 0x38(%r8) | |
// 11a: 66 41 c7 40 44 00 00 movw $0x0, 0x44(%r8) | |
// 121: 41 c6 40 46 00 movb $0x0, 0x46(%r8) | |
// 126: 4c 8b 15 00 00 00 00 movq (%rip), %r10 # 0x12d <_JIT_ENTRY+0x12d> | |
// 0000000000000129: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 12d: 45 0f b7 da movzwl %r10w, %r11d | |
// 131: 45 85 db testl %r11d, %r11d | |
// 134: 40 0f 9f c5 setg %bpl | |
// 138: 45 39 d9 cmpl %r11d, %r9d | |
// 13b: 0f 8e 88 00 00 00 jle 0x1c9 <_JIT_ENTRY+0x1c9> | |
// 141: 44 0f b7 15 00 00 00 00 movzwl (%rip), %r10d # 0x149 <_JIT_ENTRY+0x149> | |
// 0000000000000145: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 149: 4c 89 cb movq %r9, %rbx | |
// 14c: 4c 29 d3 subq %r10, %rbx | |
// 14f: 48 83 fb 04 cmpq $0x4, %rbx | |
// 153: 0f 82 dc 01 00 00 jb 0x335 <_JIT_ENTRY+0x335> | |
// 159: 49 89 de movq %rbx, %r14 | |
// 15c: 49 83 e6 fc andq $-0x4, %r14 | |
// 160: 44 0f b7 1d 00 00 00 00 movzwl (%rip), %r11d # 0x168 <_JIT_ENTRY+0x168> | |
// 0000000000000164: R_X86_64_GOTPCREL _JIT_OPARG-0x4 | |
// 168: 4f 8d 14 1e leaq (%r14,%r11), %r10 | |
// 16c: 4f 8d 1c d8 leaq (%r8,%r11,8), %r11 | |
// 170: 49 83 c3 58 addq $0x58, %r11 | |
// 174: 45 31 ff xorl %r15d, %r15d | |
// 177: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 180: 43 0f 11 44 fb f0 movups %xmm0, -0x10(%r11,%r15,8) | |
// 186: 43 0f 11 04 fb movups %xmm0, (%r11,%r15,8) | |
// 18b: 49 83 c7 04 addq $0x4, %r15 | |
// 18f: 4d 39 fe cmpq %r15, %r14 | |
// 192: 75 ec jne 0x180 <_JIT_ENTRY+0x180> | |
// 194: 4c 8b 3d 00 00 00 00 movq (%rip), %r15 # 0x19b <_JIT_ENTRY+0x19b> | |
// 0000000000000197: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 19b: 45 0f b7 df movzwl %r15w, %r11d | |
// 19f: 45 85 db testl %r11d, %r11d | |
// 1a2: 40 0f 9f c5 setg %bpl | |
// 1a6: 4c 39 f3 cmpq %r14, %rbx | |
// 1a9: 0f 85 86 01 00 00 jne 0x335 <_JIT_ENTRY+0x335> | |
// 1af: 45 0f b7 cf movzwl %r15w, %r9d | |
// 1b3: 49 f7 d9 negq %r9 | |
// 1b6: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax | |
// 1ba: 40 f6 c5 01 testb $0x1, %bpl | |
// 1be: 0f 85 c9 00 00 00 jne 0x28d <_JIT_ENTRY+0x28d> | |
// 1c4: e9 f0 01 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 1c9: 45 0f b7 ca movzwl %r10w, %r9d | |
// 1cd: 49 f7 d9 negq %r9 | |
// 1d0: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax | |
// 1d4: 40 f6 c5 01 testb $0x1, %bpl | |
// 1d8: 0f 85 af 00 00 00 jne 0x28d <_JIT_ENTRY+0x28d> | |
// 1de: e9 d6 01 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 1e3: 4d 89 fc movq %r15, %r12 | |
// 1e6: 49 83 e4 fc andq $-0x4, %r12 | |
// 1ea: 4c 8b 1d 00 00 00 00 movq (%rip), %r11 # 0x1f1 <_JIT_ENTRY+0x1f1> | |
// 00000000000001ed: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 1f1: 45 0f b7 f3 movzwl %r11w, %r14d | |
// 1f5: 41 ff c6 incl %r14d | |
// 1f8: 4d 01 e6 addq %r12, %r14 | |
// 1fb: 45 0f b7 db movzwl %r11w, %r11d | |
// 1ff: 4f 8d 1c d8 leaq (%r8,%r11,8), %r11 | |
// 203: 49 83 c3 60 addq $0x60, %r11 | |
// 207: 45 31 ed xorl %r13d, %r13d | |
// 20a: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 20d: 0f 1f 00 nopl (%rax) | |
// 210: 43 0f 11 44 eb f0 movups %xmm0, -0x10(%r11,%r13,8) | |
// 216: 43 0f 11 04 eb movups %xmm0, (%r11,%r13,8) | |
// 21b: 49 83 c5 04 addq $0x4, %r13 | |
// 21f: 4d 39 ec cmpq %r13, %r12 | |
// 222: 75 ec jne 0x210 <_JIT_ENTRY+0x210> | |
// 224: 44 0f b7 db movzwl %bx, %r11d | |
// 228: 41 ff c3 incl %r11d | |
// 22b: 45 85 db testl %r11d, %r11d | |
// 22e: 40 0f 9f c5 setg %bpl | |
// 232: 4d 39 e7 cmpq %r12, %r15 | |
// 235: 75 17 jne 0x24e <_JIT_ENTRY+0x24e> | |
// 237: 49 81 c9 00 00 ff ff orq $-0x10000, %r9 # imm = 0xFFFF0000 | |
// 23e: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax | |
// 242: 40 f6 c5 01 testb $0x1, %bpl | |
// 246: 0f 84 6d 01 00 00 je 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 24c: eb 3f jmp 0x28d <_JIT_ENTRY+0x28d> | |
// 24e: 49 81 c9 00 00 ff ff orq $-0x10000, %r9 # imm = 0xFFFF0000 | |
// 255: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 260: 4b c7 44 f0 48 00 00 00 00 movq $0x0, 0x48(%r8,%r14,8) | |
// 269: 49 ff c6 incq %r14 | |
// 26c: 44 0f b7 db movzwl %bx, %r11d | |
// 270: 41 ff c3 incl %r11d | |
// 273: 45 85 db testl %r11d, %r11d | |
// 276: 40 0f 9f c5 setg %bpl | |
// 27a: 4d 39 f2 cmpq %r14, %r10 | |
// 27d: 75 e1 jne 0x260 <_JIT_ENTRY+0x260> | |
// 27f: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax | |
// 283: 40 f6 c5 01 testb $0x1, %bpl | |
// 287: 0f 84 2c 01 00 00 je 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 28d: 4a 8d 1c ce leaq (%rsi,%r9,8), %rbx | |
// 291: 41 83 fb 02 cmpl $0x2, %r11d | |
// 295: 41 ba 01 00 00 00 movl $0x1, %r10d | |
// 29b: 45 0f 4d d3 cmovgel %r11d, %r10d | |
// 29f: 41 83 fa 0e cmpl $0xe, %r10d | |
// 2a3: 72 14 jb 0x2b9 <_JIT_ENTRY+0x2b9> | |
// 2a5: 4d 89 c3 movq %r8, %r11 | |
// 2a8: 49 29 db subq %rbx, %r11 | |
// 2ab: 49 83 c3 48 addq $0x48, %r11 | |
// 2af: 49 83 fb 20 cmpq $0x20, %r11 | |
// 2b3: 0f 83 ba 00 00 00 jae 0x373 <_JIT_ENTRY+0x373> | |
// 2b9: 45 31 db xorl %r11d, %r11d | |
// 2bc: 4d 89 de movq %r11, %r14 | |
// 2bf: 49 f7 d6 notq %r14 | |
// 2c2: 4d 01 d6 addq %r10, %r14 | |
// 2c5: 4d 89 d7 movq %r10, %r15 | |
// 2c8: 49 83 e7 03 andq $0x3, %r15 | |
// 2cc: 74 13 je 0x2e1 <_JIT_ENTRY+0x2e1> | |
// 2ce: 66 90 nop | |
// 2d0: 4e 8b 24 db movq (%rbx,%r11,8), %r12 | |
// 2d4: 4f 89 64 d8 48 movq %r12, 0x48(%r8,%r11,8) | |
// 2d9: 49 ff c3 incq %r11 | |
// 2dc: 49 ff cf decq %r15 | |
// 2df: 75 ef jne 0x2d0 <_JIT_ENTRY+0x2d0> | |
// 2e1: 49 83 fe 03 cmpq $0x3, %r14 | |
// 2e5: 0f 82 ce 00 00 00 jb 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 2eb: 4e 8d 0c ce leaq (%rsi,%r9,8), %r9 | |
// 2ef: 49 83 c1 18 addq $0x18, %r9 | |
// 2f3: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 300: 4b 8b 5c d9 e8 movq -0x18(%r9,%r11,8), %rbx | |
// 305: 4b 89 5c d8 48 movq %rbx, 0x48(%r8,%r11,8) | |
// 30a: 4b 8b 5c d9 f0 movq -0x10(%r9,%r11,8), %rbx | |
// 30f: 4b 89 5c d8 50 movq %rbx, 0x50(%r8,%r11,8) | |
// 314: 4b 8b 5c d9 f8 movq -0x8(%r9,%r11,8), %rbx | |
// 319: 4b 89 5c d8 58 movq %rbx, 0x58(%r8,%r11,8) | |
// 31e: 4b 8b 1c d9 movq (%r9,%r11,8), %rbx | |
// 322: 4b 89 5c d8 60 movq %rbx, 0x60(%r8,%r11,8) | |
// 327: 49 83 c3 04 addq $0x4, %r11 | |
// 32b: 4d 39 da cmpq %r11, %r10 | |
// 32e: 75 d0 jne 0x300 <_JIT_ENTRY+0x300> | |
// 330: e9 84 00 00 00 jmp 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 335: 48 8b 1d 00 00 00 00 movq (%rip), %rbx # 0x33c <_JIT_ENTRY+0x33c> | |
// 0000000000000338: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 33c: 0f 1f 40 00 nopl (%rax) | |
// 340: 4b c7 44 d0 48 00 00 00 00 movq $0x0, 0x48(%r8,%r10,8) | |
// 349: 49 ff c2 incq %r10 | |
// 34c: 44 0f b7 db movzwl %bx, %r11d | |
// 350: 45 85 db testl %r11d, %r11d | |
// 353: 40 0f 9f c5 setg %bpl | |
// 357: 4d 39 d1 cmpq %r10, %r9 | |
// 35a: 75 e4 jne 0x340 <_JIT_ENTRY+0x340> | |
// 35c: 44 0f b7 cb movzwl %bx, %r9d | |
// 360: 49 f7 d9 negq %r9 | |
// 363: 48 8d 04 c6 leaq (%rsi,%rax,8), %rax | |
// 367: 40 f6 c5 01 testb $0x1, %bpl | |
// 36b: 0f 85 1c ff ff ff jne 0x28d <_JIT_ENTRY+0x28d> | |
// 371: eb 46 jmp 0x3b9 <_JIT_ENTRY+0x3b9> | |
// 373: 4e 8d 34 cd 00 00 00 00 leaq (,%r9,8), %r14 | |
// 37b: 45 89 d3 movl %r10d, %r11d | |
// 37e: 41 81 e3 fc ff ff 7f andl $0x7ffffffc, %r11d # imm = 0x7FFFFFFC | |
// 385: 49 01 f6 addq %rsi, %r14 | |
// 388: 49 83 c6 10 addq $0x10, %r14 | |
// 38c: 45 31 ff xorl %r15d, %r15d | |
// 38f: 90 nop | |
// 390: 43 0f 10 44 fe f0 movups -0x10(%r14,%r15,8), %xmm0 | |
// 396: 43 0f 10 0c fe movups (%r14,%r15,8), %xmm1 | |
// 39b: 43 0f 11 44 f8 48 movups %xmm0, 0x48(%r8,%r15,8) | |
// 3a1: 43 0f 11 4c f8 58 movups %xmm1, 0x58(%r8,%r15,8) | |
// 3a7: 49 83 c7 04 addq $0x4, %r15 | |
// 3ab: 4d 39 fb cmpq %r15, %r11 | |
// 3ae: 75 e0 jne 0x390 <_JIT_ENTRY+0x390> | |
// 3b0: 4d 39 d3 cmpq %r10, %r11 | |
// 3b3: 0f 85 03 ff ff ff jne 0x2bc <_JIT_ENTRY+0x2bc> | |
// 3b9: 41 b9 fe ff ff ff movl $0xfffffffe, %r9d # imm = 0xFFFFFFFE | |
// 3bf: 41 29 c9 subl %ecx, %r9d | |
// 3c2: 49 63 c9 movslq %r9d, %rcx | |
// 3c5: 4c 89 04 ce movq %r8, (%rsi,%rcx,8) | |
// 3c9: 48 89 c6 movq %rax, %rsi | |
// 3cc: 5b popq %rbx | |
// 3cd: 41 5c popq %r12 | |
// 3cf: 41 5d popq %r13 | |
// 3d1: 41 5e popq %r14 | |
// 3d3: 41 5f popq %r15 | |
// 3d5: 5d popq %rbp | |
// 3d6: ff 25 00 00 00 00 jmpq *(%rip) # 0x3dc <_JIT_ENTRY+0x3dc> | |
// 00000000000003d8: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 3d6: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_code_body[983] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x0f, 0xb7, 0x0d, 0x00, 0x00, 0x00, | |
0x00, 0x89, 0xc8, 0xf7, 0xd0, 0x48, 0x98, 0x41, | |
0xb8, 0xfe, 0xff, 0xff, 0xff, 0x41, 0x29, 0xc8, | |
0x4d, 0x63, 0xc0, 0x4e, 0x8b, 0x0c, 0xc6, 0x48, | |
0x8b, 0x1c, 0xc6, 0x4d, 0x8b, 0x59, 0x30, 0x4c, | |
0x8b, 0x82, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, | |
0x53, 0x4c, 0x4f, 0x8d, 0x14, 0xd0, 0x4c, 0x89, | |
0x92, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x89, 0x48, | |
0x10, 0x45, 0x8b, 0x13, 0x41, 0xff, 0xc2, 0x48, | |
0x85, 0xdb, 0x0f, 0x84, 0x8a, 0x00, 0x00, 0x00, | |
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x13, | |
0x4d, 0x89, 0x18, 0x41, 0x0f, 0x10, 0x41, 0x10, | |
0x41, 0x0f, 0x11, 0x40, 0x18, 0x49, 0xc7, 0x40, | |
0x28, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x63, 0x53, | |
0x48, 0x45, 0x89, 0x50, 0x40, 0x49, 0xc7, 0x40, | |
0x30, 0x00, 0x00, 0x00, 0x00, 0x49, 0x81, 0xc3, | |
0xc8, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x58, 0x38, | |
0x66, 0x41, 0xc7, 0x40, 0x44, 0x00, 0x00, 0x41, | |
0xc6, 0x40, 0x46, 0x00, 0x8b, 0x1d, 0x00, 0x00, | |
0x00, 0x00, 0x41, 0x89, 0xd9, 0x41, 0xf7, 0xd1, | |
0x44, 0x0f, 0xb7, 0xdb, 0x41, 0xff, 0xc3, 0x45, | |
0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x45, 0x39, | |
0xda, 0x0f, 0x8e, 0x78, 0x01, 0x00, 0x00, 0x4d, | |
0x89, 0xcf, 0x49, 0x81, 0xcf, 0x00, 0x00, 0xff, | |
0xff, 0x4d, 0x01, 0xd7, 0x49, 0x83, 0xff, 0x04, | |
0x0f, 0x83, 0x0d, 0x01, 0x00, 0x00, 0x44, 0x0f, | |
0xb7, 0xf3, 0x41, 0xff, 0xc6, 0xe9, 0x6c, 0x01, | |
0x00, 0x00, 0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, | |
0x89, 0x13, 0x4d, 0x89, 0x18, 0x41, 0x0f, 0x10, | |
0x41, 0x10, 0x41, 0x0f, 0x11, 0x40, 0x18, 0x49, | |
0xc7, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x4d, | |
0x63, 0x4b, 0x48, 0x45, 0x89, 0x48, 0x40, 0x49, | |
0xc7, 0x40, 0x30, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x81, 0xc3, 0xc8, 0x00, 0x00, 0x00, 0x4d, 0x89, | |
0x58, 0x38, 0x66, 0x41, 0xc7, 0x40, 0x44, 0x00, | |
0x00, 0x41, 0xc6, 0x40, 0x46, 0x00, 0x4c, 0x8b, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7, | |
0xda, 0x45, 0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, | |
0x45, 0x39, 0xd9, 0x0f, 0x8e, 0x88, 0x00, 0x00, | |
0x00, 0x44, 0x0f, 0xb7, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0xcb, 0x4c, 0x29, 0xd3, 0x48, | |
0x83, 0xfb, 0x04, 0x0f, 0x82, 0xdc, 0x01, 0x00, | |
0x00, 0x49, 0x89, 0xde, 0x49, 0x83, 0xe6, 0xfc, | |
0x44, 0x0f, 0xb7, 0x1d, 0x00, 0x00, 0x00, 0x00, | |
0x4f, 0x8d, 0x14, 0x1e, 0x4f, 0x8d, 0x1c, 0xd8, | |
0x49, 0x83, 0xc3, 0x58, 0x45, 0x31, 0xff, 0x0f, | |
0x57, 0xc0, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x43, 0x0f, 0x11, 0x44, 0xfb, 0xf0, 0x43, 0x0f, | |
0x11, 0x04, 0xfb, 0x49, 0x83, 0xc7, 0x04, 0x4d, | |
0x39, 0xfe, 0x75, 0xec, 0x4c, 0x8b, 0x3d, 0x00, | |
0x00, 0x00, 0x00, 0x45, 0x0f, 0xb7, 0xdf, 0x45, | |
0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x4c, 0x39, | |
0xf3, 0x0f, 0x85, 0x86, 0x01, 0x00, 0x00, 0x45, | |
0x0f, 0xb7, 0xcf, 0x49, 0xf7, 0xd9, 0x48, 0x8d, | |
0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f, 0x85, | |
0xc9, 0x00, 0x00, 0x00, 0xe9, 0xf0, 0x01, 0x00, | |
0x00, 0x45, 0x0f, 0xb7, 0xca, 0x49, 0xf7, 0xd9, | |
0x48, 0x8d, 0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, | |
0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, 0xe9, 0xd6, | |
0x01, 0x00, 0x00, 0x4d, 0x89, 0xfc, 0x49, 0x83, | |
0xe4, 0xfc, 0x4c, 0x8b, 0x1d, 0x00, 0x00, 0x00, | |
0x00, 0x45, 0x0f, 0xb7, 0xf3, 0x41, 0xff, 0xc6, | |
0x4d, 0x01, 0xe6, 0x45, 0x0f, 0xb7, 0xdb, 0x4f, | |
0x8d, 0x1c, 0xd8, 0x49, 0x83, 0xc3, 0x60, 0x45, | |
0x31, 0xed, 0x0f, 0x57, 0xc0, 0x0f, 0x1f, 0x00, | |
0x43, 0x0f, 0x11, 0x44, 0xeb, 0xf0, 0x43, 0x0f, | |
0x11, 0x04, 0xeb, 0x49, 0x83, 0xc5, 0x04, 0x4d, | |
0x39, 0xec, 0x75, 0xec, 0x44, 0x0f, 0xb7, 0xdb, | |
0x41, 0xff, 0xc3, 0x45, 0x85, 0xdb, 0x40, 0x0f, | |
0x9f, 0xc5, 0x4d, 0x39, 0xe7, 0x75, 0x17, 0x49, | |
0x81, 0xc9, 0x00, 0x00, 0xff, 0xff, 0x48, 0x8d, | |
0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f, 0x84, | |
0x6d, 0x01, 0x00, 0x00, 0xeb, 0x3f, 0x49, 0x81, | |
0xc9, 0x00, 0x00, 0xff, 0xff, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x4b, 0xc7, 0x44, 0xf0, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc6, 0x44, 0x0f, 0xb7, 0xdb, | |
0x41, 0xff, 0xc3, 0x45, 0x85, 0xdb, 0x40, 0x0f, | |
0x9f, 0xc5, 0x4d, 0x39, 0xf2, 0x75, 0xe1, 0x48, | |
0x8d, 0x04, 0xc6, 0x40, 0xf6, 0xc5, 0x01, 0x0f, | |
0x84, 0x2c, 0x01, 0x00, 0x00, 0x4a, 0x8d, 0x1c, | |
0xce, 0x41, 0x83, 0xfb, 0x02, 0x41, 0xba, 0x01, | |
0x00, 0x00, 0x00, 0x45, 0x0f, 0x4d, 0xd3, 0x41, | |
0x83, 0xfa, 0x0e, 0x72, 0x14, 0x4d, 0x89, 0xc3, | |
0x49, 0x29, 0xdb, 0x49, 0x83, 0xc3, 0x48, 0x49, | |
0x83, 0xfb, 0x20, 0x0f, 0x83, 0xba, 0x00, 0x00, | |
0x00, 0x45, 0x31, 0xdb, 0x4d, 0x89, 0xde, 0x49, | |
0xf7, 0xd6, 0x4d, 0x01, 0xd6, 0x4d, 0x89, 0xd7, | |
0x49, 0x83, 0xe7, 0x03, 0x74, 0x13, 0x66, 0x90, | |
0x4e, 0x8b, 0x24, 0xdb, 0x4f, 0x89, 0x64, 0xd8, | |
0x48, 0x49, 0xff, 0xc3, 0x49, 0xff, 0xcf, 0x75, | |
0xef, 0x49, 0x83, 0xfe, 0x03, 0x0f, 0x82, 0xce, | |
0x00, 0x00, 0x00, 0x4e, 0x8d, 0x0c, 0xce, 0x49, | |
0x83, 0xc1, 0x18, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x4b, 0x8b, 0x5c, 0xd9, 0xe8, 0x4b, 0x89, 0x5c, | |
0xd8, 0x48, 0x4b, 0x8b, 0x5c, 0xd9, 0xf0, 0x4b, | |
0x89, 0x5c, 0xd8, 0x50, 0x4b, 0x8b, 0x5c, 0xd9, | |
0xf8, 0x4b, 0x89, 0x5c, 0xd8, 0x58, 0x4b, 0x8b, | |
0x1c, 0xd9, 0x4b, 0x89, 0x5c, 0xd8, 0x60, 0x49, | |
0x83, 0xc3, 0x04, 0x4d, 0x39, 0xda, 0x75, 0xd0, | |
0xe9, 0x84, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x1d, | |
0x00, 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x40, 0x00, | |
0x4b, 0xc7, 0x44, 0xd0, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x44, 0x0f, 0xb7, 0xdb, | |
0x45, 0x85, 0xdb, 0x40, 0x0f, 0x9f, 0xc5, 0x4d, | |
0x39, 0xd1, 0x75, 0xe4, 0x44, 0x0f, 0xb7, 0xcb, | |
0x49, 0xf7, 0xd9, 0x48, 0x8d, 0x04, 0xc6, 0x40, | |
0xf6, 0xc5, 0x01, 0x0f, 0x85, 0x1c, 0xff, 0xff, | |
0xff, 0xeb, 0x46, 0x4e, 0x8d, 0x34, 0xcd, 0x00, | |
0x00, 0x00, 0x00, 0x45, 0x89, 0xd3, 0x41, 0x81, | |
0xe3, 0xfc, 0xff, 0xff, 0x7f, 0x49, 0x01, 0xf6, | |
0x49, 0x83, 0xc6, 0x10, 0x45, 0x31, 0xff, 0x90, | |
0x43, 0x0f, 0x10, 0x44, 0xfe, 0xf0, 0x43, 0x0f, | |
0x10, 0x0c, 0xfe, 0x43, 0x0f, 0x11, 0x44, 0xf8, | |
0x48, 0x43, 0x0f, 0x11, 0x4c, 0xf8, 0x58, 0x49, | |
0x83, 0xc7, 0x04, 0x4d, 0x39, 0xfb, 0x75, 0xe0, | |
0x4d, 0x39, 0xd3, 0x0f, 0x85, 0x03, 0xff, 0xff, | |
0xff, 0x41, 0xb9, 0xfe, 0xff, 0xff, 0xff, 0x41, | |
0x29, 0xc9, 0x49, 0x63, 0xc9, 0x4c, 0x89, 0x04, | |
0xce, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5c, 0x41, | |
0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_code_holes[9] = { | |
{0xd, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x9e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x129, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x145, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x164, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x197, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x1ed, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x338, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
}; | |
// 0: | |
// 0: OPARG | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_data_body[9] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_data_holes[2] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
}; | |
// _INIT_CALL_PY_EXACT_ARGS_0 | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_0.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 56 pushq %r14 | |
// 2: 53 pushq %rbx | |
// 3: 48 89 f0 movq %rsi, %rax | |
// 6: 48 83 c6 f8 addq $-0x8, %rsi | |
// a: 4c 8b 48 f0 movq -0x10(%rax), %r9 | |
// e: 4c 8b 40 f8 movq -0x8(%rax), %r8 | |
// 12: 4d 8b 51 30 movq 0x30(%r9), %r10 | |
// 16: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx | |
// 1d: 4d 63 5a 4c movslq 0x4c(%r10), %r11 | |
// 21: 4e 8d 1c d9 leaq (%rcx,%r11,8), %r11 | |
// 25: 4c 89 9a 08 01 00 00 movq %r11, 0x108(%rdx) | |
// 2c: 4c 89 49 10 movq %r9, 0x10(%rcx) | |
// 30: 45 8b 1a movl (%r10), %r11d | |
// 33: 41 ff c3 incl %r11d | |
// 36: 4d 85 c0 testq %r8, %r8 | |
// 39: 0f 84 ba 00 00 00 je 0xf9 <_JIT_ENTRY+0xf9> | |
// 3f: 45 85 db testl %r11d, %r11d | |
// 42: 74 03 je 0x47 <_JIT_ENTRY+0x47> | |
// 44: 45 89 1a movl %r11d, (%r10) | |
// 47: 4c 89 11 movq %r10, (%rcx) | |
// 4a: 41 0f 10 41 10 movups 0x10(%r9), %xmm0 | |
// 4f: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 53: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 5b: 45 8b 4a 48 movl 0x48(%r10), %r9d | |
// 5f: 44 89 49 40 movl %r9d, 0x40(%rcx) | |
// 63: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 6b: 49 81 c2 c8 00 00 00 addq $0xc8, %r10 | |
// 72: 4c 89 51 38 movq %r10, 0x38(%rcx) | |
// 76: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 7c: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 80: 49 89 f6 movq %rsi, %r14 | |
// 83: 41 83 f9 02 cmpl $0x2, %r9d | |
// 87: 0f 8c 1c 01 00 00 jl 0x1a9 <_JIT_ENTRY+0x1a9> | |
// 8d: 41 ba 01 00 00 00 movl $0x1, %r10d | |
// 93: 41 83 f9 05 cmpl $0x5, %r9d | |
// 97: 72 47 jb 0xe0 <_JIT_ENTRY+0xe0> | |
// 99: 4d 8d 59 ff leaq -0x1(%r9), %r11 | |
// 9d: 4c 89 db movq %r11, %rbx | |
// a0: 48 83 e3 fc andq $-0x4, %rbx | |
// a4: 4c 8d 53 01 leaq 0x1(%rbx), %r10 | |
// a8: 45 31 f6 xorl %r14d, %r14d | |
// ab: 0f 57 c0 xorps %xmm0, %xmm0 | |
// ae: 66 90 nop | |
// b0: 42 0f 11 44 f1 50 movups %xmm0, 0x50(%rcx,%r14,8) | |
// b6: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8) | |
// bc: 49 83 c6 04 addq $0x4, %r14 | |
// c0: 4c 39 f3 cmpq %r14, %rbx | |
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0> | |
// c5: 49 89 f6 movq %rsi, %r14 | |
// c8: 49 39 db cmpq %rbx, %r11 | |
// cb: 0f 84 d3 00 00 00 je 0x1a4 <_JIT_ENTRY+0x1a4> | |
// d1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// e0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// e9: 49 ff c2 incq %r10 | |
// ec: 4d 39 d1 cmpq %r10, %r9 | |
// ef: 75 ef jne 0xe0 <_JIT_ENTRY+0xe0> | |
// f1: 49 89 f6 movq %rsi, %r14 | |
// f4: e9 ab 00 00 00 jmp 0x1a4 <_JIT_ENTRY+0x1a4> | |
// f9: 45 85 db testl %r11d, %r11d | |
// fc: 74 03 je 0x101 <_JIT_ENTRY+0x101> | |
// fe: 45 89 1a movl %r11d, (%r10) | |
// 101: 4c 89 11 movq %r10, (%rcx) | |
// 104: 41 0f 10 41 10 movups 0x10(%r9), %xmm0 | |
// 109: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 10d: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 115: 45 8b 4a 48 movl 0x48(%r10), %r9d | |
// 119: 44 89 49 40 movl %r9d, 0x40(%rcx) | |
// 11d: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 125: 49 81 c2 c8 00 00 00 addq $0xc8, %r10 | |
// 12c: 4c 89 51 38 movq %r10, 0x38(%rcx) | |
// 130: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 136: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 13a: 45 85 c9 testl %r9d, %r9d | |
// 13d: 7e 71 jle 0x1b0 <_JIT_ENTRY+0x1b0> | |
// 13f: 41 83 f9 04 cmpl $0x4, %r9d | |
// 143: 73 05 jae 0x14a <_JIT_ENTRY+0x14a> | |
// 145: 45 31 d2 xorl %r10d, %r10d | |
// 148: eb 46 jmp 0x190 <_JIT_ENTRY+0x190> | |
// 14a: 45 89 ca movl %r9d, %r10d | |
// 14d: 41 83 e2 fc andl $-0x4, %r10d | |
// 151: 4e 8d 1c cd 00 00 00 00 leaq (,%r9,8), %r11 | |
// 159: 49 83 e3 e0 andq $-0x20, %r11 | |
// 15d: 31 db xorl %ebx, %ebx | |
// 15f: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 162: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 170: 0f 11 44 19 48 movups %xmm0, 0x48(%rcx,%rbx) | |
// 175: 0f 11 44 19 58 movups %xmm0, 0x58(%rcx,%rbx) | |
// 17a: 48 83 c3 20 addq $0x20, %rbx | |
// 17e: 49 39 db cmpq %rbx, %r11 | |
// 181: 75 ed jne 0x170 <_JIT_ENTRY+0x170> | |
// 183: 49 89 c6 movq %rax, %r14 | |
// 186: 4d 39 ca cmpq %r9, %r10 | |
// 189: 74 19 je 0x1a4 <_JIT_ENTRY+0x1a4> | |
// 18b: 0f 1f 44 00 00 nopl (%rax,%rax) | |
// 190: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// 199: 49 ff c2 incq %r10 | |
// 19c: 4d 39 d1 cmpq %r10, %r9 | |
// 19f: 75 ef jne 0x190 <_JIT_ENTRY+0x190> | |
// 1a1: 49 89 c6 movq %rax, %r14 | |
// 1a4: 4d 85 c0 testq %r8, %r8 | |
// 1a7: 74 07 je 0x1b0 <_JIT_ENTRY+0x1b0> | |
// 1a9: 4d 8b 06 movq (%r14), %r8 | |
// 1ac: 4c 89 41 48 movq %r8, 0x48(%rcx) | |
// 1b0: 48 89 48 f0 movq %rcx, -0x10(%rax) | |
// 1b4: 5b popq %rbx | |
// 1b5: 41 5e popq %r14 | |
// 1b7: ff 25 00 00 00 00 jmpq *(%rip) # 0x1bd <_JIT_ENTRY+0x1bd> | |
// 00000000000001b9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1b7: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_0_code_body[440] = { | |
0x41, 0x56, 0x53, 0x48, 0x89, 0xf0, 0x48, 0x83, | |
0xc6, 0xf8, 0x4c, 0x8b, 0x48, 0xf0, 0x4c, 0x8b, | |
0x40, 0xf8, 0x4d, 0x8b, 0x51, 0x30, 0x48, 0x8b, | |
0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, 0x5a, | |
0x4c, 0x4e, 0x8d, 0x1c, 0xd9, 0x4c, 0x89, 0x9a, | |
0x08, 0x01, 0x00, 0x00, 0x4c, 0x89, 0x49, 0x10, | |
0x45, 0x8b, 0x1a, 0x41, 0xff, 0xc3, 0x4d, 0x85, | |
0xc0, 0x0f, 0x84, 0xba, 0x00, 0x00, 0x00, 0x45, | |
0x85, 0xdb, 0x74, 0x03, 0x45, 0x89, 0x1a, 0x4c, | |
0x89, 0x11, 0x41, 0x0f, 0x10, 0x41, 0x10, 0x0f, | |
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, | |
0x00, 0x00, 0x00, 0x45, 0x8b, 0x4a, 0x48, 0x44, | |
0x89, 0x49, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x81, 0xc2, 0xc8, 0x00, | |
0x00, 0x00, 0x4c, 0x89, 0x51, 0x38, 0x66, 0xc7, | |
0x41, 0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, | |
0x49, 0x89, 0xf6, 0x41, 0x83, 0xf9, 0x02, 0x0f, | |
0x8c, 0x1c, 0x01, 0x00, 0x00, 0x41, 0xba, 0x01, | |
0x00, 0x00, 0x00, 0x41, 0x83, 0xf9, 0x05, 0x72, | |
0x47, 0x4d, 0x8d, 0x59, 0xff, 0x4c, 0x89, 0xdb, | |
0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d, 0x53, 0x01, | |
0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0, 0x66, 0x90, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x50, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x60, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x89, 0xf6, | |
0x49, 0x39, 0xdb, 0x0f, 0x84, 0xd3, 0x00, 0x00, | |
0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4d, 0x39, 0xd1, 0x75, | |
0xef, 0x49, 0x89, 0xf6, 0xe9, 0xab, 0x00, 0x00, | |
0x00, 0x45, 0x85, 0xdb, 0x74, 0x03, 0x45, 0x89, | |
0x1a, 0x4c, 0x89, 0x11, 0x41, 0x0f, 0x10, 0x41, | |
0x10, 0x0f, 0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, | |
0x28, 0x00, 0x00, 0x00, 0x00, 0x45, 0x8b, 0x4a, | |
0x48, 0x44, 0x89, 0x49, 0x40, 0x48, 0xc7, 0x41, | |
0x30, 0x00, 0x00, 0x00, 0x00, 0x49, 0x81, 0xc2, | |
0xc8, 0x00, 0x00, 0x00, 0x4c, 0x89, 0x51, 0x38, | |
0x66, 0xc7, 0x41, 0x44, 0x00, 0x00, 0xc6, 0x41, | |
0x46, 0x00, 0x45, 0x85, 0xc9, 0x7e, 0x71, 0x41, | |
0x83, 0xf9, 0x04, 0x73, 0x05, 0x45, 0x31, 0xd2, | |
0xeb, 0x46, 0x45, 0x89, 0xca, 0x41, 0x83, 0xe2, | |
0xfc, 0x4e, 0x8d, 0x1c, 0xcd, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x83, 0xe3, 0xe0, 0x31, 0xdb, 0x0f, | |
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x0f, 0x11, 0x44, 0x19, 0x48, 0x0f, 0x11, 0x44, | |
0x19, 0x58, 0x48, 0x83, 0xc3, 0x20, 0x49, 0x39, | |
0xdb, 0x75, 0xed, 0x49, 0x89, 0xc6, 0x4d, 0x39, | |
0xca, 0x74, 0x19, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4d, 0x39, 0xd1, 0x75, | |
0xef, 0x49, 0x89, 0xc6, 0x4d, 0x85, 0xc0, 0x74, | |
0x07, 0x4d, 0x8b, 0x06, 0x4c, 0x89, 0x41, 0x48, | |
0x48, 0x89, 0x48, 0xf0, 0x5b, 0x41, 0x5e, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_0_code_holes[1]; | |
// 0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_0_data_body[1]; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_0_data_holes[1]; | |
// _INIT_CALL_PY_EXACT_ARGS_1 | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 56 pushq %r14 | |
// 2: 53 pushq %rbx | |
// 3: 48 8b 46 e8 movq -0x18(%rsi), %rax | |
// 7: 4c 8b 46 f0 movq -0x10(%rsi), %r8 | |
// b: 4c 8b 48 30 movq 0x30(%rax), %r9 | |
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx | |
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10 | |
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10 | |
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx) | |
// 25: 48 89 41 10 movq %rax, 0x10(%rcx) | |
// 29: 45 8b 11 movl (%r9), %r10d | |
// 2c: 41 ff c2 incl %r10d | |
// 2f: 4d 85 c0 testq %r8, %r8 | |
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6> | |
// 38: 45 85 d2 testl %r10d, %r10d | |
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40> | |
// 3d: 45 89 11 movl %r10d, (%r9) | |
// 40: 4c 89 09 movq %r9, (%rcx) | |
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 53: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 57: 89 41 40 movl %eax, 0x40(%rcx) | |
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 77: 49 c7 c1 fe ff ff ff movq $-0x2, %r9 | |
// 7e: 83 f8 03 cmpl $0x3, %eax | |
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191> | |
// 87: 4c 8d 58 fe leaq -0x2(%rax), %r11 | |
// 8b: 41 ba 02 00 00 00 movl $0x2, %r10d | |
// 91: 49 83 fb 04 cmpq $0x4, %r11 | |
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0> | |
// 97: 4c 89 db movq %r11, %rbx | |
// 9a: 48 83 e3 fc andq $-0x4, %rbx | |
// 9e: 4c 8d 53 02 leaq 0x2(%rbx), %r10 | |
// a2: 45 31 f6 xorl %r14d, %r14d | |
// a5: 0f 57 c0 xorps %xmm0, %xmm0 | |
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax) | |
// b0: 42 0f 11 44 f1 58 movups %xmm0, 0x58(%rcx,%r14,8) | |
// b6: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8) | |
// bc: 49 83 c6 04 addq $0x4, %r14 | |
// c0: 4c 39 f3 cmpq %r14, %rbx | |
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0> | |
// c5: 49 39 db cmpq %rbx, %r11 | |
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191> | |
// ce: 66 90 nop | |
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// d9: 49 ff c2 incq %r10 | |
// dc: 4c 39 d0 cmpq %r10, %rax | |
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0> | |
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191> | |
// e6: 45 85 d2 testl %r10d, %r10d | |
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee> | |
// eb: 45 89 11 movl %r10d, (%r9) | |
// ee: 4c 89 09 movq %r9, (%rcx) | |
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 101: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 105: 89 41 40 movl %eax, 0x40(%rcx) | |
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 125: 49 c7 c1 ff ff ff ff movq $-0x1, %r9 | |
// 12c: 83 f8 02 cmpl $0x2, %eax | |
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191> | |
// 131: 41 ba 01 00 00 00 movl $0x1, %r10d | |
// 137: 83 f8 05 cmpl $0x5, %eax | |
// 13a: 72 44 jb 0x180 <_JIT_ENTRY+0x180> | |
// 13c: 4c 8d 58 ff leaq -0x1(%rax), %r11 | |
// 140: 4c 89 db movq %r11, %rbx | |
// 143: 48 83 e3 fc andq $-0x4, %rbx | |
// 147: 4c 8d 53 01 leaq 0x1(%rbx), %r10 | |
// 14b: 45 31 f6 xorl %r14d, %r14d | |
// 14e: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 151: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 160: 42 0f 11 44 f1 50 movups %xmm0, 0x50(%rcx,%r14,8) | |
// 166: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8) | |
// 16c: 49 83 c6 04 addq $0x4, %r14 | |
// 170: 4c 39 f3 cmpq %r14, %rbx | |
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160> | |
// 175: 49 39 db cmpq %rbx, %r11 | |
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191> | |
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// 189: 49 ff c2 incq %r10 | |
// 18c: 4c 39 d0 cmpq %r10, %rax | |
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180> | |
// 191: 48 8d 46 f0 leaq -0x10(%rsi), %rax | |
// 195: 4e 8b 14 ce movq (%rsi,%r9,8), %r10 | |
// 199: 4c 89 51 48 movq %r10, 0x48(%rcx) | |
// 19d: 4d 85 c0 testq %r8, %r8 | |
// 1a0: 74 09 je 0x1ab <_JIT_ENTRY+0x1ab> | |
// 1a2: 4e 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %r8 | |
// 1a7: 4c 89 41 50 movq %r8, 0x50(%rcx) | |
// 1ab: 48 89 4e e8 movq %rcx, -0x18(%rsi) | |
// 1af: 48 89 c6 movq %rax, %rsi | |
// 1b2: 5b popq %rbx | |
// 1b3: 41 5e popq %r14 | |
// 1b5: ff 25 00 00 00 00 jmpq *(%rip) # 0x1bb <_JIT_ENTRY+0x1bb> | |
// 00000000000001b7: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1b5: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_1_code_body[438] = { | |
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xe8, 0x4c, | |
0x8b, 0x46, 0xf0, 0x4c, 0x8b, 0x48, 0x30, 0x48, | |
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, | |
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89, | |
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41, | |
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d, | |
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, | |
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, | |
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, | |
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, | |
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, | |
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, | |
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, | |
0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, 0x83, 0xf8, | |
0x03, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c, | |
0x8d, 0x58, 0xfe, 0x41, 0xba, 0x02, 0x00, 0x00, | |
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c, | |
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d, | |
0x53, 0x02, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x58, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x68, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85, | |
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89, | |
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41, | |
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00, | |
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40, | |
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00, | |
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1, | |
0xff, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x02, 0x7c, | |
0x60, 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, 0x83, | |
0xf8, 0x05, 0x72, 0x44, 0x4c, 0x8d, 0x58, 0xff, | |
0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, | |
0x8d, 0x53, 0x01, 0x45, 0x31, 0xf6, 0x0f, 0x57, | |
0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x50, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x60, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0x48, 0x8d, 0x46, 0xf0, 0x4e, 0x8b, 0x14, | |
0xce, 0x4c, 0x89, 0x51, 0x48, 0x4d, 0x85, 0xc0, | |
0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce, 0x08, 0x4c, | |
0x89, 0x41, 0x50, 0x48, 0x89, 0x4e, 0xe8, 0x48, | |
0x89, 0xc6, 0x5b, 0x41, 0x5e, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_1_code_holes[1]; | |
// 0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_1_data_body[1]; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_1_data_holes[1]; | |
// _INIT_CALL_PY_EXACT_ARGS_2 | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_2.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 56 pushq %r14 | |
// 2: 53 pushq %rbx | |
// 3: 48 8b 46 e0 movq -0x20(%rsi), %rax | |
// 7: 4c 8b 46 e8 movq -0x18(%rsi), %r8 | |
// b: 4c 8b 48 30 movq 0x30(%rax), %r9 | |
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx | |
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10 | |
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10 | |
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx) | |
// 25: 48 89 41 10 movq %rax, 0x10(%rcx) | |
// 29: 45 8b 11 movl (%r9), %r10d | |
// 2c: 41 ff c2 incl %r10d | |
// 2f: 4d 85 c0 testq %r8, %r8 | |
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6> | |
// 38: 45 85 d2 testl %r10d, %r10d | |
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40> | |
// 3d: 45 89 11 movl %r10d, (%r9) | |
// 40: 4c 89 09 movq %r9, (%rcx) | |
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 53: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 57: 89 41 40 movl %eax, 0x40(%rcx) | |
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 77: 49 c7 c1 fd ff ff ff movq $-0x3, %r9 | |
// 7e: 83 f8 04 cmpl $0x4, %eax | |
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191> | |
// 87: 4c 8d 58 fd leaq -0x3(%rax), %r11 | |
// 8b: 41 ba 03 00 00 00 movl $0x3, %r10d | |
// 91: 49 83 fb 04 cmpq $0x4, %r11 | |
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0> | |
// 97: 4c 89 db movq %r11, %rbx | |
// 9a: 48 83 e3 fc andq $-0x4, %rbx | |
// 9e: 4d 89 da movq %r11, %r10 | |
// a1: 49 83 ca 03 orq $0x3, %r10 | |
// a5: 45 31 f6 xorl %r14d, %r14d | |
// a8: 0f 57 c0 xorps %xmm0, %xmm0 | |
// ab: 0f 1f 44 00 00 nopl (%rax,%rax) | |
// b0: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8) | |
// b6: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8) | |
// bc: 49 83 c6 04 addq $0x4, %r14 | |
// c0: 4c 39 f3 cmpq %r14, %rbx | |
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0> | |
// c5: 49 39 db cmpq %rbx, %r11 | |
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191> | |
// ce: 66 90 nop | |
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// d9: 49 ff c2 incq %r10 | |
// dc: 4c 39 d0 cmpq %r10, %rax | |
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0> | |
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191> | |
// e6: 45 85 d2 testl %r10d, %r10d | |
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee> | |
// eb: 45 89 11 movl %r10d, (%r9) | |
// ee: 4c 89 09 movq %r9, (%rcx) | |
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 101: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 105: 89 41 40 movl %eax, 0x40(%rcx) | |
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 125: 49 c7 c1 fe ff ff ff movq $-0x2, %r9 | |
// 12c: 83 f8 03 cmpl $0x3, %eax | |
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191> | |
// 131: 4c 8d 58 fe leaq -0x2(%rax), %r11 | |
// 135: 41 ba 02 00 00 00 movl $0x2, %r10d | |
// 13b: 49 83 fb 04 cmpq $0x4, %r11 | |
// 13f: 72 3f jb 0x180 <_JIT_ENTRY+0x180> | |
// 141: 4c 89 db movq %r11, %rbx | |
// 144: 48 83 e3 fc andq $-0x4, %rbx | |
// 148: 4c 8d 53 02 leaq 0x2(%rbx), %r10 | |
// 14c: 45 31 f6 xorl %r14d, %r14d | |
// 14f: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 152: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 160: 42 0f 11 44 f1 58 movups %xmm0, 0x58(%rcx,%r14,8) | |
// 166: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8) | |
// 16c: 49 83 c6 04 addq $0x4, %r14 | |
// 170: 4c 39 f3 cmpq %r14, %rbx | |
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160> | |
// 175: 49 39 db cmpq %rbx, %r11 | |
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191> | |
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// 189: 49 ff c2 incq %r10 | |
// 18c: 4c 39 d0 cmpq %r10, %rax | |
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180> | |
// 191: 48 8d 46 e8 leaq -0x18(%rsi), %rax | |
// 195: 4e 8b 14 ce movq (%rsi,%r9,8), %r10 | |
// 199: 4c 89 51 48 movq %r10, 0x48(%rcx) | |
// 19d: 4e 8b 54 ce 08 movq 0x8(%rsi,%r9,8), %r10 | |
// 1a2: 4c 89 51 50 movq %r10, 0x50(%rcx) | |
// 1a6: 4d 85 c0 testq %r8, %r8 | |
// 1a9: 74 09 je 0x1b4 <_JIT_ENTRY+0x1b4> | |
// 1ab: 4e 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %r8 | |
// 1b0: 4c 89 41 58 movq %r8, 0x58(%rcx) | |
// 1b4: 48 89 4e e0 movq %rcx, -0x20(%rsi) | |
// 1b8: 48 89 c6 movq %rax, %rsi | |
// 1bb: 5b popq %rbx | |
// 1bc: 41 5e popq %r14 | |
// 1be: ff 25 00 00 00 00 jmpq *(%rip) # 0x1c4 <_JIT_ENTRY+0x1c4> | |
// 00000000000001c0: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1be: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_2_code_body[447] = { | |
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xe0, 0x4c, | |
0x8b, 0x46, 0xe8, 0x4c, 0x8b, 0x48, 0x30, 0x48, | |
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, | |
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89, | |
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41, | |
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d, | |
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, | |
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, | |
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, | |
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, | |
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, | |
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, | |
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, | |
0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, 0x83, 0xf8, | |
0x04, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c, | |
0x8d, 0x58, 0xfd, 0x41, 0xba, 0x03, 0x00, 0x00, | |
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c, | |
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4d, 0x89, | |
0xda, 0x49, 0x83, 0xca, 0x03, 0x45, 0x31, 0xf6, | |
0x0f, 0x57, 0xc0, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x60, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x70, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85, | |
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89, | |
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41, | |
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00, | |
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40, | |
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00, | |
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1, | |
0xfe, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x03, 0x7c, | |
0x60, 0x4c, 0x8d, 0x58, 0xfe, 0x41, 0xba, 0x02, | |
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, | |
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, | |
0x4c, 0x8d, 0x53, 0x02, 0x45, 0x31, 0xf6, 0x0f, | |
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x58, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x68, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0x48, 0x8d, 0x46, 0xe8, 0x4e, 0x8b, 0x14, | |
0xce, 0x4c, 0x89, 0x51, 0x48, 0x4e, 0x8b, 0x54, | |
0xce, 0x08, 0x4c, 0x89, 0x51, 0x50, 0x4d, 0x85, | |
0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce, 0x10, | |
0x4c, 0x89, 0x41, 0x58, 0x48, 0x89, 0x4e, 0xe0, | |
0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_2_code_holes[1]; | |
// 0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_2_data_body[1]; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_2_data_holes[1]; | |
// _INIT_CALL_PY_EXACT_ARGS_3 | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_3.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 56 pushq %r14 | |
// 2: 53 pushq %rbx | |
// 3: 48 8b 46 d8 movq -0x28(%rsi), %rax | |
// 7: 4c 8b 46 e0 movq -0x20(%rsi), %r8 | |
// b: 4c 8b 48 30 movq 0x30(%rax), %r9 | |
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx | |
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10 | |
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10 | |
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx) | |
// 25: 48 89 41 10 movq %rax, 0x10(%rcx) | |
// 29: 45 8b 11 movl (%r9), %r10d | |
// 2c: 41 ff c2 incl %r10d | |
// 2f: 4d 85 c0 testq %r8, %r8 | |
// 32: 0f 84 ae 00 00 00 je 0xe6 <_JIT_ENTRY+0xe6> | |
// 38: 45 85 d2 testl %r10d, %r10d | |
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40> | |
// 3d: 45 89 11 movl %r10d, (%r9) | |
// 40: 4c 89 09 movq %r9, (%rcx) | |
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 53: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 57: 89 41 40 movl %eax, 0x40(%rcx) | |
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 77: 49 c7 c1 fc ff ff ff movq $-0x4, %r9 | |
// 7e: 83 f8 05 cmpl $0x5, %eax | |
// 81: 0f 8c 0a 01 00 00 jl 0x191 <_JIT_ENTRY+0x191> | |
// 87: 4c 8d 58 fc leaq -0x4(%rax), %r11 | |
// 8b: 41 ba 04 00 00 00 movl $0x4, %r10d | |
// 91: 49 83 fb 04 cmpq $0x4, %r11 | |
// 95: 72 39 jb 0xd0 <_JIT_ENTRY+0xd0> | |
// 97: 4c 89 db movq %r11, %rbx | |
// 9a: 48 83 e3 fc andq $-0x4, %rbx | |
// 9e: 4c 8d 53 04 leaq 0x4(%rbx), %r10 | |
// a2: 45 31 f6 xorl %r14d, %r14d | |
// a5: 0f 57 c0 xorps %xmm0, %xmm0 | |
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax) | |
// b0: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8) | |
// b6: 42 0f 11 44 f1 78 movups %xmm0, 0x78(%rcx,%r14,8) | |
// bc: 49 83 c6 04 addq $0x4, %r14 | |
// c0: 4c 39 f3 cmpq %r14, %rbx | |
// c3: 75 eb jne 0xb0 <_JIT_ENTRY+0xb0> | |
// c5: 49 39 db cmpq %rbx, %r11 | |
// c8: 0f 84 c3 00 00 00 je 0x191 <_JIT_ENTRY+0x191> | |
// ce: 66 90 nop | |
// d0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// d9: 49 ff c2 incq %r10 | |
// dc: 4c 39 d0 cmpq %r10, %rax | |
// df: 75 ef jne 0xd0 <_JIT_ENTRY+0xd0> | |
// e1: e9 ab 00 00 00 jmp 0x191 <_JIT_ENTRY+0x191> | |
// e6: 45 85 d2 testl %r10d, %r10d | |
// e9: 74 03 je 0xee <_JIT_ENTRY+0xee> | |
// eb: 45 89 11 movl %r10d, (%r9) | |
// ee: 4c 89 09 movq %r9, (%rcx) | |
// f1: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// f5: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// f9: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 101: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 105: 89 41 40 movl %eax, 0x40(%rcx) | |
// 108: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 110: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 117: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 11b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 121: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 125: 49 c7 c1 fd ff ff ff movq $-0x3, %r9 | |
// 12c: 83 f8 04 cmpl $0x4, %eax | |
// 12f: 7c 60 jl 0x191 <_JIT_ENTRY+0x191> | |
// 131: 4c 8d 58 fd leaq -0x3(%rax), %r11 | |
// 135: 41 ba 03 00 00 00 movl $0x3, %r10d | |
// 13b: 49 83 fb 04 cmpq $0x4, %r11 | |
// 13f: 72 3f jb 0x180 <_JIT_ENTRY+0x180> | |
// 141: 4c 89 db movq %r11, %rbx | |
// 144: 48 83 e3 fc andq $-0x4, %rbx | |
// 148: 4d 89 da movq %r11, %r10 | |
// 14b: 49 83 ca 03 orq $0x3, %r10 | |
// 14f: 45 31 f6 xorl %r14d, %r14d | |
// 152: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 155: 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 160: 42 0f 11 44 f1 60 movups %xmm0, 0x60(%rcx,%r14,8) | |
// 166: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8) | |
// 16c: 49 83 c6 04 addq $0x4, %r14 | |
// 170: 4c 39 f3 cmpq %r14, %rbx | |
// 173: 75 eb jne 0x160 <_JIT_ENTRY+0x160> | |
// 175: 49 39 db cmpq %rbx, %r11 | |
// 178: 74 17 je 0x191 <_JIT_ENTRY+0x191> | |
// 17a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 180: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// 189: 49 ff c2 incq %r10 | |
// 18c: 4c 39 d0 cmpq %r10, %rax | |
// 18f: 75 ef jne 0x180 <_JIT_ENTRY+0x180> | |
// 191: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 195: 48 89 41 48 movq %rax, 0x48(%rcx) | |
// 199: 4a 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %rax | |
// 19e: 48 89 41 50 movq %rax, 0x50(%rcx) | |
// 1a2: 4a 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %rax | |
// 1a7: 48 89 41 58 movq %rax, 0x58(%rcx) | |
// 1ab: 48 8d 46 e0 leaq -0x20(%rsi), %rax | |
// 1af: 4d 85 c0 testq %r8, %r8 | |
// 1b2: 74 09 je 0x1bd <_JIT_ENTRY+0x1bd> | |
// 1b4: 4e 8b 44 ce 18 movq 0x18(%rsi,%r9,8), %r8 | |
// 1b9: 4c 89 41 60 movq %r8, 0x60(%rcx) | |
// 1bd: 48 89 4e d8 movq %rcx, -0x28(%rsi) | |
// 1c1: 48 89 c6 movq %rax, %rsi | |
// 1c4: 5b popq %rbx | |
// 1c5: 41 5e popq %r14 | |
// 1c7: ff 25 00 00 00 00 jmpq *(%rip) # 0x1cd <_JIT_ENTRY+0x1cd> | |
// 00000000000001c9: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1c7: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_3_code_body[456] = { | |
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xd8, 0x4c, | |
0x8b, 0x46, 0xe0, 0x4c, 0x8b, 0x48, 0x30, 0x48, | |
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, | |
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89, | |
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41, | |
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d, | |
0x85, 0xc0, 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, | |
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, | |
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, | |
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, | |
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, | |
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, | |
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, | |
0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, 0x83, 0xf8, | |
0x05, 0x0f, 0x8c, 0x0a, 0x01, 0x00, 0x00, 0x4c, | |
0x8d, 0x58, 0xfc, 0x41, 0xba, 0x04, 0x00, 0x00, | |
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x39, 0x4c, | |
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d, | |
0x53, 0x04, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x68, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x78, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x90, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85, | |
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89, | |
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41, | |
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00, | |
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40, | |
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00, | |
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1, | |
0xfd, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x04, 0x7c, | |
0x60, 0x4c, 0x8d, 0x58, 0xfd, 0x41, 0xba, 0x03, | |
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, | |
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, | |
0x4d, 0x89, 0xda, 0x49, 0x83, 0xca, 0x03, 0x45, | |
0x31, 0xf6, 0x0f, 0x57, 0xc0, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x60, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x70, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0x4a, 0x8b, 0x04, 0xce, 0x48, 0x89, 0x41, | |
0x48, 0x4a, 0x8b, 0x44, 0xce, 0x08, 0x48, 0x89, | |
0x41, 0x50, 0x4a, 0x8b, 0x44, 0xce, 0x10, 0x48, | |
0x89, 0x41, 0x58, 0x48, 0x8d, 0x46, 0xe0, 0x4d, | |
0x85, 0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44, 0xce, | |
0x18, 0x4c, 0x89, 0x41, 0x60, 0x48, 0x89, 0x4e, | |
0xd8, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_3_code_holes[1]; | |
// 0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_3_data_body[1]; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_3_data_holes[1]; | |
// _INIT_CALL_PY_EXACT_ARGS_4 | |
// | |
// /tmp/tmp2mfmnab2/_INIT_CALL_PY_EXACT_ARGS_4.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 56 pushq %r14 | |
// 2: 53 pushq %rbx | |
// 3: 48 8b 46 d0 movq -0x30(%rsi), %rax | |
// 7: 4c 8b 46 d8 movq -0x28(%rsi), %r8 | |
// b: 4c 8b 48 30 movq 0x30(%rax), %r9 | |
// f: 48 8b 8a 08 01 00 00 movq 0x108(%rdx), %rcx | |
// 16: 4d 63 51 4c movslq 0x4c(%r9), %r10 | |
// 1a: 4e 8d 14 d1 leaq (%rcx,%r10,8), %r10 | |
// 1e: 4c 89 92 08 01 00 00 movq %r10, 0x108(%rdx) | |
// 25: 48 89 41 10 movq %rax, 0x10(%rcx) | |
// 29: 45 8b 11 movl (%r9), %r10d | |
// 2c: 41 ff c2 incl %r10d | |
// 2f: 4d 85 c0 testq %r8, %r8 | |
// 32: 0f 84 be 00 00 00 je 0xf6 <_JIT_ENTRY+0xf6> | |
// 38: 45 85 d2 testl %r10d, %r10d | |
// 3b: 74 03 je 0x40 <_JIT_ENTRY+0x40> | |
// 3d: 45 89 11 movl %r10d, (%r9) | |
// 40: 4c 89 09 movq %r9, (%rcx) | |
// 43: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// 47: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 4b: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 53: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 57: 89 41 40 movl %eax, 0x40(%rcx) | |
// 5a: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 62: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 69: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 6d: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 73: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 77: 49 c7 c1 fb ff ff ff movq $-0x5, %r9 | |
// 7e: 83 f8 06 cmpl $0x6, %eax | |
// 81: 0f 8c 1a 01 00 00 jl 0x1a1 <_JIT_ENTRY+0x1a1> | |
// 87: 4c 8d 58 fb leaq -0x5(%rax), %r11 | |
// 8b: 41 ba 05 00 00 00 movl $0x5, %r10d | |
// 91: 49 83 fb 04 cmpq $0x4, %r11 | |
// 95: 72 49 jb 0xe0 <_JIT_ENTRY+0xe0> | |
// 97: 4c 89 db movq %r11, %rbx | |
// 9a: 48 83 e3 fc andq $-0x4, %rbx | |
// 9e: 4c 8d 53 05 leaq 0x5(%rbx), %r10 | |
// a2: 45 31 f6 xorl %r14d, %r14d | |
// a5: 0f 57 c0 xorps %xmm0, %xmm0 | |
// a8: 0f 1f 84 00 00 00 00 00 nopl (%rax,%rax) | |
// b0: 42 0f 11 44 f1 70 movups %xmm0, 0x70(%rcx,%r14,8) | |
// b6: 42 0f 11 84 f1 80 00 00 00 movups %xmm0, 0x80(%rcx,%r14,8) | |
// bf: 49 83 c6 04 addq $0x4, %r14 | |
// c3: 4c 39 f3 cmpq %r14, %rbx | |
// c6: 75 e8 jne 0xb0 <_JIT_ENTRY+0xb0> | |
// c8: 49 39 db cmpq %rbx, %r11 | |
// cb: 0f 84 d0 00 00 00 je 0x1a1 <_JIT_ENTRY+0x1a1> | |
// d1: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// e0: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// e9: 49 ff c2 incq %r10 | |
// ec: 4c 39 d0 cmpq %r10, %rax | |
// ef: 75 ef jne 0xe0 <_JIT_ENTRY+0xe0> | |
// f1: e9 ab 00 00 00 jmp 0x1a1 <_JIT_ENTRY+0x1a1> | |
// f6: 45 85 d2 testl %r10d, %r10d | |
// f9: 74 03 je 0xfe <_JIT_ENTRY+0xfe> | |
// fb: 45 89 11 movl %r10d, (%r9) | |
// fe: 4c 89 09 movq %r9, (%rcx) | |
// 101: 0f 10 40 10 movups 0x10(%rax), %xmm0 | |
// 105: 0f 11 41 18 movups %xmm0, 0x18(%rcx) | |
// 109: 48 c7 41 28 00 00 00 00 movq $0x0, 0x28(%rcx) | |
// 111: 41 8b 41 48 movl 0x48(%r9), %eax | |
// 115: 89 41 40 movl %eax, 0x40(%rcx) | |
// 118: 48 c7 41 30 00 00 00 00 movq $0x0, 0x30(%rcx) | |
// 120: 49 81 c1 c8 00 00 00 addq $0xc8, %r9 | |
// 127: 4c 89 49 38 movq %r9, 0x38(%rcx) | |
// 12b: 66 c7 41 44 00 00 movw $0x0, 0x44(%rcx) | |
// 131: c6 41 46 00 movb $0x0, 0x46(%rcx) | |
// 135: 49 c7 c1 fc ff ff ff movq $-0x4, %r9 | |
// 13c: 83 f8 05 cmpl $0x5, %eax | |
// 13f: 7c 60 jl 0x1a1 <_JIT_ENTRY+0x1a1> | |
// 141: 4c 8d 58 fc leaq -0x4(%rax), %r11 | |
// 145: 41 ba 04 00 00 00 movl $0x4, %r10d | |
// 14b: 49 83 fb 04 cmpq $0x4, %r11 | |
// 14f: 72 3f jb 0x190 <_JIT_ENTRY+0x190> | |
// 151: 4c 89 db movq %r11, %rbx | |
// 154: 48 83 e3 fc andq $-0x4, %rbx | |
// 158: 4c 8d 53 04 leaq 0x4(%rbx), %r10 | |
// 15c: 45 31 f6 xorl %r14d, %r14d | |
// 15f: 0f 57 c0 xorps %xmm0, %xmm0 | |
// 162: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:(%rax,%rax) | |
// 170: 42 0f 11 44 f1 68 movups %xmm0, 0x68(%rcx,%r14,8) | |
// 176: 42 0f 11 44 f1 78 movups %xmm0, 0x78(%rcx,%r14,8) | |
// 17c: 49 83 c6 04 addq $0x4, %r14 | |
// 180: 4c 39 f3 cmpq %r14, %rbx | |
// 183: 75 eb jne 0x170 <_JIT_ENTRY+0x170> | |
// 185: 49 39 db cmpq %rbx, %r11 | |
// 188: 74 17 je 0x1a1 <_JIT_ENTRY+0x1a1> | |
// 18a: 66 0f 1f 44 00 00 nopw (%rax,%rax) | |
// 190: 4a c7 44 d1 48 00 00 00 00 movq $0x0, 0x48(%rcx,%r10,8) | |
// 199: 49 ff c2 incq %r10 | |
// 19c: 4c 39 d0 cmpq %r10, %rax | |
// 19f: 75 ef jne 0x190 <_JIT_ENTRY+0x190> | |
// 1a1: 4a 8b 04 ce movq (%rsi,%r9,8), %rax | |
// 1a5: 48 89 41 48 movq %rax, 0x48(%rcx) | |
// 1a9: 4a 8b 44 ce 08 movq 0x8(%rsi,%r9,8), %rax | |
// 1ae: 48 89 41 50 movq %rax, 0x50(%rcx) | |
// 1b2: 4a 8b 44 ce 10 movq 0x10(%rsi,%r9,8), %rax | |
// 1b7: 48 89 41 58 movq %rax, 0x58(%rcx) | |
// 1bb: 4a 8b 44 ce 18 movq 0x18(%rsi,%r9,8), %rax | |
// 1c0: 48 89 41 60 movq %rax, 0x60(%rcx) | |
// 1c4: 48 8d 46 d8 leaq -0x28(%rsi), %rax | |
// 1c8: 4d 85 c0 testq %r8, %r8 | |
// 1cb: 74 09 je 0x1d6 <_JIT_ENTRY+0x1d6> | |
// 1cd: 4e 8b 44 ce 20 movq 0x20(%rsi,%r9,8), %r8 | |
// 1d2: 4c 89 41 68 movq %r8, 0x68(%rcx) | |
// 1d6: 48 89 4e d0 movq %rcx, -0x30(%rsi) | |
// 1da: 48 89 c6 movq %rax, %rsi | |
// 1dd: 5b popq %rbx | |
// 1de: 41 5e popq %r14 | |
// 1e0: ff 25 00 00 00 00 jmpq *(%rip) # 0x1e6 <_JIT_ENTRY+0x1e6> | |
// 00000000000001e2: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 1e0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_4_code_body[481] = { | |
0x41, 0x56, 0x53, 0x48, 0x8b, 0x46, 0xd0, 0x4c, | |
0x8b, 0x46, 0xd8, 0x4c, 0x8b, 0x48, 0x30, 0x48, | |
0x8b, 0x8a, 0x08, 0x01, 0x00, 0x00, 0x4d, 0x63, | |
0x51, 0x4c, 0x4e, 0x8d, 0x14, 0xd1, 0x4c, 0x89, | |
0x92, 0x08, 0x01, 0x00, 0x00, 0x48, 0x89, 0x41, | |
0x10, 0x45, 0x8b, 0x11, 0x41, 0xff, 0xc2, 0x4d, | |
0x85, 0xc0, 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, | |
0x45, 0x85, 0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, | |
0x4c, 0x89, 0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, | |
0x11, 0x41, 0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, | |
0x00, 0x00, 0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, | |
0x41, 0x40, 0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, | |
0x00, 0x4c, 0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, | |
0x44, 0x00, 0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, | |
0xc7, 0xc1, 0xfb, 0xff, 0xff, 0xff, 0x83, 0xf8, | |
0x06, 0x0f, 0x8c, 0x1a, 0x01, 0x00, 0x00, 0x4c, | |
0x8d, 0x58, 0xfb, 0x41, 0xba, 0x05, 0x00, 0x00, | |
0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, 0x49, 0x4c, | |
0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, 0x4c, 0x8d, | |
0x53, 0x05, 0x45, 0x31, 0xf6, 0x0f, 0x57, 0xc0, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x70, 0x42, 0x0f, | |
0x11, 0x84, 0xf1, 0x80, 0x00, 0x00, 0x00, 0x49, | |
0x83, 0xc6, 0x04, 0x4c, 0x39, 0xf3, 0x75, 0xe8, | |
0x49, 0x39, 0xdb, 0x0f, 0x84, 0xd0, 0x00, 0x00, | |
0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0xe9, 0xab, 0x00, 0x00, 0x00, 0x45, 0x85, | |
0xd2, 0x74, 0x03, 0x45, 0x89, 0x11, 0x4c, 0x89, | |
0x09, 0x0f, 0x10, 0x40, 0x10, 0x0f, 0x11, 0x41, | |
0x18, 0x48, 0xc7, 0x41, 0x28, 0x00, 0x00, 0x00, | |
0x00, 0x41, 0x8b, 0x41, 0x48, 0x89, 0x41, 0x40, | |
0x48, 0xc7, 0x41, 0x30, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x81, 0xc1, 0xc8, 0x00, 0x00, 0x00, 0x4c, | |
0x89, 0x49, 0x38, 0x66, 0xc7, 0x41, 0x44, 0x00, | |
0x00, 0xc6, 0x41, 0x46, 0x00, 0x49, 0xc7, 0xc1, | |
0xfc, 0xff, 0xff, 0xff, 0x83, 0xf8, 0x05, 0x7c, | |
0x60, 0x4c, 0x8d, 0x58, 0xfc, 0x41, 0xba, 0x04, | |
0x00, 0x00, 0x00, 0x49, 0x83, 0xfb, 0x04, 0x72, | |
0x3f, 0x4c, 0x89, 0xdb, 0x48, 0x83, 0xe3, 0xfc, | |
0x4c, 0x8d, 0x53, 0x04, 0x45, 0x31, 0xf6, 0x0f, | |
0x57, 0xc0, 0x66, 0x66, 0x66, 0x66, 0x66, 0x2e, | |
0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x42, 0x0f, 0x11, 0x44, 0xf1, 0x68, 0x42, 0x0f, | |
0x11, 0x44, 0xf1, 0x78, 0x49, 0x83, 0xc6, 0x04, | |
0x4c, 0x39, 0xf3, 0x75, 0xeb, 0x49, 0x39, 0xdb, | |
0x74, 0x17, 0x66, 0x0f, 0x1f, 0x44, 0x00, 0x00, | |
0x4a, 0xc7, 0x44, 0xd1, 0x48, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0xff, 0xc2, 0x4c, 0x39, 0xd0, 0x75, | |
0xef, 0x4a, 0x8b, 0x04, 0xce, 0x48, 0x89, 0x41, | |
0x48, 0x4a, 0x8b, 0x44, 0xce, 0x08, 0x48, 0x89, | |
0x41, 0x50, 0x4a, 0x8b, 0x44, 0xce, 0x10, 0x48, | |
0x89, 0x41, 0x58, 0x4a, 0x8b, 0x44, 0xce, 0x18, | |
0x48, 0x89, 0x41, 0x60, 0x48, 0x8d, 0x46, 0xd8, | |
0x4d, 0x85, 0xc0, 0x74, 0x09, 0x4e, 0x8b, 0x44, | |
0xce, 0x20, 0x4c, 0x89, 0x41, 0x68, 0x48, 0x89, | |
0x4e, 0xd0, 0x48, 0x89, 0xc6, 0x5b, 0x41, 0x5e, | |
}; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_4_code_holes[1]; | |
// 0: | |
static const unsigned char _INIT_CALL_PY_EXACT_ARGS_4_data_body[1]; | |
static const Hole _INIT_CALL_PY_EXACT_ARGS_4_data_holes[1]; | |
// _INTERNAL_INCREMENT_OPT_COUNTER | |
// | |
// /tmp/tmp2mfmnab2/_INTERNAL_INCREMENT_OPT_COUNTER.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 ff 40 20 incq 0x20(%rax) | |
// 8: 48 83 c6 f8 addq $-0x8, %rsi | |
// c: ff 25 00 00 00 00 jmpq *(%rip) # 0x12 <_JIT_ENTRY+0x12> | |
// 000000000000000e: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// c: | |
static const unsigned char _INTERNAL_INCREMENT_OPT_COUNTER_code_body[13] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0xff, 0x40, 0x20, | |
0x48, 0x83, 0xc6, 0xf8, | |
}; | |
static const Hole _INTERNAL_INCREMENT_OPT_COUNTER_code_holes[1]; | |
// 0: | |
static const unsigned char _INTERNAL_INCREMENT_OPT_COUNTER_data_body[1]; | |
static const Hole _INTERNAL_INCREMENT_OPT_COUNTER_data_holes[1]; | |
// _IS_NONE | |
// | |
// /tmp/tmp2mfmnab2/_IS_NONE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 48 89 d3 movq %rdx, %rbx | |
// b: 49 89 f6 movq %rsi, %r14 | |
// e: 49 89 ff movq %rdi, %r15 | |
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 15: 48 3b 3d 00 00 00 00 cmpq (%rip), %rdi # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_REX_GOTPCRELX _Py_NoneStruct-0x4 | |
// 1c: 74 1e je 0x3c <_JIT_ENTRY+0x3c> | |
// 1e: 48 8b 07 movq (%rdi), %rax | |
// 21: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x28 <_JIT_ENTRY+0x28> | |
// 0000000000000024: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 28: 85 c0 testl %eax, %eax | |
// 2a: 78 17 js 0x43 <_JIT_ENTRY+0x43> | |
// 2c: 48 ff c8 decq %rax | |
// 2f: 48 89 07 movq %rax, (%rdi) | |
// 32: 75 0f jne 0x43 <_JIT_ENTRY+0x43> | |
// 34: ff 15 00 00 00 00 callq *(%rip) # 0x3a <_JIT_ENTRY+0x3a> | |
// 0000000000000036: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 3a: eb 07 jmp 0x43 <_JIT_ENTRY+0x43> | |
// 3c: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x43 <_JIT_ENTRY+0x43> | |
// 000000000000003f: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// 43: 4d 89 66 f8 movq %r12, -0x8(%r14) | |
// 47: 4c 89 ff movq %r15, %rdi | |
// 4a: 4c 89 f6 movq %r14, %rsi | |
// 4d: 48 89 da movq %rbx, %rdx | |
// 50: 48 83 c4 08 addq $0x8, %rsp | |
// 54: 5b popq %rbx | |
// 55: 41 5c popq %r12 | |
// 57: 41 5e popq %r14 | |
// 59: 41 5f popq %r15 | |
// 5b: ff 25 00 00 00 00 jmpq *(%rip) # 0x61 <_JIT_ENTRY+0x61> | |
// 000000000000005d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 5b: | |
static const unsigned char _IS_NONE_code_body[92] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89, | |
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x3b, 0x3d, | |
0x00, 0x00, 0x00, 0x00, 0x74, 0x1e, 0x48, 0x8b, | |
0x07, 0x4c, 0x8b, 0x25, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x78, 0x17, 0x48, 0xff, 0xc8, 0x48, | |
0x89, 0x07, 0x75, 0x0f, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0xeb, 0x07, 0x4c, 0x8b, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x4d, 0x89, 0x66, 0xf8, 0x4c, | |
0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, 0x89, 0xda, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _IS_NONE_code_holes[5] = { | |
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x24, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x36, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x3f, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_Py_NoneStruct+0x0 | |
// 8: &_Py_FalseStruct+0x0 | |
// 10: &_Py_Dealloc+0x0 | |
// 18: &_Py_TrueStruct+0x0 | |
static const unsigned char _IS_NONE_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _IS_NONE_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_NoneStruct, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _IS_OP | |
// | |
// /tmp/tmp2mfmnab2/_IS_OP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 48 89 d3 movq %rdx, %rbx | |
// c: 49 89 f7 movq %rsi, %r15 | |
// f: 49 89 fe movq %rdi, %r14 | |
// 12: 4c 8b 66 f0 movq -0x10(%rsi), %r12 | |
// 16: 4c 8b 6e f8 movq -0x8(%rsi), %r13 | |
// 1a: 49 8b 04 24 movq (%r12), %rax | |
// 1e: 85 c0 testl %eax, %eax | |
// 20: 78 09 js 0x2b <_JIT_ENTRY+0x2b> | |
// 22: 48 ff c8 decq %rax | |
// 25: 49 89 04 24 movq %rax, (%r12) | |
// 29: 74 1c je 0x47 <_JIT_ENTRY+0x47> | |
// 2b: 49 8b 45 00 movq (%r13), %rax | |
// 2f: 85 c0 testl %eax, %eax | |
// 31: 78 25 js 0x58 <_JIT_ENTRY+0x58> | |
// 33: 48 ff c8 decq %rax | |
// 36: 49 89 45 00 movq %rax, (%r13) | |
// 3a: 75 1c jne 0x58 <_JIT_ENTRY+0x58> | |
// 3c: 4c 89 ef movq %r13, %rdi | |
// 3f: ff 15 00 00 00 00 callq *(%rip) # 0x45 <_JIT_ENTRY+0x45> | |
// 0000000000000041: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 45: eb 11 jmp 0x58 <_JIT_ENTRY+0x58> | |
// 47: 4c 89 e7 movq %r12, %rdi | |
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50> | |
// 000000000000004c: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 50: 49 8b 45 00 movq (%r13), %rax | |
// 54: 85 c0 testl %eax, %eax | |
// 56: 79 db jns 0x33 <_JIT_ENTRY+0x33> | |
// 58: 49 8d 77 f8 leaq -0x8(%r15), %rsi | |
// 5c: 31 c0 xorl %eax, %eax | |
// 5e: 4d 39 ec cmpq %r13, %r12 | |
// 61: 0f 94 c0 sete %al | |
// 64: 48 8b 0d 00 00 00 00 movq (%rip), %rcx # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_REX_GOTPCRELX _JIT_OPARG-0x4 | |
// 6b: 66 39 c8 cmpw %cx, %ax | |
// 6e: 75 09 jne 0x79 <_JIT_ENTRY+0x79> | |
// 70: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x77 <_JIT_ENTRY+0x77> | |
// 0000000000000073: R_X86_64_REX_GOTPCRELX _Py_FalseStruct-0x4 | |
// 77: eb 07 jmp 0x80 <_JIT_ENTRY+0x80> | |
// 79: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x80 <_JIT_ENTRY+0x80> | |
// 000000000000007c: R_X86_64_REX_GOTPCRELX _Py_TrueStruct-0x4 | |
// 80: 49 89 47 f0 movq %rax, -0x10(%r15) | |
// 84: 4c 89 f7 movq %r14, %rdi | |
// 87: 48 89 da movq %rbx, %rdx | |
// 8a: 5b popq %rbx | |
// 8b: 41 5c popq %r12 | |
// 8d: 41 5d popq %r13 | |
// 8f: 41 5e popq %r14 | |
// 91: 41 5f popq %r15 | |
// 93: ff 25 00 00 00 00 jmpq *(%rip) # 0x99 <_JIT_ENTRY+0x99> | |
// 0000000000000095: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 93: | |
static const unsigned char _IS_OP_code_body[148] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x48, 0x89, 0xd3, 0x49, 0x89, 0xf7, 0x49, | |
0x89, 0xfe, 0x4c, 0x8b, 0x66, 0xf0, 0x4c, 0x8b, | |
0x6e, 0xf8, 0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, | |
0x78, 0x09, 0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, | |
0x24, 0x74, 0x1c, 0x49, 0x8b, 0x45, 0x00, 0x85, | |
0xc0, 0x78, 0x25, 0x48, 0xff, 0xc8, 0x49, 0x89, | |
0x45, 0x00, 0x75, 0x1c, 0x4c, 0x89, 0xef, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x11, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x8b, 0x45, 0x00, 0x85, 0xc0, 0x79, 0xdb, | |
0x49, 0x8d, 0x77, 0xf8, 0x31, 0xc0, 0x4d, 0x39, | |
0xec, 0x0f, 0x94, 0xc0, 0x48, 0x8b, 0x0d, 0x00, | |
0x00, 0x00, 0x00, 0x66, 0x39, 0xc8, 0x75, 0x09, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0xeb, | |
0x07, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x47, 0xf0, 0x4c, 0x89, 0xf7, 0x48, | |
0x89, 0xda, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, | |
0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _IS_OP_code_holes[6] = { | |
{0x41, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x67, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x73, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x7c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: &_Py_Dealloc+0x0 | |
// 8: OPARG | |
// 10: &_Py_FalseStruct+0x0 | |
// 18: &_Py_TrueStruct+0x0 | |
static const unsigned char _IS_OP_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _IS_OP_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_FalseStruct, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_TrueStruct, 0x0}, | |
}; | |
// _ITER_CHECK_LIST | |
// | |
// /tmp/tmp2mfmnab2/_ITER_CHECK_LIST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyListIter_Type-0x4 | |
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41> | |
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1f: 48 29 fe subq %rdi, %rsi | |
// 22: 48 83 c6 b8 addq $-0x48, %rsi | |
// 26: 48 c1 ee 03 shrq $0x3, %rsi | |
// 2a: 89 77 40 movl %esi, 0x40(%rdi) | |
// 2d: 48 8b 07 movq (%rdi), %rax | |
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 40: c3 retq | |
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47> | |
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 41: | |
static const unsigned char _ITER_CHECK_LIST_code_body[66] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, | |
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, | |
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, | |
0xc3, | |
}; | |
static const Hole _ITER_CHECK_LIST_code_holes[4] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &PyListIter_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _ITER_CHECK_LIST_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _ITER_CHECK_LIST_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyListIter_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _ITER_CHECK_RANGE | |
// | |
// /tmp/tmp2mfmnab2/_ITER_CHECK_RANGE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyRangeIter_Type-0x4 | |
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41> | |
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1f: 48 29 fe subq %rdi, %rsi | |
// 22: 48 83 c6 b8 addq $-0x48, %rsi | |
// 26: 48 c1 ee 03 shrq $0x3, %rsi | |
// 2a: 89 77 40 movl %esi, 0x40(%rdi) | |
// 2d: 48 8b 07 movq (%rdi), %rax | |
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 40: c3 retq | |
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47> | |
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 41: | |
static const unsigned char _ITER_CHECK_RANGE_code_body[66] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, | |
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, | |
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, | |
0xc3, | |
}; | |
static const Hole _ITER_CHECK_RANGE_code_holes[4] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &PyRangeIter_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _ITER_CHECK_RANGE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _ITER_CHECK_RANGE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyRangeIter_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _ITER_CHECK_TUPLE | |
// | |
// /tmp/tmp2mfmnab2/_ITER_CHECK_TUPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 40 08 movq 0x8(%rax), %rax | |
// 8: 48 3b 05 00 00 00 00 cmpq (%rip), %rax # 0xf <_JIT_ENTRY+0xf> | |
// 000000000000000b: R_X86_64_REX_GOTPCRELX PyTupleIter_Type-0x4 | |
// f: 74 30 je 0x41 <_JIT_ENTRY+0x41> | |
// 11: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x18 <_JIT_ENTRY+0x18> | |
// 0000000000000014: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 18: 48 89 82 28 01 00 00 movq %rax, 0x128(%rdx) | |
// 1f: 48 29 fe subq %rdi, %rsi | |
// 22: 48 83 c6 b8 addq $-0x48, %rsi | |
// 26: 48 c1 ee 03 shrq $0x3, %rsi | |
// 2a: 89 77 40 movl %esi, 0x40(%rdi) | |
// 2d: 48 8b 07 movq (%rdi), %rax | |
// 30: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x36 <_JIT_ENTRY+0x36> | |
// 0000000000000032: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 36: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 3a: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 40: c3 retq | |
// 41: ff 25 00 00 00 00 jmpq *(%rip) # 0x47 <_JIT_ENTRY+0x47> | |
// 0000000000000043: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 41: | |
static const unsigned char _ITER_CHECK_TUPLE_code_body[66] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x40, 0x08, | |
0x48, 0x3b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x74, | |
0x30, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x82, 0x28, 0x01, 0x00, 0x00, 0x48, | |
0x29, 0xfe, 0x48, 0x83, 0xc6, 0xb8, 0x48, 0xc1, | |
0xee, 0x03, 0x89, 0x77, 0x40, 0x48, 0x8b, 0x07, | |
0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, | |
0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, 0x00, | |
0xc3, | |
}; | |
static const Hole _ITER_CHECK_TUPLE_code_holes[4] = { | |
{0xb, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x14, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x32, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &PyTupleIter_Type+0x0 | |
// 8: EXECUTOR | |
// 10: TARGET | |
static const unsigned char _ITER_CHECK_TUPLE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _ITER_CHECK_TUPLE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyTupleIter_Type, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _ITER_NEXT_LIST | |
// | |
// /tmp/tmp2mfmnab2/_ITER_NEXT_LIST.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 10 movq 0x10(%rax), %rcx | |
// 8: 4c 8b 40 18 movq 0x18(%rax), %r8 | |
// c: 4d 8b 40 18 movq 0x18(%r8), %r8 | |
// 10: 4c 8d 49 01 leaq 0x1(%rcx), %r9 | |
// 14: 4c 89 48 10 movq %r9, 0x10(%rax) | |
// 18: 49 8b 04 c8 movq (%r8,%rcx,8), %rax | |
// 1c: 8b 08 movl (%rax), %ecx | |
// 1e: ff c1 incl %ecx | |
// 20: 74 02 je 0x24 <_JIT_ENTRY+0x24> | |
// 22: 89 08 movl %ecx, (%rax) | |
// 24: 48 89 06 movq %rax, (%rsi) | |
// 27: 48 83 c6 08 addq $0x8, %rsi | |
// 2b: ff 25 00 00 00 00 jmpq *(%rip) # 0x31 <_JIT_ENTRY+0x31> | |
// 000000000000002d: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 2b: | |
static const unsigned char _ITER_NEXT_LIST_code_body[44] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x10, | |
0x4c, 0x8b, 0x40, 0x18, 0x4d, 0x8b, 0x40, 0x18, | |
0x4c, 0x8d, 0x49, 0x01, 0x4c, 0x89, 0x48, 0x10, | |
0x49, 0x8b, 0x04, 0xc8, 0x8b, 0x08, 0xff, 0xc1, | |
0x74, 0x02, 0x89, 0x08, 0x48, 0x89, 0x06, 0x48, | |
0x83, 0xc6, 0x08, | |
}; | |
static const Hole _ITER_NEXT_LIST_code_holes[1]; | |
// 0: | |
static const unsigned char _ITER_NEXT_LIST_data_body[1]; | |
static const Hole _ITER_NEXT_LIST_data_holes[1]; | |
// _ITER_NEXT_RANGE | |
// | |
// /tmp/tmp2mfmnab2/_ITER_NEXT_RANGE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 12: 48 8b 78 10 movq 0x10(%rax), %rdi | |
// 16: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// 1a: 48 01 f9 addq %rdi, %rcx | |
// 1d: 48 89 48 10 movq %rcx, 0x10(%rax) | |
// 21: 48 ff 48 20 decq 0x20(%rax) | |
// 25: ff 15 00 00 00 00 callq *(%rip) # 0x2b <_JIT_ENTRY+0x2b> | |
// 0000000000000027: R_X86_64_GOTPCRELX PyLong_FromLong-0x4 | |
// 2b: 48 85 c0 testq %rax, %rax | |
// 2e: 74 1b je 0x4b <_JIT_ENTRY+0x4b> | |
// 30: 48 89 03 movq %rax, (%rbx) | |
// 33: 48 83 c3 08 addq $0x8, %rbx | |
// 37: 4c 89 f7 movq %r14, %rdi | |
// 3a: 48 89 de movq %rbx, %rsi | |
// 3d: 4c 89 fa movq %r15, %rdx | |
// 40: 5b popq %rbx | |
// 41: 41 5e popq %r14 | |
// 43: 41 5f popq %r15 | |
// 45: ff 25 00 00 00 00 jmpq *(%rip) # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 4b: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x52 <_JIT_ENTRY+0x52> | |
// 000000000000004e: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 52: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 59: 4c 29 f3 subq %r14, %rbx | |
// 5c: 48 83 c3 b8 addq $-0x48, %rbx | |
// 60: 48 c1 eb 03 shrq $0x3, %rbx | |
// 64: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 68: 31 c0 xorl %eax, %eax | |
// 6a: 5b popq %rbx | |
// 6b: 41 5e popq %r14 | |
// 6d: 41 5f popq %r15 | |
// 6f: c3 retq | |
// 70: | |
static const unsigned char _ITER_NEXT_RANGE_code_body[113] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x46, 0xf8, 0x48, 0x8b, 0x78, 0x10, 0x48, 0x8b, | |
0x48, 0x18, 0x48, 0x01, 0xf9, 0x48, 0x89, 0x48, | |
0x10, 0x48, 0xff, 0x48, 0x20, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x1b, | |
0x48, 0x89, 0x03, 0x48, 0x83, 0xc3, 0x08, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, | |
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, | |
0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _ITER_NEXT_RANGE_code_holes[4] = { | |
{0x27, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x4e, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &PyLong_FromLong+0x0 | |
// 8: CONTINUE | |
// 10: EXECUTOR | |
static const unsigned char _ITER_NEXT_RANGE_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _ITER_NEXT_RANGE_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyLong_FromLong, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _ITER_NEXT_TUPLE | |
// | |
// /tmp/tmp2mfmnab2/_ITER_NEXT_TUPLE.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 46 f8 movq -0x8(%rsi), %rax | |
// 4: 48 8b 48 10 movq 0x10(%rax), %rcx | |
// 8: 4c 8b 40 18 movq 0x18(%rax), %r8 | |
// c: 4c 8d 49 01 leaq 0x1(%rcx), %r9 | |
// 10: 4c 89 48 10 movq %r9, 0x10(%rax) | |
// 14: 49 8b 44 c8 18 movq 0x18(%r8,%rcx,8), %rax | |
// 19: 8b 08 movl (%rax), %ecx | |
// 1b: ff c1 incl %ecx | |
// 1d: 74 02 je 0x21 <_JIT_ENTRY+0x21> | |
// 1f: 89 08 movl %ecx, (%rax) | |
// 21: 48 89 06 movq %rax, (%rsi) | |
// 24: 48 83 c6 08 addq $0x8, %rsi | |
// 28: ff 25 00 00 00 00 jmpq *(%rip) # 0x2e <_JIT_ENTRY+0x2e> | |
// 000000000000002a: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 28: | |
static const unsigned char _ITER_NEXT_TUPLE_code_body[41] = { | |
0x48, 0x8b, 0x46, 0xf8, 0x48, 0x8b, 0x48, 0x10, | |
0x4c, 0x8b, 0x40, 0x18, 0x4c, 0x8d, 0x49, 0x01, | |
0x4c, 0x89, 0x48, 0x10, 0x49, 0x8b, 0x44, 0xc8, | |
0x18, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x02, 0x89, | |
0x08, 0x48, 0x89, 0x06, 0x48, 0x83, 0xc6, 0x08, | |
}; | |
static const Hole _ITER_NEXT_TUPLE_code_holes[1]; | |
// 0: | |
static const unsigned char _ITER_NEXT_TUPLE_data_body[1]; | |
static const Hole _ITER_NEXT_TUPLE_data_holes[1]; | |
// _JUMP_TO_TOP | |
// | |
// /tmp/tmp2mfmnab2/_JUMP_TO_TOP.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f3 movq %rsi, %rbx | |
// b: 49 89 fe movq %rdi, %r14 | |
// e: 48 8b 42 18 movq 0x18(%rdx), %rax | |
// 12: 84 c0 testb %al, %al | |
// 14: 74 32 je 0x48 <_JIT_ENTRY+0x48> | |
// 16: 4c 89 ff movq %r15, %rdi | |
// 19: ff 15 00 00 00 00 callq *(%rip) # 0x1f <_JIT_ENTRY+0x1f> | |
// 000000000000001b: R_X86_64_GOTPCRELX _Py_HandlePending-0x4 | |
// 1f: 85 c0 testl %eax, %eax | |
// 21: 74 25 je 0x48 <_JIT_ENTRY+0x48> | |
// 23: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x2a <_JIT_ENTRY+0x2a> | |
// 0000000000000026: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 2a: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 31: 4c 29 f3 subq %r14, %rbx | |
// 34: 48 83 c3 b8 addq $-0x48, %rbx | |
// 38: 48 c1 eb 03 shrq $0x3, %rbx | |
// 3c: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 40: 31 c0 xorl %eax, %eax | |
// 42: 5b popq %rbx | |
// 43: 41 5e popq %r14 | |
// 45: 41 5f popq %r15 | |
// 47: c3 retq | |
// 48: 4c 89 f7 movq %r14, %rdi | |
// 4b: 48 89 de movq %rbx, %rsi | |
// 4e: 4c 89 fa movq %r15, %rdx | |
// 51: 5b popq %rbx | |
// 52: 41 5e popq %r14 | |
// 54: 41 5f popq %r15 | |
// 56: ff 25 00 00 00 00 jmpq *(%rip) # 0x5c <_JIT_ENTRY+0x5c> | |
// 0000000000000058: R_X86_64_GOTPCRELX _JIT_TOP-0x4 | |
// 5c: | |
static const unsigned char _JUMP_TO_TOP_code_body[93] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf3, 0x49, 0x89, 0xfe, 0x48, 0x8b, | |
0x42, 0x18, 0x84, 0xc0, 0x74, 0x32, 0x4c, 0x89, | |
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, | |
0xc0, 0x74, 0x25, 0x48, 0x8b, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, 0x00, | |
0x00, 0x4c, 0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, | |
0x48, 0xc1, 0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, | |
0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
0x4c, 0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, | |
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, | |
0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _JUMP_TO_TOP_code_holes[4] = { | |
{0x1b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x26, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x58, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
}; | |
// 0: | |
// 0: &_Py_HandlePending+0x0 | |
// 8: EXECUTOR | |
// 10: TOP | |
static const unsigned char _JUMP_TO_TOP_data_body[25] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _JUMP_TO_TOP_data_holes[4] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_HandlePending, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_TOP, NULL, 0x0}, | |
}; | |
// _LIST_APPEND | |
// | |
// /tmp/tmp2mfmnab2/_LIST_APPEND.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 53 pushq %rbx | |
// 5: 49 89 d7 movq %rdx, %r15 | |
// 8: 48 89 f0 movq %rsi, %rax | |
// b: 48 89 fb movq %rdi, %rbx | |
// e: 4c 8d 76 f8 leaq -0x8(%rsi), %r14 | |
// 12: 48 8b 76 f8 movq -0x8(%rsi), %rsi | |
// 16: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 1c: f7 d1 notl %ecx | |
// 1e: 81 c9 00 00 ff ff orl $0xffff0000, %ecx # imm = 0xFFFF0000 | |
// 24: 48 63 c9 movslq %ecx, %rcx | |
// 27: 48 8b 3c c8 movq (%rax,%rcx,8), %rdi | |
// 2b: 48 8b 47 10 movq 0x10(%rdi), %rax | |
// 2f: 48 39 47 20 cmpq %rax, 0x20(%rdi) | |
// 33: 7e 11 jle 0x46 <_JIT_ENTRY+0x46> | |
// 35: 48 8b 4f 18 movq 0x18(%rdi), %rcx | |
// 39: 48 89 34 c1 movq %rsi, (%rcx,%rax,8) | |
// 3d: 48 ff c0 incq %rax | |
// 40: 48 89 47 10 movq %rax, 0x10(%rdi) | |
// 44: eb 0a jmp 0x50 <_JIT_ENTRY+0x50> | |
// 46: ff 15 00 00 00 00 callq *(%rip) # 0x4c <_JIT_ENTRY+0x4c> | |
// 0000000000000048: R_X86_64_GOTPCRELX _PyList_AppendTakeRefListResize-0x4 | |
// 4c: 85 c0 testl %eax, %eax | |
// 4e: 78 14 js 0x64 <_JIT_ENTRY+0x64> | |
// 50: 48 89 df movq %rbx, %rdi | |
// 53: 4c 89 f6 movq %r14, %rsi | |
// 56: 4c 89 fa movq %r15, %rdx | |
// 59: 5b popq %rbx | |
// 5a: 41 5e popq %r14 | |
// 5c: 41 5f popq %r15 | |
// 5e: ff 25 00 00 00 00 jmpq *(%rip) # 0x64 <_JIT_ENTRY+0x64> | |
// 0000000000000060: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 64: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x6b <_JIT_ENTRY+0x6b> | |
// 0000000000000067: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 6b: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 72: 49 29 de subq %rbx, %r14 | |
// 75: 49 83 c6 b8 addq $-0x48, %r14 | |
// 79: 49 c1 ee 03 shrq $0x3, %r14 | |
// 7d: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// 81: 31 c0 xorl %eax, %eax | |
// 83: 5b popq %rbx | |
// 84: 41 5e popq %r14 | |
// 86: 41 5f popq %r15 | |
// 88: c3 retq | |
// 89: | |
static const unsigned char _LIST_APPEND_code_body[138] = { | |
0x41, 0x57, 0x41, 0x56, 0x53, 0x49, 0x89, 0xd7, | |
0x48, 0x89, 0xf0, 0x48, 0x89, 0xfb, 0x4c, 0x8d, | |
0x76, 0xf8, 0x48, 0x8b, 0x76, 0xf8, 0x8b, 0x0d, | |
0x00, 0x00, 0x00, 0x00, 0xf7, 0xd1, 0x81, 0xc9, | |
0x00, 0x00, 0xff, 0xff, 0x48, 0x63, 0xc9, 0x48, | |
0x8b, 0x3c, 0xc8, 0x48, 0x8b, 0x47, 0x10, 0x48, | |
0x39, 0x47, 0x20, 0x7e, 0x11, 0x48, 0x8b, 0x4f, | |
0x18, 0x48, 0x89, 0x34, 0xc1, 0x48, 0xff, 0xc0, | |
0x48, 0x89, 0x47, 0x10, 0xeb, 0x0a, 0xff, 0x15, | |
0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x78, 0x14, | |
0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, 0x4c, 0x89, | |
0xfa, 0x5b, 0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x00, | |
0x00, 0x00, 0x00, 0x49, 0x89, 0x87, 0x28, 0x01, | |
0x00, 0x00, 0x49, 0x29, 0xde, 0x49, 0x83, 0xc6, | |
0xb8, 0x49, 0xc1, 0xee, 0x03, 0x44, 0x89, 0x73, | |
0x40, 0x31, 0xc0, 0x5b, 0x41, 0x5e, 0x41, 0x5f, | |
0xc3, | |
}; | |
static const Hole _LIST_APPEND_code_holes[5] = { | |
{0x18, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x48, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x60, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x67, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyList_AppendTakeRefListResize+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
static const unsigned char _LIST_APPEND_data_body[33] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LIST_APPEND_data_holes[5] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_AppendTakeRefListResize, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _LIST_EXTEND | |
// | |
// /tmp/tmp2mfmnab2/_LIST_EXTEND.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 55 pushq %r13 | |
// 6: 41 54 pushq %r12 | |
// 8: 53 pushq %rbx | |
// 9: 49 89 d7 movq %rdx, %r15 | |
// c: 48 89 fb movq %rdi, %rbx | |
// f: 4c 8d 76 f8 leaq -0x8(%rsi), %r14 | |
// 13: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 17: 8b 05 00 00 00 00 movl (%rip), %eax # 0x1d <_JIT_ENTRY+0x1d> | |
// 0000000000000019: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 1d: f7 d0 notl %eax | |
// 1f: 0d 00 00 ff ff orl $0xffff0000, %eax # imm = 0xFFFF0000 | |
// 24: 48 98 cltq | |
// 26: 48 8b 3c c6 movq (%rsi,%rax,8), %rdi | |
// 2a: 4c 89 e6 movq %r12, %rsi | |
// 2d: ff 15 00 00 00 00 callq *(%rip) # 0x33 <_JIT_ENTRY+0x33> | |
// 000000000000002f: R_X86_64_GOTPCRELX _PyList_Extend-0x4 | |
// 33: 48 85 c0 testq %rax, %rax | |
// 36: 74 32 je 0x6a <_JIT_ENTRY+0x6a> | |
// 38: 49 8b 04 24 movq (%r12), %rax | |
// 3c: 85 c0 testl %eax, %eax | |
// 3e: 78 12 js 0x52 <_JIT_ENTRY+0x52> | |
// 40: 48 ff c8 decq %rax | |
// 43: 49 89 04 24 movq %rax, (%r12) | |
// 47: 75 09 jne 0x52 <_JIT_ENTRY+0x52> | |
// 49: 4c 89 e7 movq %r12, %rdi | |
// 4c: ff 15 00 00 00 00 callq *(%rip) # 0x52 <_JIT_ENTRY+0x52> | |
// 000000000000004e: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 52: 48 89 df movq %rbx, %rdi | |
// 55: 4c 89 f6 movq %r14, %rsi | |
// 58: 4c 89 fa movq %r15, %rdx | |
// 5b: 5b popq %rbx | |
// 5c: 41 5c popq %r12 | |
// 5e: 41 5d popq %r13 | |
// 60: 41 5e popq %r14 | |
// 62: 41 5f popq %r15 | |
// 64: ff 25 00 00 00 00 jmpq *(%rip) # 0x6a <_JIT_ENTRY+0x6a> | |
// 0000000000000066: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 6a: 4c 8b 2d 00 00 00 00 movq (%rip), %r13 # 0x71 <_JIT_ENTRY+0x71> | |
// 000000000000006d: R_X86_64_REX_GOTPCRELX PyExc_TypeError-0x4 | |
// 71: 49 8b 75 00 movq (%r13), %rsi | |
// 75: 4c 89 ff movq %r15, %rdi | |
// 78: ff 15 00 00 00 00 callq *(%rip) # 0x7e <_JIT_ENTRY+0x7e> | |
// 000000000000007a: R_X86_64_GOTPCRELX _PyErr_ExceptionMatches-0x4 | |
// 7e: 85 c0 testl %eax, %eax | |
// 80: 74 44 je 0xc6 <_JIT_ENTRY+0xc6> | |
// 82: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// 87: 48 83 b8 d8 00 00 00 00 cmpq $0x0, 0xd8(%rax) | |
// 8f: 75 35 jne 0xc6 <_JIT_ENTRY+0xc6> | |
// 91: 4c 89 e7 movq %r12, %rdi | |
// 94: ff 15 00 00 00 00 callq *(%rip) # 0x9a <_JIT_ENTRY+0x9a> | |
// 0000000000000096: R_X86_64_GOTPCRELX PySequence_Check-0x4 | |
// 9a: 85 c0 testl %eax, %eax | |
// 9c: 75 28 jne 0xc6 <_JIT_ENTRY+0xc6> | |
// 9e: 4c 89 ff movq %r15, %rdi | |
// a1: ff 15 00 00 00 00 callq *(%rip) # 0xa7 <_JIT_ENTRY+0xa7> | |
// 00000000000000a3: R_X86_64_GOTPCRELX _PyErr_Clear-0x4 | |
// a7: 49 8b 75 00 movq (%r13), %rsi | |
// ab: 49 8b 44 24 08 movq 0x8(%r12), %rax | |
// b0: 48 8b 48 18 movq 0x18(%rax), %rcx | |
// b4: 48 8d 15 00 00 00 00 leaq (%rip), %rdx # 0xbb <_JIT_ENTRY+0xbb> | |
// 00000000000000b7: R_X86_64_PC32 .L.str.10-0x4 | |
// bb: 4c 89 ff movq %r15, %rdi | |
// be: 31 c0 xorl %eax, %eax | |
// c0: ff 15 00 00 00 00 callq *(%rip) # 0xc6 <_JIT_ENTRY+0xc6> | |
// 00000000000000c2: R_X86_64_GOTPCRELX _PyErr_Format-0x4 | |
// c6: 49 8b 04 24 movq (%r12), %rax | |
// ca: 85 c0 testl %eax, %eax | |
// cc: 78 12 js 0xe0 <_JIT_ENTRY+0xe0> | |
// ce: 48 ff c8 decq %rax | |
// d1: 49 89 04 24 movq %rax, (%r12) | |
// d5: 75 09 jne 0xe0 <_JIT_ENTRY+0xe0> | |
// d7: 4c 89 e7 movq %r12, %rdi | |
// da: ff 15 00 00 00 00 callq *(%rip) # 0xe0 <_JIT_ENTRY+0xe0> | |
// 00000000000000dc: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// e0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe7 <_JIT_ENTRY+0xe7> | |
// 00000000000000e3: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// e7: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// ee: 49 29 de subq %rbx, %r14 | |
// f1: 49 83 c6 b8 addq $-0x48, %r14 | |
// f5: 49 c1 ee 03 shrq $0x3, %r14 | |
// f9: 44 89 73 40 movl %r14d, 0x40(%rbx) | |
// fd: 31 c0 xorl %eax, %eax | |
// ff: 5b popq %rbx | |
// 100: 41 5c popq %r12 | |
// 102: 41 5d popq %r13 | |
// 104: 41 5e popq %r14 | |
// 106: 41 5f popq %r15 | |
// 108: c3 retq | |
// 109: | |
static const unsigned char _LIST_EXTEND_code_body[266] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, 0x54, | |
0x53, 0x49, 0x89, 0xd7, 0x48, 0x89, 0xfb, 0x4c, | |
0x8d, 0x76, 0xf8, 0x4c, 0x8b, 0x66, 0xf8, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xd0, 0x0d, | |
0x00, 0x00, 0xff, 0xff, 0x48, 0x98, 0x48, 0x8b, | |
0x3c, 0xc6, 0x4c, 0x89, 0xe6, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74, 0x32, | |
0x49, 0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, | |
0x48, 0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, | |
0x09, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x48, 0x89, 0xdf, 0x4c, 0x89, 0xf6, | |
0x4c, 0x89, 0xfa, 0x5b, 0x41, 0x5c, 0x41, 0x5d, | |
0x41, 0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, | |
0x00, 0x00, 0x4c, 0x8b, 0x2d, 0x00, 0x00, 0x00, | |
0x00, 0x49, 0x8b, 0x75, 0x00, 0x4c, 0x89, 0xff, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, | |
0x74, 0x44, 0x49, 0x8b, 0x44, 0x24, 0x08, 0x48, | |
0x83, 0xb8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x75, | |
0x35, 0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, | |
0x00, 0x00, 0x85, 0xc0, 0x75, 0x28, 0x4c, 0x89, | |
0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x8b, 0x75, 0x00, 0x49, 0x8b, 0x44, 0x24, 0x08, | |
0x48, 0x8b, 0x48, 0x18, 0x48, 0x8d, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0xff, 0x31, 0xc0, | |
0xff, 0x15, 0x00, 0x00, 0x00, 0x00, 0x49, 0x8b, | |
0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, 0xff, | |
0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, | |
0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x49, 0x29, | |
0xde, 0x49, 0x83, 0xc6, 0xb8, 0x49, 0xc1, 0xee, | |
0x03, 0x44, 0x89, 0x73, 0x40, 0x31, 0xc0, 0x5b, | |
0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, | |
0xc3, | |
}; | |
static const Hole _LIST_EXTEND_code_holes[13] = { | |
{0x19, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x2c}, | |
{0x2f, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x34}, | |
{0x4e, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0x66, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x44}, | |
{0x6d, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x4c}, | |
{0x7a, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x54}, | |
{0x96, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x5c}, | |
{0xa3, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x64}, | |
{0xb7, HoleKind_R_X86_64_PC32, HoleValue_DATA, NULL, -0x4}, | |
{0xc2, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x6c}, | |
{0xdc, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x3c}, | |
{0xe3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x74}, | |
}; | |
// 0: 'Value after * must be an iterable, not %.200s\x00' | |
// 2e: 00 00 | |
// 30: OPARG | |
// 38: &_PyList_Extend+0x0 | |
// 40: &_Py_Dealloc+0x0 | |
// 48: CONTINUE | |
// 50: &PyExc_TypeError+0x0 | |
// 58: &_PyErr_ExceptionMatches+0x0 | |
// 60: &PySequence_Check+0x0 | |
// 68: &_PyErr_Clear+0x0 | |
// 70: &_PyErr_Format+0x0 | |
// 78: EXECUTOR | |
static const unsigned char _LIST_EXTEND_data_body[129] = { | |
0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x61, 0x66, | |
0x74, 0x65, 0x72, 0x20, 0x2a, 0x20, 0x6d, 0x75, | |
0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x61, 0x6e, | |
0x20, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, | |
0x65, 0x2c, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x25, | |
0x2e, 0x32, 0x30, 0x30, 0x73, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LIST_EXTEND_data_holes[11] = { | |
{0x30, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x38, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyList_Extend, 0x0}, | |
{0x40, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x48, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x50, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_TypeError, 0x0}, | |
{0x58, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_ExceptionMatches, 0x0}, | |
{0x60, HoleKind_R_X86_64_64, HoleValue_ZERO, &PySequence_Check, 0x0}, | |
{0x68, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Clear, 0x0}, | |
{0x70, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyErr_Format, 0x0}, | |
{0x78, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _LOAD_ASSERTION_ERROR | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ASSERTION_ERROR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x7 <_JIT_ENTRY+0x7> | |
// 0000000000000003: R_X86_64_REX_GOTPCRELX PyExc_AssertionError-0x4 | |
// 7: 48 8b 00 movq (%rax), %rax | |
// a: 8b 08 movl (%rax), %ecx | |
// c: ff c1 incl %ecx | |
// e: 74 02 je 0x12 <_JIT_ENTRY+0x12> | |
// 10: 89 08 movl %ecx, (%rax) | |
// 12: 48 89 06 movq %rax, (%rsi) | |
// 15: 48 83 c6 08 addq $0x8, %rsi | |
// 19: ff 25 00 00 00 00 jmpq *(%rip) # 0x1f <_JIT_ENTRY+0x1f> | |
// 000000000000001b: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 19: | |
static const unsigned char _LOAD_ASSERTION_ERROR_code_body[26] = { | |
0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8b, 0x00, 0x8b, 0x08, 0xff, 0xc1, 0x74, 0x02, | |
0x89, 0x08, 0x48, 0x89, 0x06, 0x48, 0x83, 0xc6, | |
0x08, | |
}; | |
static const Hole _LOAD_ASSERTION_ERROR_code_holes[2] = { | |
{0x3, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
}; | |
// 0: | |
// 0: &PyExc_AssertionError+0x0 | |
static const unsigned char _LOAD_ASSERTION_ERROR_data_body[9] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LOAD_ASSERTION_ERROR_data_holes[2] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyExc_AssertionError, 0x0}, | |
}; | |
// _LOAD_ATTR | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ATTR.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 55 pushq %rbp | |
// 1: 41 57 pushq %r15 | |
// 3: 41 56 pushq %r14 | |
// 5: 41 55 pushq %r13 | |
// 7: 41 54 pushq %r12 | |
// 9: 53 pushq %rbx | |
// a: 50 pushq %rax | |
// b: 49 89 d6 movq %rdx, %r14 | |
// e: 49 89 f7 movq %rsi, %r15 | |
// 11: 48 89 fb movq %rdi, %rbx | |
// 14: 4c 8d 6e f8 leaq -0x8(%rsi), %r13 | |
// 18: 4c 8b 66 f8 movq -0x8(%rsi), %r12 | |
// 1c: 48 8b 07 movq (%rdi), %rax | |
// 1f: 48 8b 40 20 movq 0x20(%rax), %rax | |
// 23: 8b 2d 00 00 00 00 movl (%rip), %ebp # 0x29 <_JIT_ENTRY+0x29> | |
// 0000000000000025: R_X86_64_GOTPCRELX _JIT_OPARG-0x4 | |
// 29: 89 e9 movl %ebp, %ecx | |
// 2b: 81 e1 fe ff 00 00 andl $0xfffe, %ecx # imm = 0xFFFE | |
// 31: 48 8b 74 88 18 movq 0x18(%rax,%rcx,4), %rsi | |
// 36: 40 f6 c5 01 testb $0x1, %bpl | |
// 3a: 74 2b je 0x67 <_JIT_ENTRY+0x67> | |
// 3c: 48 c7 04 24 00 00 00 00 movq $0x0, (%rsp) | |
// 44: 48 89 e2 movq %rsp, %rdx | |
// 47: 4c 89 e7 movq %r12, %rdi | |
// 4a: ff 15 00 00 00 00 callq *(%rip) # 0x50 <_JIT_ENTRY+0x50> | |
// 000000000000004c: R_X86_64_GOTPCRELX _PyObject_GetMethod-0x4 | |
// 50: 85 c0 testl %eax, %eax | |
// 52: 74 33 je 0x87 <_JIT_ENTRY+0x87> | |
// 54: 48 8b 04 24 movq (%rsp), %rax | |
// 58: 49 89 45 00 movq %rax, (%r13) | |
// 5c: f6 05 00 00 00 00 01 testb $0x1, (%rip) # 0x63 <_JIT_ENTRY+0x63> | |
// 000000000000005e: R_X86_64_GOTPCREL _JIT_OPARG-0x5 | |
// 63: 75 55 jne 0xba <_JIT_ENTRY+0xba> | |
// 65: eb 56 jmp 0xbd <_JIT_ENTRY+0xbd> | |
// 67: 4c 89 e7 movq %r12, %rdi | |
// 6a: ff 15 00 00 00 00 callq *(%rip) # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_GOTPCRELX PyObject_GetAttr-0x4 | |
// 70: 48 89 04 24 movq %rax, (%rsp) | |
// 74: 49 8b 0c 24 movq (%r12), %rcx | |
// 78: 85 c9 testl %ecx, %ecx | |
// 7a: 78 29 js 0xa5 <_JIT_ENTRY+0xa5> | |
// 7c: 48 ff c9 decq %rcx | |
// 7f: 49 89 0c 24 movq %rcx, (%r12) | |
// 83: 75 1c jne 0xa1 <_JIT_ENTRY+0xa1> | |
// 85: eb 11 jmp 0x98 <_JIT_ENTRY+0x98> | |
// 87: 49 8b 04 24 movq (%r12), %rax | |
// 8b: 85 c0 testl %eax, %eax | |
// 8d: 78 12 js 0xa1 <_JIT_ENTRY+0xa1> | |
// 8f: 48 ff c8 decq %rax | |
// 92: 49 89 04 24 movq %rax, (%r12) | |
// 96: 75 09 jne 0xa1 <_JIT_ENTRY+0xa1> | |
// 98: 4c 89 e7 movq %r12, %rdi | |
// 9b: ff 15 00 00 00 00 callq *(%rip) # 0xa1 <_JIT_ENTRY+0xa1> | |
// 000000000000009d: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// a1: 48 8b 04 24 movq (%rsp), %rax | |
// a5: 48 85 c0 testq %rax, %rax | |
// a8: 74 34 je 0xde <_JIT_ENTRY+0xde> | |
// aa: 45 31 e4 xorl %r12d, %r12d | |
// ad: 49 89 45 00 movq %rax, (%r13) | |
// b1: f6 05 00 00 00 00 01 testb $0x1, (%rip) # 0xb8 <_JIT_ENTRY+0xb8> | |
// 00000000000000b3: R_X86_64_GOTPCREL _JIT_OPARG-0x5 | |
// b8: 74 03 je 0xbd <_JIT_ENTRY+0xbd> | |
// ba: 4d 89 27 movq %r12, (%r15) | |
// bd: 83 e5 01 andl $0x1, %ebp | |
// c0: 49 8d 34 ef leaq (%r15,%rbp,8), %rsi | |
// c4: 48 89 df movq %rbx, %rdi | |
// c7: 4c 89 f2 movq %r14, %rdx | |
// ca: 48 83 c4 08 addq $0x8, %rsp | |
// ce: 5b popq %rbx | |
// cf: 41 5c popq %r12 | |
// d1: 41 5d popq %r13 | |
// d3: 41 5e popq %r14 | |
// d5: 41 5f popq %r15 | |
// d7: 5d popq %rbp | |
// d8: ff 25 00 00 00 00 jmpq *(%rip) # 0xde <_JIT_ENTRY+0xde> | |
// 00000000000000da: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// de: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0xe5 <_JIT_ENTRY+0xe5> | |
// 00000000000000e1: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// e5: 49 89 86 28 01 00 00 movq %rax, 0x128(%r14) | |
// ec: 49 29 dd subq %rbx, %r13 | |
// ef: 49 83 c5 b8 addq $-0x48, %r13 | |
// f3: 49 c1 ed 03 shrq $0x3, %r13 | |
// f7: 44 89 6b 40 movl %r13d, 0x40(%rbx) | |
// fb: 31 c0 xorl %eax, %eax | |
// fd: 48 83 c4 08 addq $0x8, %rsp | |
// 101: 5b popq %rbx | |
// 102: 41 5c popq %r12 | |
// 104: 41 5d popq %r13 | |
// 106: 41 5e popq %r14 | |
// 108: 41 5f popq %r15 | |
// 10a: 5d popq %rbp | |
// 10b: c3 retq | |
// 10c: | |
static const unsigned char _LOAD_ATTR_code_body[269] = { | |
0x55, 0x41, 0x57, 0x41, 0x56, 0x41, 0x55, 0x41, | |
0x54, 0x53, 0x50, 0x49, 0x89, 0xd6, 0x49, 0x89, | |
0xf7, 0x48, 0x89, 0xfb, 0x4c, 0x8d, 0x6e, 0xf8, | |
0x4c, 0x8b, 0x66, 0xf8, 0x48, 0x8b, 0x07, 0x48, | |
0x8b, 0x40, 0x20, 0x8b, 0x2d, 0x00, 0x00, 0x00, | |
0x00, 0x89, 0xe9, 0x81, 0xe1, 0xfe, 0xff, 0x00, | |
0x00, 0x48, 0x8b, 0x74, 0x88, 0x18, 0x40, 0xf6, | |
0xc5, 0x01, 0x74, 0x2b, 0x48, 0xc7, 0x04, 0x24, | |
0x00, 0x00, 0x00, 0x00, 0x48, 0x89, 0xe2, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x85, 0xc0, 0x74, 0x33, 0x48, 0x8b, 0x04, 0x24, | |
0x49, 0x89, 0x45, 0x00, 0xf6, 0x05, 0x00, 0x00, | |
0x00, 0x00, 0x01, 0x75, 0x55, 0xeb, 0x56, 0x4c, | |
0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, | |
0x48, 0x89, 0x04, 0x24, 0x49, 0x8b, 0x0c, 0x24, | |
0x85, 0xc9, 0x78, 0x29, 0x48, 0xff, 0xc9, 0x49, | |
0x89, 0x0c, 0x24, 0x75, 0x1c, 0xeb, 0x11, 0x49, | |
0x8b, 0x04, 0x24, 0x85, 0xc0, 0x78, 0x12, 0x48, | |
0xff, 0xc8, 0x49, 0x89, 0x04, 0x24, 0x75, 0x09, | |
0x4c, 0x89, 0xe7, 0xff, 0x15, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x04, 0x24, 0x48, 0x85, 0xc0, | |
0x74, 0x34, 0x45, 0x31, 0xe4, 0x49, 0x89, 0x45, | |
0x00, 0xf6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, | |
0x74, 0x03, 0x4d, 0x89, 0x27, 0x83, 0xe5, 0x01, | |
0x49, 0x8d, 0x34, 0xef, 0x48, 0x89, 0xdf, 0x4c, | |
0x89, 0xf2, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5d, 0x41, 0x5e, 0x41, 0x5f, 0x5d, | |
0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8b, | |
0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x89, 0x86, | |
0x28, 0x01, 0x00, 0x00, 0x49, 0x29, 0xdd, 0x49, | |
0x83, 0xc5, 0xb8, 0x49, 0xc1, 0xed, 0x03, 0x44, | |
0x89, 0x6b, 0x40, 0x31, 0xc0, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5d, 0x41, 0x5e, | |
0x41, 0x5f, 0x5d, 0xc3, | |
}; | |
static const Hole _LOAD_ATTR_code_holes[9] = { | |
{0x25, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x4c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x5e, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5}, | |
{0x6c, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x9d, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0xb3, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x5}, | |
{0xda, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
{0xe1, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x24}, | |
}; | |
// 0: | |
// 0: OPARG | |
// 8: &_PyObject_GetMethod+0x0 | |
// 10: &PyObject_GetAttr+0x0 | |
// 18: &_Py_Dealloc+0x0 | |
// 20: CONTINUE | |
// 28: EXECUTOR | |
static const unsigned char _LOAD_ATTR_data_body[49] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LOAD_ATTR_data_holes[7] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPARG, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_PyObject_GetMethod, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_ZERO, &PyObject_GetAttr, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x28, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
}; | |
// _LOAD_ATTR_CLASS_0 | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ATTR_CLASS_0.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 48 89 d3 movq %rdx, %rbx | |
// b: 49 89 f6 movq %rsi, %r14 | |
// e: 49 89 ff movq %rdi, %r15 | |
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 15: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4 | |
// 1c: 41 8b 04 24 movl (%r12), %eax | |
// 20: ff c0 incl %eax | |
// 22: 74 04 je 0x28 <_JIT_ENTRY+0x28> | |
// 24: 41 89 04 24 movl %eax, (%r12) | |
// 28: 48 8b 07 movq (%rdi), %rax | |
// 2b: 85 c0 testl %eax, %eax | |
// 2d: 78 0e js 0x3d <_JIT_ENTRY+0x3d> | |
// 2f: 48 ff c8 decq %rax | |
// 32: 48 89 07 movq %rax, (%rdi) | |
// 35: 75 06 jne 0x3d <_JIT_ENTRY+0x3d> | |
// 37: ff 15 00 00 00 00 callq *(%rip) # 0x3d <_JIT_ENTRY+0x3d> | |
// 0000000000000039: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 3d: 4d 89 66 f8 movq %r12, -0x8(%r14) | |
// 41: 4c 89 ff movq %r15, %rdi | |
// 44: 4c 89 f6 movq %r14, %rsi | |
// 47: 48 89 da movq %rbx, %rdx | |
// 4a: 48 83 c4 08 addq $0x8, %rsp | |
// 4e: 5b popq %rbx | |
// 4f: 41 5c popq %r12 | |
// 51: 41 5e popq %r14 | |
// 53: 41 5f popq %r15 | |
// 55: ff 25 00 00 00 00 jmpq *(%rip) # 0x5b <_JIT_ENTRY+0x5b> | |
// 0000000000000057: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 55: | |
static const unsigned char _LOAD_ATTR_CLASS_0_code_body[86] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89, | |
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x4c, 0x8b, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x41, 0x8b, 0x04, 0x24, | |
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x04, 0x24, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x66, | |
0xf8, 0x4c, 0x89, 0xff, 0x4c, 0x89, 0xf6, 0x48, | |
0x89, 0xda, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, | |
0x5c, 0x41, 0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _LOAD_ATTR_CLASS_0_code_holes[3] = { | |
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x39, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: &_Py_Dealloc+0x0 | |
static const unsigned char _LOAD_ATTR_CLASS_0_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LOAD_ATTR_CLASS_0_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _LOAD_ATTR_CLASS_1 | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ATTR_CLASS_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 48 89 d3 movq %rdx, %rbx | |
// b: 49 89 f6 movq %rsi, %r14 | |
// e: 49 89 ff movq %rdi, %r15 | |
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 15: 4c 8b 25 00 00 00 00 movq (%rip), %r12 # 0x1c <_JIT_ENTRY+0x1c> | |
// 0000000000000018: R_X86_64_REX_GOTPCRELX _JIT_OPERAND-0x4 | |
// 1c: 41 8b 04 24 movl (%r12), %eax | |
// 20: ff c0 incl %eax | |
// 22: 74 04 je 0x28 <_JIT_ENTRY+0x28> | |
// 24: 41 89 04 24 movl %eax, (%r12) | |
// 28: 48 8b 07 movq (%rdi), %rax | |
// 2b: 85 c0 testl %eax, %eax | |
// 2d: 78 0e js 0x3d <_JIT_ENTRY+0x3d> | |
// 2f: 48 ff c8 decq %rax | |
// 32: 48 89 07 movq %rax, (%rdi) | |
// 35: 75 06 jne 0x3d <_JIT_ENTRY+0x3d> | |
// 37: ff 15 00 00 00 00 callq *(%rip) # 0x3d <_JIT_ENTRY+0x3d> | |
// 0000000000000039: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 3d: 4d 89 66 f8 movq %r12, -0x8(%r14) | |
// 41: 49 c7 06 00 00 00 00 movq $0x0, (%r14) | |
// 48: 49 83 c6 08 addq $0x8, %r14 | |
// 4c: 4c 89 ff movq %r15, %rdi | |
// 4f: 4c 89 f6 movq %r14, %rsi | |
// 52: 48 89 da movq %rbx, %rdx | |
// 55: 48 83 c4 08 addq $0x8, %rsp | |
// 59: 5b popq %rbx | |
// 5a: 41 5c popq %r12 | |
// 5c: 41 5e popq %r14 | |
// 5e: 41 5f popq %r15 | |
// 60: ff 25 00 00 00 00 jmpq *(%rip) # 0x66 <_JIT_ENTRY+0x66> | |
// 0000000000000062: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 60: | |
static const unsigned char _LOAD_ATTR_CLASS_1_code_body[97] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x48, 0x89, 0xd3, 0x49, 0x89, 0xf6, 0x49, 0x89, | |
0xff, 0x48, 0x8b, 0x7e, 0xf8, 0x4c, 0x8b, 0x25, | |
0x00, 0x00, 0x00, 0x00, 0x41, 0x8b, 0x04, 0x24, | |
0xff, 0xc0, 0x74, 0x04, 0x41, 0x89, 0x04, 0x24, | |
0x48, 0x8b, 0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, | |
0xff, 0xc8, 0x48, 0x89, 0x07, 0x75, 0x06, 0xff, | |
0x15, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x89, 0x66, | |
0xf8, 0x49, 0xc7, 0x06, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x83, 0xc6, 0x08, 0x4c, 0x89, 0xff, 0x4c, | |
0x89, 0xf6, 0x48, 0x89, 0xda, 0x48, 0x83, 0xc4, | |
0x08, 0x5b, 0x41, 0x5c, 0x41, 0x5e, 0x41, 0x5f, | |
}; | |
static const Hole _LOAD_ATTR_CLASS_1_code_holes[3] = { | |
{0x18, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, -0x4}, | |
{0x39, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: &_Py_Dealloc+0x0 | |
static const unsigned char _LOAD_ATTR_CLASS_1_data_body[17] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LOAD_ATTR_CLASS_1_data_holes[3] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
}; | |
// _LOAD_ATTR_INSTANCE_VALUE_0 | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ATTR_INSTANCE_VALUE_0.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |
// 0000000000000000 <_JIT_ENTRY>: | |
// 0: 41 57 pushq %r15 | |
// 2: 41 56 pushq %r14 | |
// 4: 41 54 pushq %r12 | |
// 6: 53 pushq %rbx | |
// 7: 50 pushq %rax | |
// 8: 49 89 d7 movq %rdx, %r15 | |
// b: 48 89 f3 movq %rsi, %rbx | |
// e: 49 89 fe movq %rdi, %r14 | |
// 11: 48 8b 7e f8 movq -0x8(%rsi), %rdi | |
// 15: 48 8b 47 e8 movq -0x18(%rdi), %rax | |
// 19: 0f b7 0d 00 00 00 00 movzwl (%rip), %ecx # 0x20 <_JIT_ENTRY+0x20> | |
// 000000000000001c: R_X86_64_GOTPCREL _JIT_OPERAND-0x4 | |
// 20: 4c 8b 64 c8 01 movq 0x1(%rax,%rcx,8), %r12 | |
// 25: 4d 85 e4 testq %r12, %r12 | |
// 28: 74 3f je 0x69 <_JIT_ENTRY+0x69> | |
// 2a: 41 8b 04 24 movl (%r12), %eax | |
// 2e: ff c0 incl %eax | |
// 30: 74 04 je 0x36 <_JIT_ENTRY+0x36> | |
// 32: 41 89 04 24 movl %eax, (%r12) | |
// 36: 48 8b 07 movq (%rdi), %rax | |
// 39: 85 c0 testl %eax, %eax | |
// 3b: 78 0e js 0x4b <_JIT_ENTRY+0x4b> | |
// 3d: 48 ff c8 decq %rax | |
// 40: 48 89 07 movq %rax, (%rdi) | |
// 43: 75 06 jne 0x4b <_JIT_ENTRY+0x4b> | |
// 45: ff 15 00 00 00 00 callq *(%rip) # 0x4b <_JIT_ENTRY+0x4b> | |
// 0000000000000047: R_X86_64_GOTPCRELX _Py_Dealloc-0x4 | |
// 4b: 4c 89 63 f8 movq %r12, -0x8(%rbx) | |
// 4f: 4c 89 f7 movq %r14, %rdi | |
// 52: 48 89 de movq %rbx, %rsi | |
// 55: 4c 89 fa movq %r15, %rdx | |
// 58: 48 83 c4 08 addq $0x8, %rsp | |
// 5c: 5b popq %rbx | |
// 5d: 41 5c popq %r12 | |
// 5f: 41 5e popq %r14 | |
// 61: 41 5f popq %r15 | |
// 63: ff 25 00 00 00 00 jmpq *(%rip) # 0x69 <_JIT_ENTRY+0x69> | |
// 0000000000000065: R_X86_64_GOTPCRELX _JIT_CONTINUE-0x4 | |
// 69: 48 8b 05 00 00 00 00 movq (%rip), %rax # 0x70 <_JIT_ENTRY+0x70> | |
// 000000000000006c: R_X86_64_REX_GOTPCRELX _JIT_EXECUTOR-0x4 | |
// 70: 49 89 87 28 01 00 00 movq %rax, 0x128(%r15) | |
// 77: 4c 29 f3 subq %r14, %rbx | |
// 7a: 48 83 c3 b8 addq $-0x48, %rbx | |
// 7e: 48 c1 eb 03 shrq $0x3, %rbx | |
// 82: 41 89 5e 40 movl %ebx, 0x40(%r14) | |
// 86: 49 8b 06 movq (%r14), %rax | |
// 89: 8b 0d 00 00 00 00 movl (%rip), %ecx # 0x8f <_JIT_ENTRY+0x8f> | |
// 000000000000008b: R_X86_64_GOTPCRELX _JIT_TARGET-0x4 | |
// 8f: 48 8d 04 48 leaq (%rax,%rcx,2), %rax | |
// 93: 48 05 c8 00 00 00 addq $0xc8, %rax | |
// 99: 48 83 c4 08 addq $0x8, %rsp | |
// 9d: 5b popq %rbx | |
// 9e: 41 5c popq %r12 | |
// a0: 41 5e popq %r14 | |
// a2: 41 5f popq %r15 | |
// a4: c3 retq | |
// a5: | |
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_0_code_body[166] = { | |
0x41, 0x57, 0x41, 0x56, 0x41, 0x54, 0x53, 0x50, | |
0x49, 0x89, 0xd7, 0x48, 0x89, 0xf3, 0x49, 0x89, | |
0xfe, 0x48, 0x8b, 0x7e, 0xf8, 0x48, 0x8b, 0x47, | |
0xe8, 0x0f, 0xb7, 0x0d, 0x00, 0x00, 0x00, 0x00, | |
0x4c, 0x8b, 0x64, 0xc8, 0x01, 0x4d, 0x85, 0xe4, | |
0x74, 0x3f, 0x41, 0x8b, 0x04, 0x24, 0xff, 0xc0, | |
0x74, 0x04, 0x41, 0x89, 0x04, 0x24, 0x48, 0x8b, | |
0x07, 0x85, 0xc0, 0x78, 0x0e, 0x48, 0xff, 0xc8, | |
0x48, 0x89, 0x07, 0x75, 0x06, 0xff, 0x15, 0x00, | |
0x00, 0x00, 0x00, 0x4c, 0x89, 0x63, 0xf8, 0x4c, | |
0x89, 0xf7, 0x48, 0x89, 0xde, 0x4c, 0x89, 0xfa, | |
0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, 0x41, | |
0x5e, 0x41, 0x5f, 0xff, 0x25, 0x00, 0x00, 0x00, | |
0x00, 0x48, 0x8b, 0x05, 0x00, 0x00, 0x00, 0x00, | |
0x49, 0x89, 0x87, 0x28, 0x01, 0x00, 0x00, 0x4c, | |
0x29, 0xf3, 0x48, 0x83, 0xc3, 0xb8, 0x48, 0xc1, | |
0xeb, 0x03, 0x41, 0x89, 0x5e, 0x40, 0x49, 0x8b, | |
0x06, 0x8b, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x48, | |
0x8d, 0x04, 0x48, 0x48, 0x05, 0xc8, 0x00, 0x00, | |
0x00, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0x41, 0x5c, | |
0x41, 0x5e, 0x41, 0x5f, 0xc3, | |
}; | |
static const Hole _LOAD_ATTR_INSTANCE_VALUE_0_code_holes[6] = { | |
{0x1c, HoleKind_R_X86_64_GOTPCREL, HoleValue_DATA, NULL, -0x4}, | |
{0x47, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x4}, | |
{0x65, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0xc}, | |
{0x6c, HoleKind_R_X86_64_REX_GOTPCRELX, HoleValue_DATA, NULL, 0x14}, | |
{0x8b, HoleKind_R_X86_64_GOTPCRELX, HoleValue_DATA, NULL, 0x1c}, | |
}; | |
// 0: | |
// 0: OPERAND | |
// 8: &_Py_Dealloc+0x0 | |
// 10: CONTINUE | |
// 18: EXECUTOR | |
// 20: TARGET | |
static const unsigned char _LOAD_ATTR_INSTANCE_VALUE_0_data_body[41] = { | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
}; | |
static const Hole _LOAD_ATTR_INSTANCE_VALUE_0_data_holes[6] = { | |
{0x0, HoleKind_R_X86_64_64, HoleValue_OPERAND, NULL, 0x0}, | |
{0x8, HoleKind_R_X86_64_64, HoleValue_ZERO, &_Py_Dealloc, 0x0}, | |
{0x10, HoleKind_R_X86_64_64, HoleValue_CONTINUE, NULL, 0x0}, | |
{0x18, HoleKind_R_X86_64_64, HoleValue_EXECUTOR, NULL, 0x0}, | |
{0x20, HoleKind_R_X86_64_64, HoleValue_TARGET, NULL, 0x0}, | |
}; | |
// _LOAD_ATTR_INSTANCE_VALUE_1 | |
// | |
// /tmp/tmp2mfmnab2/_LOAD_ATTR_INSTANCE_VALUE_1.o: file format elf64-x86-64 | |
// | |
// Disassembly of section .text: | |
// | |