Skip to content

Instantly share code, notes, and snippets.

@justinruggles
Created July 30, 2012 20:12
Show Gist options
  • Save justinruggles/3209795 to your computer and use it in GitHub Desktop.
Save justinruggles/3209795 to your computer and use it in GitHub Desktop.
Dump of assembler code for function ff_imdct_half_3dnow.pre:
0x085df9e7 <+0>: mov 0x4(%esp),%ebp
0x085df9eb <+4>: movd (%edx,%ebx,4),%mm0
0x085df9ef <+8>: movd -0x4(%edi,%esi,4),%mm1
0x085df9f4 <+13>: punpckldq -0x4(%edx,%esi,4),%mm0
0x085df9f9 <+18>: punpckldq -0x4(%ebp,%esi,4),%mm1
0x085df9fe <+23>: movq %mm0,%mm2
0x085dfa01 <+26>: movq %mm1,%mm3
0x085dfa04 <+29>: psrlq $0x20,%mm3
0x085dfa08 <+33>: punpckldq %mm1,%mm3
0x085dfa0b <+36>: pfmul %mm1,%mm0
0x085dfa0f <+40>: pfmul %mm3,%mm2
0x085dfa13 <+44>: movq %mm0,%mm1
0x085dfa16 <+47>: punpckhdq %mm2,%mm0
0x085dfa19 <+50>: punpckldq %mm2,%mm1
0x085dfa1c <+53>: pxor %mm7,%mm0
0x085dfa1f <+56>: pfadd %mm1,%mm0
0x085dfa23 <+60>: mov (%esp),%ebp
0x085dfa26 <+63>: movzwl 0x0(%ebp,%esi,2),%ebp
=> 0x085dfa2b <+68>: movq %mm0,(%ecx,%ebp,8)
0x085dfa2f <+72>: inc %esi
0x085dfa30 <+73>: dec %ebx
0x085dfa31 <+74>: jns 0x85df9e7 <ff_imdct_half_3dnow.pre>
0x085dfa33 <+76>: mov %eax,%edi
0x085dfa35 <+78>: mov %ecx,%ebp
0x085dfa37 <+80>: mov %ecx,%eax
0x085dfa39 <+82>: mov (%edi),%ecx
0x085dfa3b <+84>: lea 0x85def70,%edx
0x085dfa41 <+90>: mov -0x8(%edx,%ecx,4),%edx
0x085dfa45 <+94>: call *%edx
0x085dfa47 <+96>: mov 0x10(%edi),%eax
0x085dfa4a <+99>: add %eax,%ebp
0x085dfa4c <+101>: shr %eax
0x085dfa4e <+103>: mov 0x8(%esp),%edx
0x085dfa52 <+107>: mov 0x4(%esp),%ebx
0x085dfa56 <+111>: sub %eax,%edx
0x085dfa58 <+113>: sub %eax,%ebx
0x085dfa5a <+115>: neg %eax
0x085dfa5c <+117>: mov $0xfffffff8,%ecx
0x085dfa61 <+122>: sub %eax,%ecx
End of assembler dump.
(gdb) info all-registers
eax 0x8ee8e20 149851680
ecx 0x8eef1a0 149877152
edx 0x8eef4a0 149877920
ebx 0x0 0
esp 0xffffcb70 0xffffcb70
ebp 0x23bb 0x23bb
esi 0x0 0
edi 0x8e885a0 149456288
eip 0x85dfa2b 0x85dfa2b <ff_imdct_half_3dnow.pre+68>
eflags 0x10247 [ CF PF ZF IF RF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 99
st0 -inf (raw 0xffff8000000000000000)
st1 -nan(0x8000000080000000) (raw 0xffff8000000080000000)
st2 -nan(0x8000000080000000) (raw 0xffff8000000080000000)
st3 -nan(0xbcafea69bf7ff0e3) (raw 0xffffbcafea69bf7ff0e3)
st4 -nan(0xc2bfc524c2900a13) (raw 0xffffc2bfc524c2900a13)
st5 0.7114965915679931640625 (raw 0x3ffeb624a40000000000)
st6 0.01220665872097015380859375 (raw 0x3ff8c7fe700000000000)
st7 -nan(0x080000000) (raw 0xffff0000000080000000)
fctrl 0x37f 895
fstat 0x61 97
ftag 0x82aa 33450
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
mxcsr 0x1f80 [ IM DM ZM OM UM PM ]
mm0 {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x80}}
mm1 {uint64 = 0x8000000080000000, v2_int32 = {0x80000000,
0x80000000}, v4_int16 = {0x0, 0x8000, 0x0, 0x8000}, v8_int8 = {0x0, 0x0,
0x0, 0x80, 0x0, 0x0, 0x0, 0x80}}
mm2 {uint64 = 0x8000000080000000, v2_int32 = {0x80000000,
0x80000000}, v4_int16 = {0x0, 0x8000, 0x0, 0x8000}, v8_int8 = {0x0, 0x0,
0x0, 0x80, 0x0, 0x0, 0x0, 0x80}}
mm3 {uint64 = 0xbcafea69bf7ff0e3, v2_int32 = {0xbf7ff0e3,
0xbcafea69}, v4_int16 = {0xf0e3, 0xbf7f, 0xea69, 0xbcaf}, v8_int8 = {0xe3,
0xf0, 0x7f, 0xbf, 0x69, 0xea, 0xaf, 0xbc}}
mm4 {uint64 = 0xc2bfc524c2900a13, v2_int32 = {0xc2900a13,
0xc2bfc524}, v4_int16 = {0xa13, 0xc290, 0xc524, 0xc2bf}, v8_int8 = {0x13,
0xa, 0x90, 0xc2, 0x24, 0xc5, 0xbf, 0xc2}}
mm5 {uint64 = 0xb624a40000000000, v2_int32 = {0x0, 0xb624a400},
v4_int16 = {0x0, 0x0, 0xa400, 0xb624}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
0xa4, 0x24, 0xb6}}
mm6 {uint64 = 0xc7fe700000000000, v2_int32 = {0x0, 0xc7fe7000},
v4_int16 = {0x0, 0x0, 0x7000, 0xc7fe}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x70, 0xfe, 0xc7}}
mm7 {uint64 = 0x80000000, v2_int32 = {0x80000000, 0x0}, v4_int16 = {
0x0, 0x8000, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0,
0x0}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment