-
-
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, | |