Created
August 4, 2010 20:45
-
-
Save mysteriouspants/508767 to your computer and use it in GitHub Desktop.
Quake 3 finvsqrt plus corresponding assembler (x86)
This file contains hidden or 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
#include <stdio.h> | |
#include <math.h> | |
/* | |
** float q_rsqrt( float number ) | |
*/ | |
float Q_rsqrt( float number ) { | |
long i; | |
float x2, y; | |
const float threehalfs = 1.5F; | |
x2 = number * 0.5F; | |
y = number; | |
i = * ( long * ) &y; // evil floating point bit level hacking | |
i = 0x5f3759df - ( i >> 1 ); // what the fuck? | |
y = * ( float * ) &i; | |
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration | |
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed | |
#ifndef Q3_VM | |
#ifdef __linux__ | |
assert( !isnan(y) ); // bk010122 - FPE? | |
#endif | |
#endif | |
return y; | |
} | |
int main(int argc, char * args[]) { | |
float i = 10.0f; | |
printf("Normal: %f\n", 1.0f / sqrt(i)); | |
printf("Fast: %f\n", Q_rsqrt(i)); | |
return 0; | |
} |
This file contains hidden or 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
; created by gcc -S -g -O2 -mfpmath=387 -arch i386 -mtune=i386 Q_rsqrt.c -o Q_rsqrt.gcc.s | |
.section __DWARF,__debug_frame,regular,debug | |
Lsection__debug_frame: | |
.section __DWARF,__debug_info,regular,debug | |
Lsection__debug_info: | |
.section __DWARF,__debug_abbrev,regular,debug | |
Lsection__debug_abbrev: | |
.section __DWARF,__debug_aranges,regular,debug | |
Lsection__debug_aranges: | |
.section __DWARF,__debug_macinfo,regular,debug | |
Lsection__debug_macinfo: | |
.section __DWARF,__debug_line,regular,debug | |
Lsection__debug_line: | |
.section __DWARF,__debug_loc,regular,debug | |
Lsection__debug_loc: | |
.section __DWARF,__debug_pubnames,regular,debug | |
Lsection__debug_pubnames: | |
.section __DWARF,__debug_pubtypes,regular,debug | |
Lsection__debug_pubtypes: | |
.section __DWARF,__debug_inlined,regular,debug | |
Lsection__debug_inlined: | |
.section __DWARF,__debug_str,regular,debug | |
Lsection__debug_str: | |
.section __DWARF,__debug_ranges,regular,debug | |
Lsection__debug_ranges: | |
.section __DWARF,__debug_abbrev,regular,debug | |
Ldebug_abbrev0: | |
.section __DWARF,__debug_info,regular,debug | |
Ldebug_info0: | |
.section __DWARF,__debug_line,regular,debug | |
Ldebug_line0: | |
.text | |
Ltext0: | |
.align 2,0x90 | |
.globl _Q_rsqrt | |
_Q_rsqrt: | |
LFB18: | |
.file 1 "Q_rsqrt.c" | |
.loc 1 6 0 | |
LVL0: | |
pushl %ebp | |
LCFI0: | |
movl %esp, %ebp | |
LCFI1: | |
subl $16, %esp | |
LCFI2: | |
call L3 | |
"L00000000001$pb": | |
L3: | |
popl %ecx | |
flds 8(%ebp) | |
.loc 1 12 0 | |
fsts -8(%ebp) | |
LVL1: | |
.loc 1 14 0 | |
movl -8(%ebp), %edx | |
sarl %edx | |
movl $1597463007, %eax | |
subl %edx, %eax | |
movl %eax, -4(%ebp) | |
LVL2: | |
.loc 1 15 0 | |
flds -4(%ebp) | |
fxch %st(1) | |
fmuls LC0-"L00000000001$pb"(%ecx) | |
fmul %st(1), %st | |
fmul %st(1), %st | |
fsubrs LC1-"L00000000001$pb"(%ecx) | |
fmulp %st, %st(1) | |
.loc 1 25 0 | |
leave | |
ret | |
LFE18: | |
.cstring | |
LC3: | |
.ascii "Normal: %f\12\0" | |
LC5: | |
.ascii "Fast: %f\12\0" | |
.text | |
.align 2,0x90 | |
.globl _main | |
_main: | |
LFB19: | |
.loc 1 27 0 | |
LVL3: | |
pushl %ebp | |
LCFI3: | |
movl %esp, %ebp | |
LCFI4: | |
pushl %ebx | |
LCFI5: | |
subl $8, %esp | |
LCFI6: | |
call L6 | |
"L00000000002$pb": | |
L6: | |
popl %ebx | |
.loc 1 29 0 | |
pushl $1070873875 | |
pushl $1648904463 | |
leal LC3-"L00000000002$pb"(%ebx), %eax | |
pushl %eax | |
LCFI7: | |
call _printf | |
.loc 1 30 0 | |
movl $0x41200000, (%esp) | |
LCFI8: | |
call _Q_rsqrt | |
popl %eax | |
fstpl (%esp) | |
leal LC5-"L00000000002$pb"(%ebx), %eax | |
pushl %eax | |
LCFI9: | |
call _printf | |
.loc 1 32 0 | |
xorl %eax, %eax | |
movl -4(%ebp), %ebx | |
leave | |
ret | |
LFE19: | |
.literal4 | |
.align 2 | |
LC0: | |
.long 1056964608 | |
.align 2 | |
LC1: | |
.long 1069547520 | |
.section __DWARF,__debug_frame,regular,debug | |
Lframe0: | |
.set L$set$0,LECIE0-LSCIE0 | |
.long L$set$0 | |
LSCIE0: | |
.long 0xffffffff | |
.byte 0x1 | |
.ascii "\0" | |
.byte 0x1 | |
.byte 0x7c | |
.byte 0x8 | |
.byte 0xc | |
.byte 0x4 | |
.byte 0x4 | |
.byte 0x88 | |
.byte 0x1 | |
.align 2 | |
LECIE0: | |
LSFDE0: | |
.set L$set$1,LEFDE0-LASFDE0 | |
.long L$set$1 | |
LASFDE0: | |
.set L$set$2,Lframe0-Lsection__debug_frame | |
.long L$set$2 | |
.long LFB18 | |
.set L$set$3,LFE18-LFB18 | |
.long L$set$3 | |
.byte 0x4 | |
.set L$set$4,LCFI0-LFB18 | |
.long L$set$4 | |
.byte 0xe | |
.byte 0x8 | |
.byte 0x85 | |
.byte 0x2 | |
.byte 0x4 | |
.set L$set$5,LCFI1-LCFI0 | |
.long L$set$5 | |
.byte 0xd | |
.byte 0x5 | |
.align 2 | |
LEFDE0: | |
LSFDE2: | |
.set L$set$6,LEFDE2-LASFDE2 | |
.long L$set$6 | |
LASFDE2: | |
.set L$set$7,Lframe0-Lsection__debug_frame | |
.long L$set$7 | |
.long LFB19 | |
.set L$set$8,LFE19-LFB19 | |
.long L$set$8 | |
.byte 0x4 | |
.set L$set$9,LCFI3-LFB19 | |
.long L$set$9 | |
.byte 0xe | |
.byte 0x8 | |
.byte 0x85 | |
.byte 0x2 | |
.byte 0x4 | |
.set L$set$10,LCFI4-LCFI3 | |
.long L$set$10 | |
.byte 0xd | |
.byte 0x5 | |
.byte 0x4 | |
.set L$set$11,LCFI6-LCFI4 | |
.long L$set$11 | |
.byte 0x83 | |
.byte 0x3 | |
.byte 0x4 | |
.set L$set$12,LCFI7-LCFI6 | |
.long L$set$12 | |
.byte 0x2e | |
.byte 0x10 | |
.byte 0x4 | |
.set L$set$13,LCFI8-LCFI7 | |
.long L$set$13 | |
.byte 0x2e | |
.byte 0xc | |
.byte 0x4 | |
.set L$set$14,LCFI9-LCFI8 | |
.long L$set$14 | |
.byte 0x2e | |
.byte 0x10 | |
.align 2 | |
LEFDE2: | |
.text | |
Letext0: | |
.section __DWARF,__debug_loc,regular,debug | |
Ldebug_loc0: | |
LLST0: | |
.set L$set$15,LFB18-Ltext0 | |
.long L$set$15 | |
.set L$set$16,LCFI0-Ltext0 | |
.long L$set$16 | |
.word 0x2 | |
.byte 0x74 | |
.byte 0x4 | |
.set L$set$17,LCFI0-Ltext0 | |
.long L$set$17 | |
.set L$set$18,LCFI1-Ltext0 | |
.long L$set$18 | |
.word 0x2 | |
.byte 0x74 | |
.byte 0x8 | |
.set L$set$19,LCFI1-Ltext0 | |
.long L$set$19 | |
.set L$set$20,LFE18-Ltext0 | |
.long L$set$20 | |
.word 0x2 | |
.byte 0x75 | |
.byte 0x8 | |
.long 0x0 | |
.long 0x0 | |
LLST1: | |
.set L$set$21,LFB19-Ltext0 | |
.long L$set$21 | |
.set L$set$22,LCFI3-Ltext0 | |
.long L$set$22 | |
.word 0x2 | |
.byte 0x74 | |
.byte 0x4 | |
.set L$set$23,LCFI3-Ltext0 | |
.long L$set$23 | |
.set L$set$24,LCFI4-Ltext0 | |
.long L$set$24 | |
.word 0x2 | |
.byte 0x74 | |
.byte 0x8 | |
.set L$set$25,LCFI4-Ltext0 | |
.long L$set$25 | |
.set L$set$26,LFE19-Ltext0 | |
.long L$set$26 | |
.word 0x2 | |
.byte 0x75 | |
.byte 0x8 | |
.long 0x0 | |
.long 0x0 | |
.section __DWARF,__debug_info,regular,debug | |
.long 0x21e | |
.word 0x2 | |
.set L$set$27,Ldebug_abbrev0-Lsection__debug_abbrev | |
.long L$set$27 | |
.byte 0x4 | |
.byte 0x1 | |
.ascii "GNU C 4.2.1 (Apple Inc. build 5664)\0" | |
.byte 0x1 | |
.ascii "Q_rsqrt.c\0" | |
.ascii "/Users/cmiller/Desktop\0" | |
.byte 0x1 | |
.long Ltext0 | |
.long Letext0 | |
.set L$set$28,Ldebug_line0-Lsection__debug_line | |
.long L$set$28 | |
.byte 0x2 | |
.byte 0x1 | |
.byte 0x6 | |
.ascii "signed char\0" | |
.byte 0x2 | |
.byte 0x1 | |
.byte 0x8 | |
.ascii "unsigned char\0" | |
.byte 0x2 | |
.byte 0x2 | |
.byte 0x5 | |
.ascii "short int\0" | |
.byte 0x2 | |
.byte 0x2 | |
.byte 0x7 | |
.ascii "short unsigned int\0" | |
.byte 0x2 | |
.byte 0x4 | |
.byte 0x5 | |
.ascii "int\0" | |
.byte 0x2 | |
.byte 0x4 | |
.byte 0x7 | |
.ascii "unsigned int\0" | |
.byte 0x2 | |
.byte 0x8 | |
.byte 0x5 | |
.ascii "long long int\0" | |
.byte 0x2 | |
.byte 0x8 | |
.byte 0x7 | |
.ascii "long long unsigned int\0" | |
.byte 0x2 | |
.byte 0x4 | |
.byte 0x5 | |
.ascii "long int\0" | |
.byte 0x3 | |
.byte 0x4 | |
.byte 0x7 | |
.byte 0x2 | |
.byte 0x1 | |
.byte 0x6 | |
.ascii "char\0" | |
.byte 0x2 | |
.byte 0x4 | |
.byte 0x7 | |
.ascii "long unsigned int\0" | |
.byte 0x4 | |
.byte 0x4 | |
.long 0xf3 | |
.byte 0x2 | |
.byte 0x10 | |
.byte 0x4 | |
.ascii "long double\0" | |
.byte 0x2 | |
.byte 0x8 | |
.byte 0x4 | |
.ascii "double\0" | |
.byte 0x5 | |
.byte 0x1 | |
.set L$set$29,LASF0-Lsection__debug_str | |
.long L$set$29 | |
.byte 0x1 | |
.byte 0x6 | |
.byte 0x1 | |
.long 0x193 | |
.long LFB18 | |
.long LFE18 | |
.set L$set$30,LLST0-Lsection__debug_loc | |
.long L$set$30 | |
.byte 0x1 | |
.long 0x193 | |
.byte 0x6 | |
.ascii "number\0" | |
.byte 0x1 | |
.byte 0x6 | |
.long 0x193 | |
.byte 0x2 | |
.byte 0x91 | |
.byte 0x0 | |
.byte 0x7 | |
.ascii "i\0" | |
.byte 0x1 | |
.byte 0x7 | |
.long 0xe4 | |
.byte 0x2 | |
.byte 0x75 | |
.byte 0x7c | |
.byte 0x8 | |
.ascii "x2\0" | |
.byte 0x1 | |
.byte 0x8 | |
.long 0x193 | |
.byte 0x7 | |
.ascii "y\0" | |
.byte 0x1 | |
.byte 0x8 | |
.long 0x193 | |
.byte 0x2 | |
.byte 0x75 | |
.byte 0x78 | |
.byte 0x8 | |
.ascii "threehalfs\0" | |
.byte 0x1 | |
.byte 0x9 | |
.long 0x19c | |
.byte 0x0 | |
.byte 0x2 | |
.byte 0x4 | |
.byte 0x4 | |
.ascii "float\0" | |
.byte 0x9 | |
.long 0x193 | |
.byte 0x5 | |
.byte 0x1 | |
.set L$set$31,LASF1-Lsection__debug_str | |
.long L$set$31 | |
.byte 0x1 | |
.byte 0x1b | |
.byte 0x1 | |
.long 0xa2 | |
.long LFB19 | |
.long LFE19 | |
.set L$set$32,LLST1-Lsection__debug_loc | |
.long L$set$32 | |
.byte 0x1 | |
.long 0x1e7 | |
.byte 0x6 | |
.ascii "argc\0" | |
.byte 0x1 | |
.byte 0x1b | |
.long 0xa2 | |
.byte 0x2 | |
.byte 0x91 | |
.byte 0x0 | |
.byte 0x6 | |
.ascii "args\0" | |
.byte 0x1 | |
.byte 0x1b | |
.long 0x1e7 | |
.byte 0x2 | |
.byte 0x91 | |
.byte 0x4 | |
.byte 0x8 | |
.ascii "i\0" | |
.byte 0x1 | |
.byte 0x1c | |
.long 0x193 | |
.byte 0x0 | |
.byte 0x4 | |
.byte 0x4 | |
.long 0x110 | |
.byte 0xa | |
.long 0xa2 | |
.long 0x1f8 | |
.byte 0xb | |
.byte 0x0 | |
.byte 0xc | |
.ascii "__CFConstantStringClassReference\0" | |
.long 0x1ed | |
.byte 0x1 | |
.byte 0x1 | |
.byte 0x1 | |
.byte 0x0 | |
.section __DWARF,__debug_abbrev,regular,debug | |
.byte 0x1 | |
.byte 0x11 | |
.byte 0x1 | |
.byte 0x25 | |
.byte 0x8 | |
.byte 0x13 | |
.byte 0xb | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x1b | |
.byte 0x8 | |
.byte 0xe1,0x7f | |
.byte 0xc | |
.byte 0x11 | |
.byte 0x1 | |
.byte 0x12 | |
.byte 0x1 | |
.byte 0x10 | |
.byte 0x6 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x2 | |
.byte 0x24 | |
.byte 0x0 | |
.byte 0xb | |
.byte 0xb | |
.byte 0x3e | |
.byte 0xb | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x3 | |
.byte 0x24 | |
.byte 0x0 | |
.byte 0xb | |
.byte 0xb | |
.byte 0x3e | |
.byte 0xb | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x4 | |
.byte 0xf | |
.byte 0x0 | |
.byte 0xb | |
.byte 0xb | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x5 | |
.byte 0x2e | |
.byte 0x1 | |
.byte 0x3f | |
.byte 0xc | |
.byte 0x3 | |
.byte 0xe | |
.byte 0x3a | |
.byte 0xb | |
.byte 0x3b | |
.byte 0xb | |
.byte 0x27 | |
.byte 0xc | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x11 | |
.byte 0x1 | |
.byte 0x12 | |
.byte 0x1 | |
.byte 0x40 | |
.byte 0x6 | |
.byte 0xe1,0x7f | |
.byte 0xc | |
.byte 0x1 | |
.byte 0x13 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x6 | |
.byte 0x5 | |
.byte 0x0 | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x3a | |
.byte 0xb | |
.byte 0x3b | |
.byte 0xb | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x2 | |
.byte 0xa | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x7 | |
.byte 0x34 | |
.byte 0x0 | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x3a | |
.byte 0xb | |
.byte 0x3b | |
.byte 0xb | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x2 | |
.byte 0xa | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x8 | |
.byte 0x34 | |
.byte 0x0 | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x3a | |
.byte 0xb | |
.byte 0x3b | |
.byte 0xb | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x9 | |
.byte 0x26 | |
.byte 0x0 | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0xa | |
.byte 0x1 | |
.byte 0x1 | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x1 | |
.byte 0x13 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0xb | |
.byte 0x21 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0xc | |
.byte 0x34 | |
.byte 0x0 | |
.byte 0x3 | |
.byte 0x8 | |
.byte 0x49 | |
.byte 0x13 | |
.byte 0x3f | |
.byte 0xc | |
.byte 0x34 | |
.byte 0xc | |
.byte 0x3c | |
.byte 0xc | |
.byte 0x0 | |
.byte 0x0 | |
.byte 0x0 | |
.section __DWARF,__debug_pubnames,regular,debug | |
.long 0x23 | |
.word 0x2 | |
.set L$set$33,Ldebug_info0-Lsection__debug_info | |
.long L$set$33 | |
.long 0x222 | |
.long 0x12f | |
.ascii "Q_rsqrt\0" | |
.long 0x1a1 | |
.ascii "main\0" | |
.long 0x0 | |
.section __DWARF,__debug_pubtypes,regular,debug | |
.long 0xe | |
.word 0x2 | |
.set L$set$34,Ldebug_info0-Lsection__debug_info | |
.long L$set$34 | |
.long 0x222 | |
.long 0x0 | |
.section __DWARF,__debug_aranges,regular,debug | |
.long 0x1c | |
.word 0x2 | |
.set L$set$35,Ldebug_info0-Lsection__debug_info | |
.long L$set$35 | |
.byte 0x4 | |
.byte 0x0 | |
.word 0x0 | |
.word 0x0 | |
.long Ltext0 | |
.set L$set$36,Letext0-Ltext0 | |
.long L$set$36 | |
.long 0x0 | |
.long 0x0 | |
.section __DWARF,__debug_str,regular,debug | |
LASF1: | |
.ascii "main\0" | |
LASF0: | |
.ascii "Q_rsqrt\0" | |
.subsections_via_symbols |
This file contains hidden or 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
; made with clang -S -g -O2 Q_rsqrt.c -o Q_rsqrt.llvm.s | |
.section __TEXT,__text,regular,pure_instructions | |
.section __DWARF,__debug_frame,regular,debug | |
Lsection_debug_frame: | |
.section __DWARF,__debug_info,regular,debug | |
Lsection_info: | |
.section __DWARF,__debug_abbrev,regular,debug | |
Lsection_abbrev: | |
.section __DWARF,__debug_aranges,regular,debug | |
.section __DWARF,__debug_macinfo,regular,debug | |
.section __DWARF,__debug_line,regular,debug | |
Lsection_line: | |
.section __DWARF,__debug_loc,regular,debug | |
.section __DWARF,__debug_pubnames,regular,debug | |
.section __DWARF,__debug_pubtypes,regular,debug | |
.section __DWARF,__debug_str,regular,debug | |
Lsection_str: | |
.section __DWARF,__debug_ranges,regular,debug | |
Ldebug_range: | |
.section __DWARF,__debug_loc,regular,debug | |
Lsection_debug_loc: | |
.section __TEXT,__text,regular,pure_instructions | |
Ltext_begin: | |
.section __DATA,__data | |
.section __TEXT,__literal4,4byte_literals | |
.align 2 | |
LCPI0_0: ## constant pool float | |
.long 3204448256 ## float -5.000000e-01 | |
LCPI0_1: ## constant pool float | |
.long 1069547520 ## float 1.500000e+00 | |
.section __TEXT,__text,regular,pure_instructions | |
.globl _Q_rsqrt | |
.align 4, 0x90 | |
_Q_rsqrt: ## @Q_rsqrt | |
Leh_func_begin0: | |
Lfunc_begin0: | |
Ltmp2: | |
## BB#0: | |
pushq %rbp | |
Ltmp0: | |
movq %rsp, %rbp | |
Ltmp1: | |
##DEBUG_VALUE: Q_rsqrt:number <- XMM0+0 ## Q_rsqrt.c:6:22 | |
Ltmp3: | |
##DEBUG_VALUE: Q_rsqrt:number <- XMM0+0 ## Q_rsqrt.c:6:22 | |
Ltmp4: | |
##DEBUG_VALUE: threehalfs <- 1.500000e+00+0 ## Q_rsqrt.c:9:34 | |
movd %xmm0, %eax | |
shrl %eax | |
movl $1597463007, %ecx ## imm = 0x5F3759DF | |
subl %eax, %ecx | |
movd %ecx, %xmm1 | |
Ltmp5: | |
mulss LCPI0_0(%rip), %xmm0 ## Q_rsqrt.c:11:5 | |
Ltmp6: | |
mulss %xmm1, %xmm0 ## Q_rsqrt.c:16:5 | |
mulss %xmm1, %xmm0 ## Q_rsqrt.c:16:5 | |
addss LCPI0_1(%rip), %xmm0 ## Q_rsqrt.c:16:5 | |
mulss %xmm1, %xmm0 ## Q_rsqrt.c:16:5 | |
Ltmp7: | |
popq %rbp ## Q_rsqrt.c:24:5 | |
ret ## Q_rsqrt.c:24:5 | |
Ltmp8: | |
Lfunc_end0: | |
Leh_func_end0: | |
.section __TEXT,__literal8,8byte_literals | |
.align 3 | |
LCPI1_0: ## constant pool double | |
.quad 4599368272914696463 ## double 3.162278e-01 | |
LCPI1_1: ## constant pool double | |
.quad 4599358509341999104 ## double 3.156858e-01 | |
.section __TEXT,__text,regular,pure_instructions | |
.globl _main | |
.align 4, 0x90 | |
_main: ## @main | |
Leh_func_begin1: | |
Lfunc_begin1: | |
Ltmp11: | |
## BB#0: | |
pushq %rbp | |
Ltmp9: | |
movq %rsp, %rbp | |
Ltmp10: | |
##DEBUG_VALUE: main:argc <- EDI+0 ## Q_rsqrt.c:27:14 | |
##DEBUG_VALUE: main:args <- RSI+0 ## Q_rsqrt.c:27:27 | |
Ltmp12: | |
##DEBUG_VALUE: i <- 1.000000e+01+0 ## Q_rsqrt.c:28:17 | |
Ltmp13: | |
leaq L_.str(%rip), %rdi ## Q_rsqrt.c:29:2 | |
movsd LCPI1_0(%rip), %xmm0 | |
movb $1, %al | |
callq _printf ## Q_rsqrt.c:29:2 | |
Ltmp14: | |
##DEBUG_VALUE: x2 <- 5.000000e+00+0 ## Q_rsqrt.c:11:5[ Q_rsqrt.c:30:3 ] | |
Ltmp15: | |
##DEBUG_VALUE: threehalfs <- 1.500000e+00+0 ## Q_rsqrt.c:9:34[ Q_rsqrt.c:30:3 ] | |
Ltmp16: | |
##DEBUG_VALUE: Q_rsqrt:number <- 1.000000e+01+0 ## Q_rsqrt.c:6:22[ Q_rsqrt.c:30:3 ] | |
Ltmp17: | |
Ltmp18: | |
leaq L_.str1(%rip), %rdi ## Q_rsqrt.c:30:3 | |
movsd LCPI1_1(%rip), %xmm0 | |
movb $1, %al | |
callq _printf ## Q_rsqrt.c:30:3 | |
xorl %eax, %eax | |
Ltmp19: | |
popq %rbp ## Q_rsqrt.c:31:3 | |
ret ## Q_rsqrt.c:31:3 | |
Ltmp20: | |
Lfunc_end1: | |
Leh_func_end1: | |
.section __TEXT,__cstring,cstring_literals | |
L_.str: ## @.str | |
.asciz "Normal: %f\n" | |
L_.str1: ## @.str1 | |
.asciz "Fast: %f\n" | |
.section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support | |
EH_frame0: | |
Lsection_eh_frame0: | |
Leh_frame_common0: | |
Lset0 = Leh_frame_common_end0-Leh_frame_common_begin0 ## Length of Common Information Entry | |
.long Lset0 | |
Leh_frame_common_begin0: | |
.long 0 ## CIE Identifier Tag | |
.byte 1 ## DW_CIE_VERSION | |
.asciz "zR" ## CIE Augmentation | |
.byte 1 ## CIE Code Alignment Factor | |
.byte 120 ## CIE Data Alignment Factor | |
.byte 16 ## CIE Return Address Column | |
.byte 1 ## Augmentation Size | |
.byte 16 ## FDE Encoding = pcrel | |
.byte 12 ## DW_CFA_def_cfa | |
.byte 7 ## Register | |
.byte 8 ## Offset | |
.byte 144 ## DW_CFA_offset + Reg (16) | |
.byte 1 ## Offset | |
.align 3 | |
Leh_frame_common_end0: | |
.globl _Q_rsqrt.eh | |
_Q_rsqrt.eh: | |
Lset1 = Leh_frame_end0-Leh_frame_begin0 ## Length of Frame Information Entry | |
.long Lset1 | |
Leh_frame_begin0: | |
Lset2 = Leh_frame_begin0-Leh_frame_common0 ## FDE CIE offset | |
.long Lset2 | |
Ltmp21: ## FDE initial location | |
.quad Leh_func_begin0-Ltmp21 | |
Lset3 = Leh_func_end0-Leh_func_begin0 ## FDE address range | |
.quad Lset3 | |
.byte 0 ## Augmentation size | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset4 = Ltmp0-Leh_func_begin0 | |
.long Lset4 | |
.byte 14 ## DW_CFA_def_cfa_offset | |
.byte 16 ## Offset | |
.byte 134 ## DW_CFA_offset + Reg (6) | |
.byte 2 ## Offset | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset5 = Ltmp1-Ltmp0 | |
.long Lset5 | |
.byte 13 ## DW_CFA_def_cfa_register | |
.byte 6 ## Register | |
.align 3 | |
Leh_frame_end0: | |
.globl _main.eh | |
_main.eh: | |
Lset6 = Leh_frame_end1-Leh_frame_begin1 ## Length of Frame Information Entry | |
.long Lset6 | |
Leh_frame_begin1: | |
Lset7 = Leh_frame_begin1-Leh_frame_common0 ## FDE CIE offset | |
.long Lset7 | |
Ltmp22: ## FDE initial location | |
.quad Leh_func_begin1-Ltmp22 | |
Lset8 = Leh_func_end1-Leh_func_begin1 ## FDE address range | |
.quad Lset8 | |
.byte 0 ## Augmentation size | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset9 = Ltmp9-Leh_func_begin1 | |
.long Lset9 | |
.byte 14 ## DW_CFA_def_cfa_offset | |
.byte 16 ## Offset | |
.byte 134 ## DW_CFA_offset + Reg (6) | |
.byte 2 ## Offset | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset10 = Ltmp10-Ltmp9 | |
.long Lset10 | |
.byte 13 ## DW_CFA_def_cfa_register | |
.byte 6 ## Register | |
.align 3 | |
Leh_frame_end1: | |
.section __TEXT,__text,regular,pure_instructions | |
Ltext_end: | |
.section __DATA,__data | |
Ldata_end: | |
.section __TEXT,__text,regular,pure_instructions | |
Lsection_end1: | |
.section __DWARF,__debug_frame,regular,debug | |
Ldebug_frame_common: | |
Lset11 = Ldebug_frame_common_end-Ldebug_frame_common_begin ## Length of Common Information Entry | |
.long Lset11 | |
Ldebug_frame_common_begin: | |
.long 4294967295 ## CIE Identifier Tag | |
.byte 1 ## CIE Version | |
.byte 0 ## CIE Augmentation | |
.byte 1 ## CIE Code Alignment Factor | |
.byte 120 ## CIE Data Alignment Factor | |
.byte 16 ## CIE RA Column | |
.byte 12 ## DW_CFA_def_cfa | |
.byte 7 ## Register | |
.byte 8 ## Offset | |
.byte 144 ## DW_CFA_offset + Reg (16) | |
.byte 1 ## Offset | |
.align 2 | |
Ldebug_frame_common_end: | |
Lset12 = Ldebug_frame_end0-Ldebug_frame_begin0 ## Length of Frame Information Entry | |
.long Lset12 | |
Ldebug_frame_begin0: | |
Lset13 = Ldebug_frame_common-Lsection_debug_frame ## FDE CIE offset | |
.long Lset13 | |
.quad Lfunc_begin0 ## FDE initial location | |
Lset14 = Lfunc_end0-Lfunc_begin0 ## FDE address range | |
.quad Lset14 | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset15 = Ltmp0-Lfunc_begin0 | |
.long Lset15 | |
.byte 14 ## DW_CFA_def_cfa_offset | |
.byte 16 ## Offset | |
.byte 134 ## DW_CFA_offset + Reg (6) | |
.byte 2 ## Offset | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset16 = Ltmp1-Ltmp0 | |
.long Lset16 | |
.byte 13 ## DW_CFA_def_cfa_register | |
.byte 6 ## Register | |
.align 2 | |
Ldebug_frame_end0: | |
Lset17 = Ldebug_frame_end1-Ldebug_frame_begin1 ## Length of Frame Information Entry | |
.long Lset17 | |
Ldebug_frame_begin1: | |
Lset18 = Ldebug_frame_common-Lsection_debug_frame ## FDE CIE offset | |
.long Lset18 | |
.quad Lfunc_begin1 ## FDE initial location | |
Lset19 = Lfunc_end1-Lfunc_begin1 ## FDE address range | |
.quad Lset19 | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset20 = Ltmp9-Lfunc_begin1 | |
.long Lset20 | |
.byte 14 ## DW_CFA_def_cfa_offset | |
.byte 16 ## Offset | |
.byte 134 ## DW_CFA_offset + Reg (6) | |
.byte 2 ## Offset | |
.byte 4 ## DW_CFA_advance_loc4 | |
Lset21 = Ltmp10-Ltmp9 | |
.long Lset21 | |
.byte 13 ## DW_CFA_def_cfa_register | |
.byte 6 ## Register | |
.align 2 | |
Ldebug_frame_end1: | |
.section __DWARF,__debug_info,regular,debug | |
Linfo_begin1: | |
.long 552 ## Length of Compilation Unit Info | |
.short 2 ## DWARF version number | |
Lset22 = Labbrev_begin-Lsection_abbrev ## Offset Into Abbrev. Section | |
.long Lset22 | |
.byte 8 ## Address Size (in bytes) | |
.byte 1 ## Abbrev [1] 0xb:0x21d DW_TAG_compile_unit | |
.ascii "Apple clang version 2.0 (tags/Apple/clang-139) (based on LLVM 2.9svn)" ## DW_AT_producer | |
.byte 0 | |
.byte 12 ## DW_AT_language | |
.ascii "Q_rsqrt.c" ## DW_AT_name | |
.byte 0 | |
.quad 0 ## DW_AT_entry_pc | |
.long 0 ## DW_AT_stmt_list | |
.ascii "/Users/cmiller/Desktop/508767" ## DW_AT_comp_dir | |
.byte 0 | |
.byte 1 ## DW_AT_APPLE_optimized | |
.byte 2 ## Abbrev [2] 0x88:0x9 DW_TAG_base_type | |
.byte 4 ## DW_AT_encoding | |
.ascii "float" ## DW_AT_name | |
.byte 0 | |
.byte 4 ## DW_AT_byte_size | |
.byte 3 ## Abbrev [3] 0x91:0x86 DW_TAG_subprogram | |
.long 279 ## DW_AT_sibling | |
.ascii "Q_rsqrt" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 6 ## DW_AT_decl_line | |
.byte 1 ## DW_AT_prototyped | |
.long 136 ## DW_AT_type | |
.byte 1 ## DW_AT_external | |
.quad Lfunc_begin0 ## DW_AT_low_pc | |
.quad Lfunc_end0 ## DW_AT_high_pc | |
.byte 1 ## DW_AT_frame_base | |
.byte 86 | |
.byte 1 ## DW_AT_inline | |
.byte 4 ## Abbrev [4] 0xb9:0x10 DW_TAG_formal_parameter | |
.ascii "number" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 6 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 1 ## DW_AT_location | |
.byte 97 | |
.byte 5 ## Abbrev [5] 0xc9:0x4d DW_TAG_lexical_block | |
.quad Ltmp4 ## DW_AT_low_pc | |
.quad Ltmp8 ## DW_AT_high_pc | |
.byte 6 ## Abbrev [6] 0xda:0x1f DW_TAG_variable | |
.ascii "threehalfs" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 9 ## DW_AT_decl_line | |
.long 496 ## DW_AT_type | |
.byte 4 ## DW_AT_const_value | |
.byte 0 | |
.byte 0 | |
.byte 192 | |
.byte 63 | |
.quad Ltmp4 ## DW_AT_start_scope | |
.byte 7 ## Abbrev [7] 0xf9:0x9 DW_TAG_variable | |
.byte 105 ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 7 ## DW_AT_decl_line | |
.long 519 ## DW_AT_type | |
.byte 7 ## Abbrev [7] 0x102:0xa DW_TAG_variable | |
.ascii "x2" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 8 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 7 ## Abbrev [7] 0x10c:0x9 DW_TAG_variable | |
.byte 121 ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 8 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 0 ## End Of Children Mark | |
.byte 0 ## End Of Children Mark | |
.byte 2 ## Abbrev [2] 0x117:0x7 DW_TAG_base_type | |
.byte 5 ## DW_AT_encoding | |
.ascii "int" ## DW_AT_name | |
.byte 0 | |
.byte 4 ## DW_AT_byte_size | |
.byte 8 ## Abbrev [8] 0x11e:0xd2 DW_TAG_subprogram | |
.long 496 ## DW_AT_sibling | |
.ascii "main" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 27 ## DW_AT_decl_line | |
.byte 1 ## DW_AT_prototyped | |
.long 279 ## DW_AT_type | |
.byte 1 ## DW_AT_external | |
.quad Lfunc_begin1 ## DW_AT_low_pc | |
.quad Lfunc_end1 ## DW_AT_high_pc | |
.byte 1 ## DW_AT_frame_base | |
.byte 86 | |
.byte 4 ## Abbrev [4] 0x142:0xe DW_TAG_formal_parameter | |
.ascii "argc" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 27 ## DW_AT_decl_line | |
.long 279 ## DW_AT_type | |
.byte 1 ## DW_AT_location | |
.byte 85 | |
.byte 4 ## Abbrev [4] 0x150:0xe DW_TAG_formal_parameter | |
.ascii "args" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 27 ## DW_AT_decl_line | |
.long 545 ## DW_AT_type | |
.byte 1 ## DW_AT_location | |
.byte 84 | |
.byte 5 ## Abbrev [5] 0x15e:0x91 DW_TAG_lexical_block | |
.quad Ltmp12 ## DW_AT_low_pc | |
.quad Ltmp20 ## DW_AT_high_pc | |
.byte 6 ## Abbrev [6] 0x16f:0x16 DW_TAG_variable | |
.byte 105 ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 28 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 4 ## DW_AT_const_value | |
.byte 0 | |
.byte 0 | |
.byte 32 | |
.byte 65 | |
.quad Ltmp12 ## DW_AT_start_scope | |
.byte 9 ## Abbrev [9] 0x185:0x69 DW_TAG_inlined_subroutine | |
.long 145 ## DW_AT_abstract_origin | |
.quad Ltmp14 ## DW_AT_low_pc | |
.quad Ltmp17 ## DW_AT_high_pc | |
.byte 1 ## DW_AT_call_file | |
.byte 30 ## DW_AT_call_line | |
.byte 6 ## Abbrev [6] 0x19c:0x17 DW_TAG_variable | |
.ascii "x2" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 8 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 4 ## DW_AT_const_value | |
.byte 0 | |
.byte 0 | |
.byte 160 | |
.byte 64 | |
.quad Ltmp14 ## DW_AT_start_scope | |
.byte 6 ## Abbrev [6] 0x1b3:0x1f DW_TAG_variable | |
.ascii "threehalfs" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 9 ## DW_AT_decl_line | |
.long 496 ## DW_AT_type | |
.byte 4 ## DW_AT_const_value | |
.byte 0 | |
.byte 0 | |
.byte 192 | |
.byte 63 | |
.quad Ltmp15 ## DW_AT_start_scope | |
.byte 10 ## Abbrev [10] 0x1d2:0x1b DW_TAG_formal_parameter | |
.ascii "number" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_decl_file | |
.byte 6 ## DW_AT_decl_line | |
.long 136 ## DW_AT_type | |
.byte 4 ## DW_AT_const_value | |
.byte 0 | |
.byte 0 | |
.byte 32 | |
.byte 65 | |
.quad Ltmp16 ## DW_AT_start_scope | |
.byte 0 ## End Of Children Mark | |
.byte 0 ## End Of Children Mark | |
.byte 0 ## End Of Children Mark | |
.byte 11 ## Abbrev [11] 0x1f0:0x5 DW_TAG_const_type | |
.long 136 ## DW_AT_type | |
.byte 12 ## Abbrev [12] 0x1f5:0x12 DW_TAG_variable | |
.ascii "threehalfs" ## DW_AT_name | |
.byte 0 | |
.long 496 ## DW_AT_type | |
.byte 1 ## DW_AT_decl_file | |
.byte 9 ## DW_AT_decl_line | |
.byte 2 ## Abbrev [2] 0x207:0xc DW_TAG_base_type | |
.byte 5 ## DW_AT_encoding | |
.ascii "long int" ## DW_AT_name | |
.byte 0 | |
.byte 8 ## DW_AT_byte_size | |
.byte 2 ## Abbrev [2] 0x213:0x8 DW_TAG_base_type | |
.byte 6 ## DW_AT_encoding | |
.ascii "char" ## DW_AT_name | |
.byte 0 | |
.byte 1 ## DW_AT_byte_size | |
.byte 13 ## Abbrev [13] 0x21b:0x6 DW_TAG_pointer_type | |
.long 531 ## DW_AT_type | |
.byte 8 ## DW_AT_byte_size | |
.byte 13 ## Abbrev [13] 0x221:0x6 DW_TAG_pointer_type | |
.long 539 ## DW_AT_type | |
.byte 8 ## DW_AT_byte_size | |
.byte 0 ## End Of Children Mark | |
.byte 0 ## 4 extra padding bytes for GDB | |
.byte 0 | |
.byte 0 | |
.byte 0 | |
Linfo_end1: | |
.section __DWARF,__debug_abbrev,regular,debug | |
Labbrev_begin: | |
.byte 1 ## Abbreviation Code | |
.byte 17 ## DW_TAG_compile_unit | |
.byte 1 ## DW_CHILDREN_yes | |
.byte 37 ## DW_AT_producer | |
.byte 8 ## DW_FORM_string | |
.byte 19 ## DW_AT_language | |
.byte 11 ## DW_FORM_data1 | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 82 ## DW_AT_entry_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 16 ## DW_AT_stmt_list | |
.byte 6 ## DW_FORM_data4 | |
.byte 27 ## DW_AT_comp_dir | |
.byte 8 ## DW_FORM_string | |
.byte 225 ## DW_AT_APPLE_optimized | |
.byte 127 | |
.byte 12 ## DW_FORM_flag | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 2 ## Abbreviation Code | |
.byte 36 ## DW_TAG_base_type | |
.byte 0 ## DW_CHILDREN_no | |
.byte 62 ## DW_AT_encoding | |
.byte 11 ## DW_FORM_data1 | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 11 ## DW_AT_byte_size | |
.byte 11 ## DW_FORM_data1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 3 ## Abbreviation Code | |
.byte 46 ## DW_TAG_subprogram | |
.byte 1 ## DW_CHILDREN_yes | |
.byte 1 ## DW_AT_sibling | |
.byte 19 ## DW_FORM_ref4 | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 39 ## DW_AT_prototyped | |
.byte 12 ## DW_FORM_flag | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 63 ## DW_AT_external | |
.byte 12 ## DW_FORM_flag | |
.byte 17 ## DW_AT_low_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 18 ## DW_AT_high_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 64 ## DW_AT_frame_base | |
.byte 10 ## DW_FORM_block1 | |
.byte 32 ## DW_AT_inline | |
.byte 11 ## DW_FORM_data1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 4 ## Abbreviation Code | |
.byte 5 ## DW_TAG_formal_parameter | |
.byte 0 ## DW_CHILDREN_no | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 2 ## DW_AT_location | |
.byte 10 ## DW_FORM_block1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 5 ## Abbreviation Code | |
.byte 11 ## DW_TAG_lexical_block | |
.byte 1 ## DW_CHILDREN_yes | |
.byte 17 ## DW_AT_low_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 18 ## DW_AT_high_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 6 ## Abbreviation Code | |
.byte 52 ## DW_TAG_variable | |
.byte 0 ## DW_CHILDREN_no | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 28 ## DW_AT_const_value | |
.byte 10 ## DW_FORM_block1 | |
.byte 44 ## DW_AT_start_scope | |
.byte 1 ## DW_FORM_addr | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 7 ## Abbreviation Code | |
.byte 52 ## DW_TAG_variable | |
.byte 0 ## DW_CHILDREN_no | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 8 ## Abbreviation Code | |
.byte 46 ## DW_TAG_subprogram | |
.byte 1 ## DW_CHILDREN_yes | |
.byte 1 ## DW_AT_sibling | |
.byte 19 ## DW_FORM_ref4 | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 39 ## DW_AT_prototyped | |
.byte 12 ## DW_FORM_flag | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 63 ## DW_AT_external | |
.byte 12 ## DW_FORM_flag | |
.byte 17 ## DW_AT_low_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 18 ## DW_AT_high_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 64 ## DW_AT_frame_base | |
.byte 10 ## DW_FORM_block1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 9 ## Abbreviation Code | |
.byte 29 ## DW_TAG_inlined_subroutine | |
.byte 1 ## DW_CHILDREN_yes | |
.byte 49 ## DW_AT_abstract_origin | |
.byte 19 ## DW_FORM_ref4 | |
.byte 17 ## DW_AT_low_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 18 ## DW_AT_high_pc | |
.byte 1 ## DW_FORM_addr | |
.byte 88 ## DW_AT_call_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 89 ## DW_AT_call_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 10 ## Abbreviation Code | |
.byte 5 ## DW_TAG_formal_parameter | |
.byte 0 ## DW_CHILDREN_no | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 28 ## DW_AT_const_value | |
.byte 10 ## DW_FORM_block1 | |
.byte 44 ## DW_AT_start_scope | |
.byte 1 ## DW_FORM_addr | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 11 ## Abbreviation Code | |
.byte 38 ## DW_TAG_const_type | |
.byte 0 ## DW_CHILDREN_no | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 12 ## Abbreviation Code | |
.byte 52 ## DW_TAG_variable | |
.byte 0 ## DW_CHILDREN_no | |
.byte 3 ## DW_AT_name | |
.byte 8 ## DW_FORM_string | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 58 ## DW_AT_decl_file | |
.byte 11 ## DW_FORM_data1 | |
.byte 59 ## DW_AT_decl_line | |
.byte 11 ## DW_FORM_data1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 13 ## Abbreviation Code | |
.byte 15 ## DW_TAG_pointer_type | |
.byte 0 ## DW_CHILDREN_no | |
.byte 73 ## DW_AT_type | |
.byte 19 ## DW_FORM_ref4 | |
.byte 11 ## DW_AT_byte_size | |
.byte 11 ## DW_FORM_data1 | |
.byte 0 ## EOM(1) | |
.byte 0 ## EOM(2) | |
.byte 0 ## EOM(3) | |
Labbrev_end: | |
.section __DWARF,__debug_line,regular,debug | |
Lset23 = Lline_end-Lline_begin ## Length of Source Line Info | |
.long Lset23 | |
Lline_begin: | |
.short 2 ## DWARF version number | |
Lset24 = Lline_prolog_end-Lline_prolog_begin ## Prolog Length | |
.long Lset24 | |
Lline_prolog_begin: | |
.byte 1 ## Minimum Instruction Length | |
.byte 1 ## Default is_stmt_start flag | |
.byte 246 ## Line Base Value (Special Opcodes) | |
.byte 245 ## Line Range Value (Special Opcodes) | |
.byte 10 ## Special Opcode Base | |
.byte 0 ## DW_LNS_copy arg count | |
.byte 1 ## DW_LNS_advance_pc arg count | |
.byte 1 ## DW_LNS_advance_line arg count | |
.byte 1 ## DW_LNS_set_file arg count | |
.byte 1 ## DW_LNS_set_column arg count | |
.byte 0 ## DW_LNS_negate_stmt arg count | |
.byte 0 ## DW_LNS_set_basic_block arg count | |
.byte 0 ## DW_LNS_const_add_pc arg count | |
.byte 1 ## DW_LNS_fixed_advance_pc arg count | |
.asciz "/Users/cmiller/Desktop/508767" ## Directory | |
.byte 0 ## End of directories | |
.asciz "Q_rsqrt.c" ## Source | |
.byte 1 ## Directory # | |
.byte 0 ## Mod date | |
.byte 0 ## File size | |
.byte 0 ## End of files | |
Lline_prolog_end: | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:6 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp2 ## Location label | |
.byte 25 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:6 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp3 ## Location label | |
.byte 1 ## DW_LNS_copy | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:9 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp4 ## Location label | |
.byte 23 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:11 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp5 ## Location label | |
.byte 22 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:16 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp6 ## Location label | |
.byte 25 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:24 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp7 ## Location label | |
.byte 28 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:27 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp11 ## Location label | |
.byte 23 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:28 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp12 ## Location label | |
.byte 21 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:29 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp13 ## Location label | |
.byte 21 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:11 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp14 ## Location label | |
.byte 3 ## DW_LNS_advance_line | |
.byte 110 ## Line Offset | |
.byte 1 ## DW_LNS_copy | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:9 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp15 ## Location label | |
.byte 18 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:6 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp16 ## Location label | |
.byte 17 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:30 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp18 ## Location label | |
.byte 44 ## Line Delta | |
.byte 0 ## /Users/cmiller/Desktop/508767/Q_rsqrt.c:31 | |
## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Ltmp19 ## Location label | |
.byte 21 ## Line Delta | |
.byte 0 ## Extended Op | |
.byte 9 ## Op size | |
.byte 2 ## DW_LNE_set_address | |
.quad Lsection_end1 ## Section end label | |
.byte 0 ## DW_LNE_end_sequence | |
.byte 1 | |
.byte 1 | |
Lline_end: | |
.section __DWARF,__debug_pubnames,regular,debug | |
Lset25 = Lpubnames_end1-Lpubnames_begin1 ## Length of Public Names Info | |
.long Lset25 | |
Lpubnames_begin1: | |
.short 2 ## DWARF Version | |
Lset26 = Linfo_begin1-Lsection_info ## Offset of Compilation Unit Info | |
.long Lset26 | |
Lset27 = Linfo_end1-Linfo_begin1 ## Compilation Unit Length | |
.long Lset27 | |
.long 286 ## DIE offset | |
.asciz "main" ## External Name | |
.long 145 ## DIE offset | |
.asciz "Q_rsqrt" ## External Name | |
.long 0 ## End Mark | |
Lpubnames_end1: | |
.section __DWARF,__debug_pubtypes,regular,debug | |
Lset28 = Lpubtypes_end1-Lpubtypes_begin1 ## Length of Public Types Info | |
.long Lset28 | |
Lpubtypes_begin1: | |
.short 2 ## DWARF Version | |
Lset29 = Linfo_begin1-Lsection_info ## Offset of Compilation Unit Info | |
.long Lset29 | |
Lset30 = Linfo_end1-Linfo_begin1 ## Compilation Unit Length | |
.long Lset30 | |
.long 0 ## End Mark | |
Lpubtypes_end1: | |
.section __DWARF,__debug_aranges,regular,debug | |
.section __DWARF,__debug_ranges,regular,debug | |
.section __DWARF,__debug_macinfo,regular,debug | |
.section __DWARF,__debug_inlined,regular,debug | |
Lset31 = Ldebug_inlined_end1-Ldebug_inlined_begin1 ## Length of Debug Inlined Information Entry | |
.long Lset31 | |
Ldebug_inlined_begin1: | |
.short 2 ## Dwarf Version | |
.byte 8 ## Address Size (in bytes) | |
.ascii "Q_rsqrt" ## MIPS linkage name | |
.byte 0 | |
Lset32 = Lstring0-Lsection_str ## Function name | |
.long Lset32 | |
.byte 1 ## Inline count | |
.long 389 ## DIE offset | |
.quad Ltmp14 ## low_pc | |
Ldebug_inlined_end1: | |
.section __DWARF,__debug_str,regular,debug | |
Lstring0: | |
.ascii "Q_rsqrt" | |
.subsections_via_symbols |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment