- 论坛徽章:
- 0
|
.file "t.c"
.psr msb
.radix C
.pred.safe_across_calls p1-p5,p16-p63
.allow 0, "ao", "x1"
.type printf,@function
.global printf
.type memcpy,@function
.global memcpy
.type memset,@function
.global memset
.type main,@function
.global main
.type _memset,@function
.global _memset
.type _memcpy,@function
.global _memcpy
.size main, 272
// Routine [id=0006] ( main )
// ===
.secalias .abe$3.text, ".text"
.section .abe$3.text = "ax", "progbits"
.align 16
.proc main
..L0:
// $start CMid900 = ;; // A
..L2:
main::
.prologue
// $entry CMid904 = // A [t.c: 13/1]
//file/line/col 13/1
.save ar.pfs, r36
alloc r36 = ar.pfs, 0, 6, 3, 0 // M [t.c: 13/1] [UVU: ]
.save rp, r37
mov r37 = rp // I
add r35 = 0, gp // I
.body
//file/line/col 14/9
add r9 = @ltoffx(.abe$2.rodata), r0 ;; // M [t.c: 14/9]
add r9 = r9, gp // M [t.c: 14/9]
nop.i 0 ;; // I
ldxmov r32 = [r9], .abe$2.rodata# // M [t.c: 14/9] [UVU: str]
//file/line/col 17/3
add r34 = 0, r33 // M [t.c: 17/3] [UVU: c] [UVuse]
//file/line/col 18/3
add out2 = 24, r0 // I [t.c: 18/3]
add out1 = 0, r0 ;; // M [t.c: 18/3]
lfetch.nt1 [r34] // M [t.c: 18/3] [UVuse]
add out0 = 0, r34 // I [t.c: 18/3] [UVuse]
nop.m 0 // M
nop.m 0 // M
br.call.dptk.few rp = _memset# ;; // B [t.c: 18/3] [UVU]
add gp = 0, r35 // M [t.c: 18/3]
//file/line/col 19/3
lfetch [r32] // M [t.c: 19/3] [UVuse]
add out2 = 4, r0 // I [t.c: 19/3]
lfetch [r34] // M [t.c: 19/3] [UVuse]
add out1 = 0, r32 // M [t.c: 19/3] [UVuse]
add out0 = 0, r34 ;; // I [t.c: 19/3] [UVuse]
nop.m 0 // M
nop.m 0 // M
br.call.dptk.few rp = _memcpy# ;; // B [t.c: 19/3] [UVU]
add gp = 0, r35 // M [t.c: 19/3]
//file/line/col 20/3
add r9 = @ltoffx(.abe$2.rodata), r0 // M [t.c: 20/3]
add r10 = 0, r34 // I [t.c: 20/3] [UVuse]
add r11 = @pltoff(printf), r0 ;; // M [t.c: 20/3]
add r9 = r9, gp // M [t.c: 20/3]
add r11 = r11, gp // I [t.c: 20/3]
add r14 = r0, gp // M [t.c: 20/3]
add out1 = 0, r10 ;; // I [t.c: 20/3]
nop.i 0 // I
ldxmov r9 = [r9], .abe$2.rodata# // M [t.c: 20/3]
ld8.acq r10 = [r11] // M [t.c: 20/3]
add r11 = 8, r11 ;; // I [t.c: 20/3]
ld8 gp = [r11] // M [t.c: 20/3]
mov b6 = r10 // I [t.c: 20/3]
add r9 = 8, r9 ;; // I [t.c: 20/3]
add r9 = 0, r9 ;; // M [t.c: 20/3]
add out0 = 0, r9 // M [t.c: 20/3]
nop.i 0 // I
nop.m 0 // M
nop.m 0 // M
br.call.dptk.few rp = b6 ;; // B [t.c: 20/3] [UVU]
add gp = 0, r35 // M [t.c: 20/3]
mov rp = r37 // I
//file/line/col 21/3
add r8 = 0, r0 ;; // I [t.c: 21/3]
nop.m 0 // M
mov ar.pfs = r36 // I
.restore sp
br.ret.dptk.few rp ;; // B [t.c: 21/3]
..L1:
// $end ;; // A
.endp main
// ===
// ===
.secalias .abe$4.IA_64.unwind, ".IA_64.unwind"
.section .abe$4.IA_64.unwind = "a", "unwind"
.align 8
data8.ua @segrel(.abe$3.text)
data8.ua @segrel(.abe$3.text+272)
data8.ua @segrel(.abe$unwind_info_block00000)
// ===
.secalias .abe$5.IA_64.unwind_info, ".IA_64.unwind_info"
.section .abe$5.IA_64.unwind_info = "a", "progbits"
.align 8
// unwind_info_block: notype local temp
data8.ua @segrel(.llo$annot_info_block0000)
.abe$unwind_info_block00000: data1 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x02
data1 0x03, 0xe4, 0x01, 0xb0, 0xa5, 0xe6, 0x00, 0xb1
data1 0x24, 0x61, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00
// ===
.secalias .abe$2.rodata, ".rodata"
.section .abe$2.rodata = "a", "progbits"
.align 8
// .rodata: section local
// __undef: notype local temp
// __undef: notype local temp
.abe$__undef00001: stringz "Fgfgf"
data1 0x00, 0x00
.abe$__undef00002: stringz "%s\n"
// ===
.secalias .abe$6.HP.opt_annot, ".HP.opt_annot"
.section .abe$6.HP.opt_annot = "a", "annot"
.align 8
// .llo$annot_info_block0000: object local temp
.llo$annot_info_block0000: data1 0x00, 0xac, 0x01, 0xbe, 0xff, 0xfe, 0xff, 0xff
data1 0xff, 0xfc, 0xff, 0xff, 0xb0, 0xfc, 0x01, 0x02
data1 0x84, 0x00, 0x02, 0x03, 0x88, 0x02, 0x00, 0x1f
data1 0x00
// ===
.secalias .abe$7.debug_procs_info, ".debug_procs_info"
.section .abe$7.debug_procs_info = "", "progbits"
.align 1
data1 0x00, 0x00, 0x00, 0x8d, 0x00, 0x02
data4.ua @secrel(.abe$8.debug_procs_abbrev)
data1 0x08, 0x03
data8.ua @secrel(.abe$0.debug_line)
data8.ua @secrel(.abe$1.debug_actual)
stringz "t.c"
data1 0x04, 0x01, 0x47, 0x00
stringz "/home/flx05/fleksbat/exec/test/GEX/busi/GEXBAP01002/lm"
data1 0x00, 0x00, 0x00, 0x00
stringz "\tt.c"
data1 0x00, 0x00, 0x00, 0x69, 0x00, 0x07, 0x01, 0x00
data1 0x00, 0x00, 0x00
data8.ua .abe$3.text
data8.ua .abe$3.text+272
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data1 0x00, 0x00
// ===
.secalias .abe$8.debug_procs_abbrev, ".debug_procs_abbrev"
.section .abe$8.debug_procs_abbrev = "", "progbits"
.align 1
// .debug_procs_abbrev: section local
data1 0x03, 0x11, 0x01, 0x10, 0x07, 0x90, 0x40, 0x07
data1 0x03, 0x08, 0x13, 0x0b, 0x95, 0x40, 0x0b, 0x25
data1 0x08, 0x1b, 0x08, 0x01, 0x13, 0x00, 0x00, 0x07
data1 0x2e, 0x01, 0x94, 0x40, 0x0b, 0x96, 0x40, 0x06
data1 0x11, 0x01, 0x12, 0x01, 0x97, 0x40, 0x01, 0x98
data1 0x40, 0x01, 0x00, 0x00, 0x09, 0x1e, 0x01, 0x03
data1 0x08, 0x01, 0x13, 0x00, 0x00, 0x00
// ===
.secalias .abe$0.debug_line, ".debug_line"
.section .abe$0.debug_line = "", "progbits"
.align 8
// .debug_line: section local
data1 0x00, 0x00, 0x00, 0x41, 0x00, 0x02, 0x00, 0x00
data1 0x00, 0x10, 0x04, 0x01, 0x00, 0x05, 0x0a, 0x00
data1 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01
data1 0x00, 0x00, 0x00, 0x08, 0x03
stringz "t.c"
data1 0x00, 0x00, 0x00, 0x00, 0x09, 0x02
data8.ua .abe$3.text
data1 0x04, 0x01, 0x05, 0x01, 0x03, 0x0c, 0x01, 0x05
data1 0x09, 0x1f, 0x05, 0x03, 0x26, 0x10, 0x42, 0x47
data1 0x9c, 0x02, 0x04, 0x00, 0x01, 0x01
// ===
.secalias .abe$1.debug_actual, ".debug_actual"
.section .abe$1.debug_actual = "", "progbits"
.align 8
// .debug_actual: section local
data1 0x00, 0x00, 0x00, 0x45, 0x00, 0x02, 0x00, 0x00
data1 0x00, 0x0e, 0x04, 0x01, 0x00, 0x05, 0x0a, 0x00
data1 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01
data1 0x00, 0x09, 0x02
data8.ua .abe$3.text
data1 0x00, 0x01, 0x11, 0x0b, 0x1f, 0x00, 0x01, 0x11
data1 0x1e, 0x00, 0x01, 0x11, 0x10, 0x10, 0x00, 0x01
data1 0x11, 0x32, 0x1a, 0x00, 0x01, 0x11, 0x37, 0x1a
data1 0x00, 0x01, 0x11, 0x87, 0x1f, 0x00, 0x01, 0x18
data1 0x1e, 0x02, 0x04, 0x00, 0x01, 0x01
// ===
.secalias .abe$9.note, ".note"
.section .abe$9.note = "", "note"
.align 8
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xbd
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
stringz "HP"
data1 0x00, 0x00, 0x00, 0x00, 0x00
stringz "A.06.05 [Jul 25 2005] [Build N/A]\necom options = -assembly on -ia64abi all -architecture 64 -inst compiletime -sysdir /usr/include -test namespaces -koenig_lookup on -inline_power 1 -link_type dynamic -fpeval float -tls_dyn on -target_os 11.23 --sys_include /opt/aCC/include_std --sys_include /opt/aCC/include_std/iostream_compat --sys_include /usr/include --sys_include /usr -ucode hdriver=optlevel%1% -plusolistoption -Ol06all! -plusolistoption -Ol13moderate! -plusooption -Oq01,al,ag,cn,sz,ic,vo,Mf,Po,es,rs,Rf,Pr,sp,in,cl,om,vc,pi,fa,pe,rr,pa,pv,nf,cp,lx,Pg,ug,lu,lb,uj,dn,sg,pt,kt,em,np,ar,rp,dl,fs,bp,wp,pc,mp,lr,cx,cr,pi,so,Rc,fa,ft,fe,ap,st,lc,Bl,sr,ib,pl,sd,ll,rl,dl,Lt,ol,fl,lm,ts,rd,dp,If!"
data1 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
data1 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00
data1 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00
data1 0x00, 0x00, 0x04
stringz "HP"
data1 0x00, 0x00, 0x00, 0x00, 0x00
stringz "t.c\n/test/lm\nANSI C++ 64 bits"
data1 0x00, 0x00, 0x00, 0x00
我对汇编一窍不通,此代码为上述程序的汇编代码,望高手指点 |
|