jjc@UUNET.UU.NET (James Clark) (06/15/89)
When I use gas 1.34/sparc to assemble a g++ program, I get many error
messages from ld++ saying that i0, i1, i2 and other register names are
undefined.
If the following file is assembled with gas, nm will list
U i0
U i1
U i2
U i3
U i4
U o0
U o1
U o2
When assembled with /bin/as, nm does not list these symbols.
James Clark
jjc@jclark.uucp
gcc_compiled.:
.text
.align 4
.proc 1
_peek_PSchar_list_iterator:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o1
ld [%o1],%o0
tst %o0
bne L43
nop
b L42
mov -1,%i0
L43:
ldsh [%o1+4],%o3
ld [%o1],%o2
ld [%o2+4],%o0
cmp %o3,%o0
bge L45
nop
add %o2,%o3,%o0
b L42
ldub [%o0+8],%i0
L45:
ld [%o1],%o0
ld [%o0],%o4
st %o4,[%o1]
sth %g0,[%o1+4]
call _peek_PSchar_list_iterator,0
mov %o1,%o0
mov %o0,%i0
L42:
ret
restore
.align 4
.proc 1
_next_PSchar_list_iterator:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%o2
ld [%o2],%o0
tst %o0
bne L53
nop
b L52
mov -1,%i0
L53:
ldsh [%o2+4],%o0
ld [%o2],%o3
ld [%o3+4],%o1
cmp %o0,%o1
bge L55
nop
add %o2,4,%o0
ldsh [%o0],%o1
ldsh [%o0],%o2
add %o2,1,%o2
sth %o2,[%o0]
sll %o1,0x10,%o1
sra %o1,0x10,%o1
add %o3,%o1,%o1
b L52
ldub [%o1+8],%i0
L55:
ld [%o2],%o0
ld [%o0],%o4
st %o4,[%o2]
sth %g0,[%o2+4]
call _next_PSchar_list_iterator,0
mov %o2,%o0
mov %o0,%i0
L52:
ret
restore
.align 4
.proc 1
_is_dummy_PSnode:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov 0,%i0
ret
restore
.align 4
.proc 1
_copy_PSline_start_node:
!#PROLOGUE# 0
save %sp,-120,%sp
!#PROLOGUE# 1
mov %i0,%l0
call _line_start_node_PSline_start_node,0
mov 0,%o0
ld [%o0+4],%o4
st %o4,[%fp-20]
mov %o0,%o2
ld [%l0+4],%g1
st %g1,[%o2+4]
ld [%l0+0],%g1
st %g1,[%o2+0]
ld [%fp-20],%o4
st %o4,[%o0+4]
mov %o0,%i0
ret
restore
LC0:
.ascii "<line start>\0"
.align 4
.proc 1
_print_PSline_start_node:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
sethi %hi(__iob),%o0
or %lo(__iob),%o0,%o0
add %o0,40,%o0
sethi %hi(LC0),%o1
call _fprintf,0
or %o1,%lo(LC0),%o1
ret
restore
.align 4
.proc 1
_line_start_node_PSline_start_node:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
orcc %i0,%g0,%o0 ! 2-insn combine
bne L80
nop
call ___builtin_new,0
mov 8,%o0
L80:
call _node_PSnode_PSnode,0
mov 0,%o1
sethi %hi(__vt$line_start_node),%o2
or %lo(__vt$line_start_node),%o2,%o2
st %o2,[%o0+4]
mov %o0,%i0
ret
restore
.align 4
.global _spline_node_PSspline_node_PDF_SI_DF
.proc 1
_spline_node_PSspline_node_PDF_SI_DF:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
mov %i0,%l0
mov %i1,%l2
mov %i2,%l1
mov %i3,%l4
mov %i4,%l5
tst %l0
bne L92
nop
call ___builtin_new,0
mov 24,%o0
mov %o0,%l0
L92:
mov %l0,%o0
call _node_PSnode_PSnode,0
mov 0,%o1
mov %o0,%l0
sethi %hi(__vt$spline_node),%o3
or %lo(__vt$spline_node),%o3,%o3
st %o3,[%l0+4]
st %l1,[%l0+20]
st %l4,[%l0+8]
st %l5,[%l0+12]
call ___builtin_new,0
sll %l1,4,%o0
st %o0,[%l0+16]
mov %l2,%o1
call _memcpy,0
sll %l1,4,%o2
mov %l0,%i0
ret
restore
.align 4
.global __$_spline_node
.proc 1
__$_spline_node:
!#PROLOGUE# 0
save %sp,-112,%sp
!#PROLOGUE# 1
orcc %i0,%g0,%l0 ! 3-insn reorder
be L95
mov %i1,%l1
call ___builtin_delete,0
ld [%l0+16],%o0
sethi %hi(__vt$node),%o2
or %lo(__vt$node),%o2,%o2
st %o2,[%l0+4]
mov %l0,%o0
call __$_node,0
mov %l1,%o1
L95:
ret
restore
.global _dfont$next_dfontno
.common _dfont$next_dfontno,8,"bss"
.global _font_size$next_size
.common _font_size$next_size,8,"bss"
.global _font_size$table
.common _font_size$table,8192,"bss"
.global _symbol$block_size
.common _symbol$block_size,8,"bss"
.global _symbol$block
.common _symbol$block,8,"bss"
.global _symbol$table_size
.common _symbol$table_size,8,"bss"
.global _symbol$table_used
.common _symbol$table_used,8,"bss"
.global _symbol$table
.common _symbol$table,8,"bss"
.data
.align 8
__vt$spline_node:
.half 0
.half 0
.word 0
.half 0
.half 0
.word __$_spline_node
.half 0
.half 0
.word _copy_PSspline_node
.half 0
.half 0
.word _width_PSspline_node
.half 0
.half 0
.word _space_width_PSnode
.half 0
.half 0
.word _vertical_width_PSspline_node
.half 0
.half 0
.word _prev_char_width_PSnode
.half 0
.half 0
.word _character_type_PSnode
.half 0
.half 0
.word _set_vertical_size_PSnode_PSvertical_size
.half 0
.half 0
.word _print_PSspline_node
.half 0
.half 0
.word _is_dummy_PSnode
.half 0
.half 0
.word _ends_sentence_PSnode
.half 0
.half 0
.word _merge_glyph_node_PSnode_PSglyph_node
.half 0
.half 0
.word _add_discretionary_hyphen_PSnode
.half 0
.half 0
.word _add_self_PSnode_PSnode_PPShyphen_list
.half 0
.half 0
.word _get_hyphen_list_PSnode_PShyphen_list
.half 0
.half 0
.word _typeset_PSspline_node_PStypeset_output_file
.half 0
.half 0
.word _zero_width_typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _ascii_print_PSnode_PSascii_output_file
.half 0
.half 0
.word _discardable_PSnode
.half 0
.half 0
.word _set_space_factor_PSnode_DF
.half 0
.half 0
.word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI
.half 0
.half 0
.word _nbreaks_PSnode
.half 0
.half 0
.word _split_PSnode_SI_PPSnode_PPSnode
.half 0
.half 0
.word _get_hyphenation_type_PSnode
.half 0
.half 0
.word _get_diverted_space_node_PSnode
.half 0
.half 0
.word _overlaps_vertically_PSnode
.half 0
.half 0
.word _overlaps_horizontally_PSnode
.half 0
.half 0
.word _size_PSnode
.half 0
.half 0
.word _transparent_char_PSnode
.align 8
__vt$space_node:
.half 0
.half 0
.word 0
.half 0
.half 0
.word __$_node
.half 0
.half 0
.word _copy_PSspace_node
.half 0
.half 0
.word _width_PSspace_node
.half 0
.half 0
.word _space_width_PSspace_node
.half 0
.half 0
.word _vertical_width_PSnode
.half 0
.half 0
.word _prev_char_width_PSnode
.half 0
.half 0
.word _character_type_PSnode
.half 0
.half 0
.word _set_vertical_size_PSnode_PSvertical_size
.half 0
.half 0
.word _print_PSspace_node
.half 0
.half 0
.word _is_dummy_PSnode
.half 0
.half 0
.word _ends_sentence_PSnode
.half 0
.half 0
.word _merge_glyph_node_PSnode_PSglyph_node
.half 0
.half 0
.word _add_discretionary_hyphen_PSnode
.half 0
.half 0
.word _add_self_PSnode_PSnode_PPShyphen_list
.half 0
.half 0
.word _get_hyphen_list_PSnode_PShyphen_list
.half 0
.half 0
.word _typeset_PSspace_node_PStypeset_output_file
.half 0
.half 0
.word _zero_width_typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _ascii_print_PSspace_node_PSascii_output_file
.half 0
.half 0
.word _discardable_PSspace_node
.half 0
.half 0
.word _set_space_factor_PSspace_node_DF
.half 0
.half 0
.word _get_breakpoints_PSspace_node_DF_DF_PSbreakpoint_SI
.half 0
.half 0
.word _nbreaks_PSspace_node
.half 0
.half 0
.word _split_PSspace_node_SI_PPSnode_PPSnode
.half 0
.half 0
.word _get_hyphenation_type_PSnode
.half 0
.half 0
.word _get_diverted_space_node_PSnode
.half 0
.half 0
.word _overlaps_vertically_PSnode
.half 0
.half 0
.word _overlaps_horizontally_PSnode
.half 0
.half 0
.word _size_PSnode
.half 0
.half 0
.word _transparent_char_PSnode
.align 8
__vt$line_start_node:
.half 0
.half 0
.word 0
.half 0
.half 0
.word __$_node
.half 0
.half 0
.word _copy_PSline_start_node
.half 0
.half 0
.word _width_PSnode
.half 0
.half 0
.word _space_width_PSnode
.half 0
.half 0
.word _vertical_width_PSnode
.half 0
.half 0
.word _prev_char_width_PSnode
.half 0
.half 0
.word _character_type_PSnode
.half 0
.half 0
.word _set_vertical_size_PSnode_PSvertical_size
.half 0
.half 0
.word _print_PSline_start_node
.half 0
.half 0
.word _is_dummy_PSnode
.half 0
.half 0
.word _ends_sentence_PSnode
.half 0
.half 0
.word _merge_glyph_node_PSnode_PSglyph_node
.half 0
.half 0
.word _add_discretionary_hyphen_PSnode
.half 0
.half 0
.word _add_self_PSnode_PSnode_PPShyphen_list
.half 0
.half 0
.word _get_hyphen_list_PSnode_PShyphen_list
.half 0
.half 0
.word _typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _zero_width_typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _ascii_print_PSnode_PSascii_output_file
.half 0
.half 0
.word _discardable_PSnode
.half 0
.half 0
.word _set_space_factor_PSnode_DF
.half 0
.half 0
.word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI
.half 0
.half 0
.word _nbreaks_PSnode
.half 0
.half 0
.word _split_PSnode_SI_PPSnode_PPSnode
.half 0
.half 0
.word _get_hyphenation_type_PSnode
.half 0
.half 0
.word _get_diverted_space_node_PSnode
.half 0
.half 0
.word _overlaps_vertically_PSnode
.half 0
.half 0
.word _overlaps_horizontally_PSnode
.half 0
.half 0
.word _size_PSnode
.half 0
.half 0
.word _transparent_char_PSnode
.align 8
__vt$node:
.half 0
.half 0
.word 0
.half 0
.half 0
.word __$_node
.half 0
.half 0
.word _abort
.half 0
.half 0
.word _width_PSnode
.half 0
.half 0
.word _space_width_PSnode
.half 0
.half 0
.word _vertical_width_PSnode
.half 0
.half 0
.word _prev_char_width_PSnode
.half 0
.half 0
.word _character_type_PSnode
.half 0
.half 0
.word _set_vertical_size_PSnode_PSvertical_size
.half 0
.half 0
.word _print_PSnode
.half 0
.half 0
.word _is_dummy_PSnode
.half 0
.half 0
.word _ends_sentence_PSnode
.half 0
.half 0
.word _merge_glyph_node_PSnode_PSglyph_node
.half 0
.half 0
.word _add_discretionary_hyphen_PSnode
.half 0
.half 0
.word _add_self_PSnode_PSnode_PPShyphen_list
.half 0
.half 0
.word _get_hyphen_list_PSnode_PShyphen_list
.half 0
.half 0
.word _typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _zero_width_typeset_PSnode_PStypeset_output_file
.half 0
.half 0
.word _ascii_print_PSnode_PSascii_output_file
.half 0
.half 0
.word _discardable_PSnode
.half 0
.half 0
.word _set_space_factor_PSnode_DF
.half 0
.half 0
.word _get_breakpoints_PSnode_DF_DF_PSbreakpoint_SI
.half 0
.half 0
.word _nbreaks_PSnode
.half 0
.half 0
.word _split_PSnode_SI_PPSnode_PPSnode
.half 0
.half 0
.word _get_hyphenation_type_PSnode
.half 0
.half 0
.word _get_diverted_space_node_PSnode
.half 0
.half 0
.word _overlaps_vertically_PSnode
.half 0
.half 0
.word _overlaps_horizontally_PSnode
.half 0
.half 0
.word _size_PSnode
.half 0
.half 0
.word _transparent_char_PSnode
.global _sys_nerr
.common _sys_nerr,8,"bss"
.global _errno
.common _errno,8,"bss"