Skip to content

Instantly share code, notes, and snippets.

@gerdr
Created February 19, 2013 22:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gerdr/4990845 to your computer and use it in GitHub Desktop.
Save gerdr/4990845 to your computer and use it in GitHub Desktop.
chunk @m42_core
ptr %ip = $0
i64 %ia, %ib
f64 %fa, %fb
ptr %pa, %pb
jmp ptr(%ip)
@.set_ia:
lea %ip, val(%ip[1])
mov %ia, i64(%ip)
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.set_ib:
lea %ip, val(%ip[1])
mov %ib, i64(%ip)
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.add_ia:
add %ia, %ia, %ib
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.set_fa:
lea %ip, val(%ip[1])
mov %fa, f64(%ip)
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.set_fb:
lea %ip, val(%ip[1])
mov %fb, f64(%ip)
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.add_fa:
fadd %fa, %fa, %fb
lea %ip, val(%ip[1])
jmp ptr(%ip)
@.ret_ia:
ret %ia
@.ret_fa:
ret %fa
x86_64-w64-mingw32-objdump -d src/core.o | less
src/core.o: file format pe-x86-64
Disassembly of section .text:
0000000000000000 <m42_core>:
0: 48 83 ec 18 sub $0x18,%rsp
4: 4c 8b 01 mov (%rcx),%r8
7: 41 ff e0 jmpq *%r8
a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
0000000000000010 <m42_core__set_ia>:
10: 48 8b 41 08 mov 0x8(%rcx),%rax
14: 48 83 c1 10 add $0x10,%rcx
18: 4c 8b 01 mov (%rcx),%r8
1b: 41 ff e0 jmpq *%r8
1e: 66 90 xchg %ax,%ax
0000000000000020 <m42_core__set_ib>:
20: 48 8b 51 08 mov 0x8(%rcx),%rdx
24: 48 83 c1 10 add $0x10,%rcx
28: 4c 8b 01 mov (%rcx),%r8
2b: 41 ff e0 jmpq *%r8
2e: 66 90 xchg %ax,%ax
0000000000000030 <m42_core__add_ia>:
30: 48 83 c1 08 add $0x8,%rcx
34: 48 01 d0 add %rdx,%rax
37: 4c 8b 01 mov (%rcx),%r8
3a: 41 ff e0 jmpq *%r8
3d: 0f 1f 00 nopl (%rax)
0000000000000040 <m42_core__set_fa>:
40: f2 0f 10 41 08 movsd 0x8(%rcx),%xmm0
45: 48 83 c1 10 add $0x10,%rcx
49: 4c 8b 01 mov (%rcx),%r8
4c: 41 ff e0 jmpq *%r8
4f: 90 nop
0000000000000050 <m42_core__set_fb>:
50: f2 0f 10 49 08 movsd 0x8(%rcx),%xmm1
55: 48 83 c1 10 add $0x10,%rcx
59: 4c 8b 01 mov (%rcx),%r8
5c: 41 ff e0 jmpq *%r8
5f: 90 nop
0000000000000060 <m42_core__add_fa>:
60: 48 83 c1 08 add $0x8,%rcx
64: f2 0f 58 c1 addsd %xmm1,%xmm0
68: 4c 8b 01 mov (%rcx),%r8
6b: 41 ff e0 jmpq *%r8
6e: 66 90 xchg %ax,%ax
0000000000000070 <m42_core__ret_ia>:
70: 48 89 44 24 08 mov %rax,0x8(%rsp)
75: f2 0f 10 44 24 08 movsd 0x8(%rsp),%xmm0
7b: f2 0f 11 44 24 08 movsd %xmm0,0x8(%rsp)
81: 48 8b 44 24 08 mov 0x8(%rsp),%rax
86: 48 83 c4 18 add $0x18,%rsp
8a: c3 retq
8b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000000090 <m42_core__ret_fa>:
90: f2 0f 11 44 24 08 movsd %xmm0,0x8(%rsp)
96: 48 8b 44 24 08 mov 0x8(%rsp),%rax
9b: 48 83 c4 18 add $0x18,%rsp
9f: c3 retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment