align_test16.s
application/octet-stream
Filename: align_test16.s
Type: application/octet-stream
Part: 2
.file "da.c" ! GNU C11 (GCC) version 5.5.0 (sparc-sun-solaris2.10) ! compiled by GNU C version 5.5.0, GMP version 6.1.2, MPFR version 3.1.5, MPC version 1.0.2 ! warning: MPC header version 1.0.2 differs from library version 1.0.3. ! GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ! options passed: -imultilib sparcv9 -D__arch64__ -D__sparcv9 ! -D PG_ALIGN_128=16 da.c -mptr64 -mstack-bias -mno-v8plus -mcpu=v9 -m64 ! -auxbase-strip da16.s -fverbose-asm ! options enabled: -faggressive-loop-optimizations -fauto-inc-dec ! -fchkp-check-incomplete-type -fchkp-check-read -fchkp-check-write ! -fchkp-instrument-calls -fchkp-narrow-bounds -fchkp-optimize ! -fchkp-store-bounds -fchkp-use-static-bounds ! -fchkp-use-static-const-bounds -fchkp-use-wrappers -fcommon ! -fdelete-null-pointer-checks -fearly-inlining ! -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fgnu-runtime ! -fgnu-unique -fident -finline-atomics -fira-hoist-pressure ! -fira-share-spill-slots -fivopts -fkeep-static-consts ! -fleading-underscore -flifetime-dse -flto-odr-type-merging -fmath-errno ! -fmerge-debug-strings -fpeephole -fprefetch-loop-arrays ! -freg-struct-return -fsched-critical-path-heuristic ! -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock ! -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec ! -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fschedule-fusion ! -fsemantic-interposition -fshow-column -fsigned-zeros ! -fsplit-ivs-in-unroller -fstdarg-opt -fstrict-volatile-bitfields ! -fsync-libcalls -ftrapping-math -ftree-coalesce-vars -ftree-cselim ! -ftree-forwprop -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon ! -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop ! -ftree-reassoc -ftree-scev-cprop -funit-at-a-time -fverbose-asm ! -fzero-initialized-in-bss -m64 -mapp-regs -mfpu -mptr64 -msoft-quad-float ! -mstack-bias -muser-mode .common holder,16,16 .section ".text" .align 4 .global pass_by_val .type pass_by_val, #function .proc 020 pass_by_val: .register %g2, #scratch .register %g3, #scratch save %sp, -176, %sp ! stx %i0, [%fp+2175] ! buffer, buffer stx %i2, [%fp+2191] ! par, par stx %i3, [%fp+2199] ! par, par sethi %h44(holder), %g1 !, tmp110 or %g1, %m44(holder), %g1 ! tmp110,, tmp111 sllx %g1, 12, %g1 ! tmp111,, tmp112 or %g1, %l44(holder), %g1 ! tmp112,, tmp109 ldx [%fp+2191], %g2 ! par, ldx [%fp+2199], %g3 ! par, tmp113 stx %g2, [%g1] !, holder stx %g3, [%g1+8] ! tmp113, holder nop return %i7+8 nop .size pass_by_val, .-pass_by_val .section ".rodata" .align 8 .LLC0: .asciz "OK" .align 8 .LLC1: .asciz "FAILED" .align 8 .LLC2: .asciz "pass int 64 %s\n" .section ".text" .align 4 .global main .type main, #function .proc 04 main: save %sp, -208, %sp ! sethi %hi(97655808), %g1 !, tmp116 or %g1, 417, %g1 ! tmp116,, tmp115 sllx %g1, 12, %g1 ! tmp115,, tmp115 stx %g1, [%fp+2039] ! tmp115, i64 ldx [%fp+2039], %g1 ! i64, tmp117 mov %g1, %g3 ! tmp117, D.1716 srax %g1, 63, %g1 ! tmp117,, tmp118 mov %g1, %g2 ! tmp118, D.1716 mov %g2, %o2 ! D.1716, mov %g3, %o3 ! D.1716, tmp10 sethi %h44(main), %g1 !, tmp119 or %g1, %m44(main), %g1 ! tmp119,, tmp120 sllx %g1, 12, %g1 ! tmp120,, tmp121 or %g1, %l44(main), %o0 ! tmp121,, call pass_by_val, 0 nop !, ldx [%fp+2039], %g1 ! i64, tmp122 stx %g1, [%fp+2023] ! tmp122, q srax %g1, 63, %g1 ! tmp122,, tmp123 stx %g1, [%fp+2015] ! tmp123, q sethi %h44(holder), %g1 !, tmp125 or %g1, %m44(holder), %g1 ! tmp125,, tmp126 sllx %g1, 12, %g1 ! tmp126,, tmp127 or %g1, %l44(holder), %g1 ! tmp127,, tmp124 ldx [%g1], %g2 ! holder, D.1716 ldx [%g1+8], %g3 ! holder, D.1716 ldx [%fp+2015], %g1 ! q, tmp128 cmp %g1, %g2 ! tmp128, D.1716 bne %xcc, .LL3 nop ! ldx [%fp+2023], %g1 ! q, tmp129 cmp %g1, %g3 ! tmp129, D.1716 bne %xcc, .LL3 nop ! sethi %h44(.LLC0), %g1 !, tmp130 or %g1, %m44(.LLC0), %g1 ! tmp130,, tmp131 sllx %g1, 12, %g1 ! tmp131,, tmp132 or %g1, %l44(.LLC0), %g1 ! tmp132,, D.1714 ba,pt %xcc, .LL4 nop ! .LL3: sethi %h44(.LLC1), %g1 !, tmp133 or %g1, %m44(.LLC1), %g1 ! tmp133,, tmp134 sllx %g1, 12, %g1 ! tmp134,, tmp135 or %g1, %l44(.LLC1), %g1 ! tmp135,, D.1714 .LL4: mov %g1, %o1 ! D.1714, sethi %h44(.LLC2), %g1 !, tmp136 or %g1, %m44(.LLC2), %g1 ! tmp136,, tmp137 sllx %g1, 12, %g1 ! tmp137,, tmp138 or %g1, %l44(.LLC2), %o0 ! tmp138,, call printf, 0 nop !, sethi %h44(holder), %g1 !, tmp140 or %g1, %m44(holder), %g1 ! tmp140,, tmp141 sllx %g1, 12, %g1 ! tmp141,, tmp142 or %g1, %l44(holder), %g1 ! tmp142,, tmp139 ldx [%g1], %g2 ! holder, D.1716 ldx [%g1+8], %g3 ! holder, D.1716 ldx [%fp+2015], %g1 ! q, tmp143 cmp %g1, %g2 ! tmp143, D.1716 bne %xcc, .LL8 nop ! ldx [%fp+2023], %g1 ! q, tmp144 cmp %g1, %g3 ! tmp144, D.1716 be %xcc, .LL9 nop ! .LL8: mov 1, %g1 !, D.1715 ba,pt %xcc, .LL7 nop ! .LL9: mov 0, %g1 !, D.1715 .LL7: sra %g1, 0, %g1 ! D.1715, tmp146 mov %g1, %i0 ! <retval>, return %i7+8 nop .size main, .-main .ident "GCC: (GNU) 5.5.0"