Skip to content

Instantly share code, notes, and snippets.

@mcauser
Created March 8, 2017 05:07
Show Gist options
  • Save mcauser/10e5a47f516deda75c6776990fe58c24 to your computer and use it in GitHub Desktop.
Save mcauser/10e5a47f516deda75c6776990fe58c24 to your computer and use it in GitHub Desktop.
objdump nlrx64.o
Mikes-MBP-15:micropython mike$ cd mpy-cross
Mikes-MBP-15:mpy-cross mike$ make clean
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
rm -f mpy-cross
rm -f mpy-cross.map
rm -rf build
Mikes-MBP-15:mpy-cross mike$ make
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
mkdir -p build/genhdr
Generating build/genhdr/mpversion.h
GEN build/genhdr/qstr.i.last
GEN build/genhdr/qstr.split
GEN build/genhdr/qstrdefs.collected.h
QSTR updated
GEN build/genhdr/qstrdefs.generated.h
mkdir -p build/py
mkdir -p build/py/../extmod
mkdir -p build/py/../lib/embed
mkdir -p build/py/../lib/utils
CC ../py/mpstate.c
CC ../py/nlrx86.c
CC ../py/nlrx64.c
CC ../py/nlrthumb.c
CC ../py/nlrxtensa.c
CC ../py/nlrsetjmp.c
CC ../py/malloc.c
CC ../py/gc.c
CC ../py/qstr.c
CC ../py/vstr.c
CC ../py/mpprint.c
CC ../py/unicode.c
CC ../py/mpz.c
CC ../py/reader.c
CC ../py/lexer.c
CC ../py/parse.c
CC ../py/scope.c
CC ../py/compile.c
CC ../py/emitcommon.c
CC ../py/emitbc.c
CC ../py/asmbase.c
CC ../py/asmx64.c
CC ../py/emitnative.c
CC ../py/asmx86.c
CC ../py/emitnative.c
CC ../py/asmthumb.c
CC ../py/emitnative.c
CC ../py/emitinlinethumb.c
CC ../py/asmarm.c
CC ../py/emitnative.c
CC ../py/asmxtensa.c
CC ../py/emitnative.c
CC ../py/emitinlinextensa.c
CC ../py/formatfloat.c
CC ../py/parsenumbase.c
CC ../py/parsenum.c
CC ../py/emitglue.c
CC ../py/persistentcode.c
CC ../py/runtime.c
CC ../py/runtime_utils.c
CC ../py/nativeglue.c
CC ../py/stackctrl.c
CC ../py/argcheck.c
CC ../py/warning.c
CC ../py/map.c
CC ../py/obj.c
CC ../py/objarray.c
CC ../py/objattrtuple.c
CC ../py/objbool.c
CC ../py/objboundmeth.c
CC ../py/objcell.c
CC ../py/objclosure.c
CC ../py/objcomplex.c
CC ../py/objdict.c
CC ../py/objenumerate.c
CC ../py/objexcept.c
CC ../py/objfilter.c
CC ../py/objfloat.c
CC ../py/objfun.c
CC ../py/objgenerator.c
CC ../py/objgetitemiter.c
CC ../py/objint.c
CC ../py/objint_longlong.c
CC ../py/objint_mpz.c
CC ../py/objlist.c
CC ../py/objmap.c
CC ../py/objmodule.c
CC ../py/objobject.c
CC ../py/objpolyiter.c
CC ../py/objproperty.c
CC ../py/objnone.c
CC ../py/objnamedtuple.c
CC ../py/objrange.c
CC ../py/objreversed.c
CC ../py/objset.c
CC ../py/objsingleton.c
CC ../py/objslice.c
CC ../py/objstr.c
CC ../py/objstrunicode.c
CC ../py/objstringio.c
CC ../py/objtuple.c
CC ../py/objtype.c
CC ../py/objzip.c
CC ../py/opmethods.c
CC ../py/sequence.c
CC ../py/stream.c
CC ../py/binary.c
CC ../py/builtinimport.c
CC ../py/builtinevex.c
CC ../py/builtinhelp.c
CC ../py/modarray.c
CC ../py/modbuiltins.c
CC ../py/modcollections.c
CC ../py/modgc.c
CC ../py/modio.c
CC ../py/modmath.c
CC ../py/modcmath.c
CC ../py/modmicropython.c
CC ../py/modstruct.c
CC ../py/modsys.c
CC ../py/moduerrno.c
CC ../py/modthread.c
CC ../py/vm.c
CC ../py/bc.c
CC ../py/showbc.c
CC ../py/repl.c
CC ../py/smallint.c
CC ../py/frozenmod.c
CC ../py/../extmod/moductypes.c
CC ../py/../extmod/modujson.c
CC ../py/../extmod/modure.c
CC ../py/../extmod/moduzlib.c
CC ../py/../extmod/moduheapq.c
CC ../py/../extmod/modutimeq.c
CC ../py/../extmod/moduhashlib.c
CC ../py/../extmod/modubinascii.c
CC ../py/../extmod/virtpin.c
CC ../py/../extmod/machine_mem.c
CC ../py/../extmod/machine_pinbase.c
CC ../py/../extmod/machine_signal.c
CC ../py/../extmod/machine_pulse.c
CC ../py/../extmod/machine_i2c.c
CC ../py/../extmod/machine_spi.c
CC ../py/../extmod/modussl_axtls.c
CC ../py/../extmod/modussl_mbedtls.c
CC ../py/../extmod/modurandom.c
CC ../py/../extmod/moduselect.c
CC ../py/../extmod/modwebsocket.c
CC ../py/../extmod/modwebrepl.c
CC ../py/../extmod/modframebuf.c
CC ../py/../extmod/vfs.c
CC ../py/../extmod/vfs_reader.c
CC ../py/../extmod/vfs_fat.c
CC ../py/../extmod/vfs_fat_diskio.c
CC ../py/../extmod/vfs_fat_file.c
CC ../py/../extmod/vfs_fat_misc.c
CC ../py/../extmod/utime_mphal.c
CC ../py/../extmod/uos_dupterm.c
CC ../py/../lib/embed/abort_.c
CC ../py/../lib/utils/printf.c
CC main.c
CC gccollect.c
LINK mpy-cross
Undefined symbols for architecture x86_64:
"nlr_push_tail", referenced from:
_nlr_push in nlrx64.o
(maybe you meant: _nlr_push_tail)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [mpy-cross] Error 1
Mikes-MBP-15:mpy-cross mike$ objdump -xd build/py/nlrx64.o
-bash: objdump: command not found
Mikes-MBP-15:mpy-cross mike$ gobjdump -xd build/py/nlrx64.o
build/py/nlrx64.o: file format mach-o-x86-64
build/py/nlrx64.o
architecture: i386:x86-64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000000b6 0000000000000000 0000000000000000 00000130 2**0
CONTENTS, ALLOC, LOAD, RELOC, CODE
SYMBOL TABLE:
0000000000000063 g 0f SECT 01 0000 [.text] _nlr_jump
000000000000004b g 0f SECT 01 0000 [.text] _nlr_pop
0000000000000000 g 0f SECT 01 0000 [.text] _nlr_push
0000000000000031 g 0f SECT 01 0020 [.text] _nlr_push_tail
0000000000000000 g 01 UND 00 0000 _mp_state_ctx
0000000000000000 g 01 UND 00 0000 _nlr_jump_fail
0000000000000000 g 01 UND 00 0000 nlr_push_tail
Disassembly of section .text:
0000000000000000 <_nlr_push>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 48 8b 04 24 mov (%rsp),%rax
8: 48 89 47 10 mov %rax,0x10(%rdi)
c: 48 89 6f 18 mov %rbp,0x18(%rdi)
10: 48 89 67 20 mov %rsp,0x20(%rdi)
14: 48 89 5f 28 mov %rbx,0x28(%rdi)
18: 4c 89 67 30 mov %r12,0x30(%rdi)
1c: 4c 89 6f 38 mov %r13,0x38(%rdi)
20: 4c 89 77 40 mov %r14,0x40(%rdi)
24: 4c 89 7f 48 mov %r15,0x48(%rdi)
28: e9 00 00 00 00 jmpq 2d <_nlr_push+0x2d>
29: BRANCH32 nlr_push_tail
2d: 31 c0 xor %eax,%eax
2f: 5d pop %rbp
30: c3 retq
0000000000000031 <_nlr_push_tail>:
31: 55 push %rbp
32: 48 89 e5 mov %rsp,%rbp
35: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 3c <_nlr_push_tail+0xb>
38: GOT_LOAD _mp_state_ctx
3c: 48 8b 48 10 mov 0x10(%rax),%rcx
40: 48 89 0f mov %rcx,(%rdi)
43: 48 89 78 10 mov %rdi,0x10(%rax)
47: 31 c0 xor %eax,%eax
49: 5d pop %rbp
4a: c3 retq
000000000000004b <_nlr_pop>:
4b: 55 push %rbp
4c: 48 89 e5 mov %rsp,%rbp
4f: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 56 <_nlr_pop+0xb>
52: GOT_LOAD _mp_state_ctx
56: 48 8b 48 10 mov 0x10(%rax),%rcx
5a: 48 8b 09 mov (%rcx),%rcx
5d: 48 89 48 10 mov %rcx,0x10(%rax)
61: 5d pop %rbp
62: c3 retq
0000000000000063 <_nlr_jump>:
63: 48 8b 0d 00 00 00 00 mov 0x0(%rip),%rcx # 6a <_nlr_jump+0x7>
66: GOT_LOAD _mp_state_ctx
6a: 48 8b 41 10 mov 0x10(%rcx),%rax
6e: 48 85 c0 test %rax,%rax
71: 74 3a je ad <_nlr_jump+0x4a>
73: 48 89 78 08 mov %rdi,0x8(%rax)
77: 48 8b 10 mov (%rax),%rdx
7a: 48 89 51 10 mov %rdx,0x10(%rcx)
7e: 48 89 c1 mov %rax,%rcx
81: 4c 8b 79 48 mov 0x48(%rcx),%r15
85: 4c 8b 71 40 mov 0x40(%rcx),%r14
89: 4c 8b 69 38 mov 0x38(%rcx),%r13
8d: 4c 8b 61 30 mov 0x30(%rcx),%r12
91: 48 8b 59 28 mov 0x28(%rcx),%rbx
95: 48 8b 61 20 mov 0x20(%rcx),%rsp
99: 48 8b 69 18 mov 0x18(%rcx),%rbp
9d: 48 8b 41 10 mov 0x10(%rcx),%rax
a1: 48 89 04 24 mov %rax,(%rsp)
a5: 48 31 c0 xor %rax,%rax
a8: fe c0 inc %al
aa: c3 retq
ab: eb fe jmp ab <_nlr_jump+0x48>
ad: 55 push %rbp
ae: 48 89 e5 mov %rsp,%rbp
b1: e8 00 00 00 00 callq b6 <_nlr_jump+0x53>
b2: BRANCH32 _nlr_jump_fail
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment