[gnu.utils.bug] gas-1.34/sparc

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"