🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by James Clark Tue, 13 Jun 1989 13:27
gas 1.34/sparc
#76
Author: James Clark
Date: Tue, 13 Jun 1989 13:27
413 lines
7789 bytes
gas 1.34/sparc doesn't like some g++ output. It rejects lines 162 and
164 of the following with an ``Illegal operands'' diagnostic. The
relevant lines are:

	ld [%lo(LC1)+%g1],%o1
and
	ld [%lo(LC1+4)+%g1],%o2

The complete input file was:

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 8
LC1:
	.double 0r0.00000000000000000000e+00
	.align 4
.global _do_break_PSenvironment
	.proc 1
_do_break_PSenvironment:
	!#PROLOGUE# 0
	save %sp,-112,%sp
	!#PROLOGUE# 1
	mov %i0,%l0
	ld [%l0+248],%o3
	tst %o3
	be L111
	nop
	mov 0,%o0
	sethi %hi(LC1),%g1
	sethi %hi(LC1),%g1
	ld [%lo(LC1)+%g1],%o1
	sethi %hi(LC1+4),%g1
	ld [%lo(LC1+4)+%g1],%o2
	call _space_node_PSspace_node_DF_PSnode,0
	nop
	st %o0,[%l0+248]
	mov %l0,%o0
	call _possibly_break_line_PSenvironment_SI,0
	mov 0,%o1
L111:
	ld [%l0+248],%o0
	tst %o0
	be L112
	nop
	ldd [%l0+264],%f2
	ldd [%l0+272],%f4
	faddd %f2,%f4,%f2
	ldd [%l0+280],%f4
	fsubd %f4,%f2,%f4
	std %f4,[%l0+280]
	ldd [%l0+264],%f2
	ldd [%l0+272],%f4
	mov %l0,%o0
	ld [%l0+248],%o1
	faddd %f2,%f4,%f6
	std %f6,[%fp-8]
	ldd [%fp-8],%o2
	call _output_line_PSenvironment_PSnode_DF,0
	nop
	st %g0,[%l0+248]
L112:
	st %g0,[%l0+332]
	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$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
.global _sys_nerr
.common _sys_nerr,8,"bss"
.global _errno
.common _errno,8,"bss"

James Clark
jjc@jclark.uucp
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads