Skip to content

Instantly share code, notes, and snippets.

@syoyo
Created May 7, 2015 10:03
Show Gist options
  • Save syoyo/861c3d78ffc6ac5aabd0 to your computer and use it in GitHub Desktop.
Save syoyo/861c3d78ffc6ac5aabd0 to your computer and use it in GitHub Desktop.
disassemble of double fmath::exp(double) in SPARC/HPC-ACE
_ZN5fmath3expEd:
.LLFB2:
.L46:
.LSSN28:
/* 167 */ add %sp,-208,%sp
.L47:
.LSSN29:
/* 171 */ sethi %h44(.LR0),%g1
/* 171 */ or %g1,%m44(.LR0),%g1
/* 171 */ sllx %g1,12,%g1
/* 171 */ or %g1,%l44(.LR0),%g1
/* 171 */ ldd [%g1+8],%f48
/* 171 */ fcmped %fcc0,%f0,%f48
/* 171 */ fble,pt %fcc0, .L48
nop
.L49:
.LSSN30:
/* 172 */ ldd [%g1],%f46
/* 172 */ fcmped %fcc1,%f0,%f46
/* 172 */ fbge,pt %fcc1, .L51
nop
.L52:
.LSSN31:
/* 181 */ sethi %h44(.LB0),%g4
/* 181 */ sethi %hi(20464),%g5
/* 181 */ ldd [%g1+72],%f32
/* 181 */ or %g4,%m44(.LB0),%g4
/* 181 */ or %g5,1008,%g5
.LSSN32:
/* 186 */ ldd [%g1+16],%f38
.LSSN33:
/* 181 */ sllx %g4,12,%g4
.LSSN34:
/* 185 */ sethi %hi(2095104),%o2
.LSSN35:
/* 186 */ ldd [%g1+24],%f40
.LSSN36:
/* 181 */ or %g4,%l44(.LB0),%g4
.LSSN37:
/* 186 */ ldd [%g1+40],%f42
.LSSN38:
/* 181 */ add %g4,%g5,%g5
/* 181 */ ldd [%g5+-4032],%f34
.LSSN39:
/* 184 */ ldd [%g5+-4024],%f36
.LSSN40:
/* 181 */ fmaddd %f0,%f34,%f32,%f34
/* 181 */ std %f34,[%sp+2247]
.LSSN41:
/* 184 */ fsubd %f34,%f32,%f34
.LSSN42:
/* 182 */ ldx [%sp+2247],%o1
.LSSN43:
/* 184 */ fmsubd %f36,%f34,%f0,%f36
.LSSN44:
/* 182 */ and %o1,2047,%o0
.LSSN45:
/* 185 */ add %o1,%o2,%o1
.LSSN46:
/* 182 */ sllx %o0,3,%o0
.LSSN47:
/* 185 */ srlx %o1,11,%o1
.LSSN48:
/* 186 */ fsubd %f38,%f36,%f0
/* 186 */ fmuld %f40,%f36,%f40
.LSSN49:
/* 182 */ add %g4,%o0,%g4
.LSSN50:
/* 185 */ sllx %o1,52,%o1
.LSSN51:
/* 188 */ ldx [%g4+48],%o3
.LSSN52:
/* 186 */ fmsubd %f0,%f40,%f42,%f0
.LSSN53:
/* 188 */ or %o1,%o3,%o1
/* 188 */ stx %o1,[%sp+2247]
.LSSN54:
/* 186 */ fmaddd %f0,%f36,%f42,%f0
.LSSN55:
/* 189 */ ldd [%sp+2247],%f44
/* 189 */ fmuld %f0,%f44,%f0
/* 189 */ sub %sp,-208,%sp
retl
nop
.LSSN56:
.L51:
.LSSN57:
/* 172 */ sethi %h44(.LB0),%g2
/* 172 */ sethi %hi(16448),%g3
/* 172 */ or %g2,%m44(.LB0),%g2
/* 172 */ or %g3,64,%g3
/* 172 */ sllx %g2,12,%g2
/* 172 */ or %g2,%l44(.LB0),%g2
/* 172 */ add %g2,%g3,%g2
/* 172 */ ldd [%g2],%f0
/* 172 */ sub %sp,-208,%sp
retl
nop
.LSSN58:
.L48:
.LSSN59:
/* 171 */ fzero %f0
/* 171 */ sub %sp,-208,%sp
retl
nop
# ----------------------------------------------------
# 35 insns
/* 181 */ sethi %h44(.LB0),%g4
/* 181 */ sethi %hi(20464),%g5
/* 181 */ ldd [%g1+72],%f32
/* 181 */ or %g4,%m44(.LB0),%g4
/* 181 */ or %g5,1008,%g5
/* 186 */ ldd [%g1+16],%f38
/* 181 */ sllx %g4,12,%g4
/* 185 */ sethi %hi(2095104),%o2
/* 186 */ ldd [%g1+24],%f40
/* 181 */ or %g4,%l44(.LB0),%g4
/* 186 */ ldd [%g1+40],%f42
/* 181 */ add %g4,%g5,%g5
/* 181 */ ldd [%g5+-4032],%f34
/* 184 */ ldd [%g5+-4024],%f36
/* 181 */ fmaddd %f0,%f34,%f32,%f34
/* 181 */ std %f34,[%sp+2247]
/* 184 */ fsubd %f34,%f32,%f34
/* 182 */ ldx [%sp+2247],%o1
/* 184 */ fmsubd %f36,%f34,%f0,%f36
/* 182 */ and %o1,2047,%o0
/* 185 */ add %o1,%o2,%o1
/* 182 */ sllx %o0,3,%o0
/* 185 */ srlx %o1,11,%o1
/* 186 */ fsubd %f38,%f36,%f0
/* 186 */ fmuld %f40,%f36,%f40
/* 182 */ add %g4,%o0,%g4
/* 185 */ sllx %o1,52,%o1
/* 188 */ ldx [%g4+48],%o3
/* 186 */ fmsubd %f0,%f40,%f42,%f0
/* 188 */ or %o1,%o3,%o1
/* 188 */ stx %o1,[%sp+2247]
/* 186 */ fmaddd %f0,%f36,%f42,%f0
/* 189 */ ldd [%sp+2247],%f44
/* 189 */ fmuld %f0,%f44,%f0
/* 189 */ sub %sp,-208,%sp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment