OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-old/binutils-2.18.50/ld/testsuite/ld-mmix
    from Rev 156 to Rev 816
    Reverse comparison

Rev 156 → Rev 816

/start2.s
0,0 → 1,5
.text
SWYM 1
.global _start
_start:
SWYM 2
/sec-7a.s
0,0 → 1,6
.section .di
.byte 42
.rept 32763
.byte 0
.endr
.byte 43
/greg-2.s
0,0 → 1,3
# Have another GREG register allocation.
.global b
b GREG 34567891011121314
/b-bend.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide an invalid LOP_END; one
% not at the end of a file. It also does not in YZ specify a correct
% number of bytes between it and a preceding lop_stab.
.text
.byte 0x98,12,0,0
/areg-256.s
0,0 → 1,2
.global areg
areg IS $255+1
/greg-17.d
0,0 → 1,37
#source: gregget1.s
#source: greg-1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: a.s
#source: start.s
#as: -x
#ld: -m mmo
#error: Too many global registers: 224, max 223
 
# Allocating the maximum number of gregs *plus one* is an error, mmo.
/loc2m.d
0,0 → 1,14
#source: loc1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+1004 g \.text Main
0+1004 g \.text _start
0+1000 g \.text loc1
 
Contents of section \.text:
1000 fd030303 e3fd0001 .*
/bpo-1.d
0,0 → 1,21
#source: start.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Just a simple linker-allocated GREG with no explicit GREGs.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0000000000000000 l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 l \.text 0+ x
0+ g \.text 0+ _start
#...
 
Contents of section \.text:
0000 e3fd0001 232afe00 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 0000002e .*
/pushja2f.d
0,0 → 1,21
#source: start.s
#source: pushja.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/bpo-9.d
0,0 → 1,26
#source: start3.s
#source: bpo-6.s
#source: bpo-5.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix --gc-sections
#objdump: -st
 
# Check that GC does not mess up things when no BPO:s are collected.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.init 0+ (|\.init)
0+10 l d \.text 0+ (|\.text)
0+7e8 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ l \.init 0+ _start
0+14 g \.text 0+ x
0+10 g \.text 0+ x2
#...
 
Contents of section \.init:
0000 00000000 0000003d 00000000 0000003a .*
Contents of section \.text:
0010 232dfe00 232dfd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000107c 00000000 0000a420 .*
/getaa-6b.d
0,0 → 1,11
#source: start.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: getaa.s
#as: -no-expand
#ld: -m elf64mmix
#error: relocation truncated to fit: R_MMIX_ADDR19 against symbol `a'
/jumpa-7f.d
0,0 → 1,25
#source: start.s
#source: jumpa.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0000006 jmp 20 <a>
c: fd000000 swym 0,0,0
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: e3fd0003 setl \$253,0x3
 
0+20 <a>:
20: e3fd0004 setl \$253,0x4
/local5m.d
0,0 → 1,21
#source: greg-4.s
#source: greg-4.s
#source: local2.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+8 g \.text Main
0+fc g \*REG\* ext1
0+8 g \.text _start
 
 
Contents of section \.text:
0000 fd020202 fd030201 e3fd0001 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000004e 00000000 0000004e .*
/b-widec3.d
0,0 → 1,6
#source: b-twoinsn.s
#source: b-post1.s
#source: b-widec3.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid symbol table: duplicate symbol `Main'
/bpo-1.s
0,0 → 1,2
# A most simple instruction needing a linker-supplied GREG.
x LDA $42,x+42
/loc1.d
0,0 → 1,19
#source: loc1.s
#ld: -e loc1 -m elf64mmix
#objdump: -str
 
# Single text file.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1000 l d \.text 0+ (|\.text)
0+1000 g \.text 0+ loc1
0+1000 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+1000 g \.text 0+ _start\.
 
Contents of section \.text:
1000 fd030303 .*
/bpo-10.d
0,0 → 1,22
#source: start4.s
#source: bpo-6.s
#source: bpo-5.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix --gc-sections
#objdump: -st
 
# Check that GC removes all (two) BPO:s when all are collected.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.init 0+ (|\.init)
0+7f8 l +d \.MMIX.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ l \.init 0+ _start
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+4 g \.init 0+ _start\.
 
Contents of section \.init:
0000 e37704a6 .*
/pushjs2b.d
0,0 → 1,33
#source: start4.s
#source: nop123.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the offset range gets a JMP
# stub expansion, backwards, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <a-0x4>:
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+40008 <pushja>:
40008: e3fd0002 setl \$253,0x2
4000c: f20c0002 pushj \$12,40014 <pushja\+0xc>
40010: e3fd0003 setl \$253,0x3
40014: f1fefffd jmp 8 <a>
0+40018 <_start>:
40018: e3fd0001 setl \$253,0x1
/b-badrx3.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badrx3.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: leading byte of operand word .* lop_fixrx
/bspec801.s
0,0 → 1,3
BSPEC 80
TETRA 0x98000001
ESPEC
/bpo-9.s
0,0 → 1,5
.set i,0
.rept 223*4
LDA $11,_start+i*64
.set i,i+1
.endr
/bpo-18.d
0,0 → 1,29
#source: start.s
#source: bpo-1.s
#source: bpo-2.s
#source: bpo-5.s
#source: bpo-6.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix -T$srcdir/$subdir/bpo64addr.ld
#objdump: -st
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+100 l d \.text 0+ (|\.text)
4000000000001060 l d \.text\.away 0+ (|\.text\.away)
0+7e0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
4000000000001064 l \.text\.away 0+ x
0+100 g \.text 0+ x
4000000000001060 g \.text\.away 0+ Main
0+104 g \.text 0+ x2
4000000000001060 g \.text\.away 0+ _start
4000000000001068 g \.text\.away 0+ y
 
Contents of section \.text:
0100 232dfc00 232dfd00 .*
Contents of section \.text\.away:
4000000000001060 e3fd0001 232afe1e 2321fe00 .*
Contents of section \.MMIX\.reg_contents:
07e0 00000000 00001168 00000000 0000a514 .*
07f0 40000000 00001070 .*
/sec-2.d
0,0 → 1,26
#source: sec-1.s
#source: start.s
#source: data1.s
#ld: -m mmo -T $srcdir/$subdir/mmosec1.ld
#objdump: -sh
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+100 0+100 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.other 0+50 1000000000000000 1000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE, DATA
2 \.data 0+4 2000000000000004 2000000000000004 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
Contents of section \.text:
0100 e3fd0001 .*
Contents of section \.other:
1000000000000000 00000001 00000002 00000003 00000004 .*
1000000000000010 ffffffff fffff827 50000000 0000000a .*
1000000000000020 00000009 00000008 00000007 25272900 .*
1000000000000030 00030d41 000186a2 26280000 00000000 .*
1000000000000040 00000000 0087a238 00000000 302a55a8 .*
Contents of section \.data:
2000000000000004 0000012c .*
/b-widec3.s
0,0 → 1,8
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide a valid end of a mmo file, but with the
% "n" in :Main in wide character format; the widening is with a nil, so it
% is treated like a normal "n". Also, it provides a normal "n", so the
% two symbols collide.
.text
.byte 0x98,0x0b,0x00,0x00,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 0x91,0,0x6e,0x04,0x81,0x01,0x6e,0x04,0x83,1,0x01,0x61,0x04,0x82,0,0,0x98,0x0c,0,0x06
/bpo-20m.d
0,0 → 1,8
#source: start.s
#source: bpo-10.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: Too many global registers
 
# Check that many too many gregs are recognized (and not signed/unsigned
# bugs with checks for < 32 appear).
/loc1.s
0,0 → 1,3
LOC #1000
loc1 SWYM 3,3,3
.global loc1
/bpo-10.s
0,0 → 1,6
# Overflow; specify 223*8 registers.
.set i,0
.rept 223*4*8
LDA $11,_start+i*64
.set i,i+1
.endr
/local4.d
0,0 → 1,8
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m elf64mmix
#error: not a local register
/pushjs2r.d
0,0 → 1,27
#source: nop123.s
#source: pushja.s
#source: ext1l.s
#source: pad2p18m32.s
#source: pad16.s
#source: nop123.s
#ld: -r -m elf64mmix
#objdump: -dr
 
# When linking relocatably, check that PUSHJ with a distance to the end of
# the section just outside the offset range gets expanded.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f0000000 jmp 10 <pushja\+0xc>
10: R_MMIX_JMP a
\.\.\.
0+24 <ext1>:
24: fd040810 swym 4,8,16
\.\.\.
40018: fd010203 swym 1,2,3
/jumpa-2f.d
0,0 → 1,21
#source: start.s
#source: jumpa.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0000002 jmp 10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/getaa-1b.d
0,0 → 1,24
#source: start.s
#source: a.s
#source: getaa.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <getaa>:
8: e3fd0002 setl \$253,0x2
c: e37b0004 setl \$123,0x4
10: e67b0000 incml \$123,0x0
14: e57b0000 incmh \$123,0x0
18: e47b0000 inch \$123,0x0
1c: e3fd0003 setl \$253,0x3
/b-badrx3.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FIXRX with invalid
% (!= 0, != 1), first byte of the operand word.
.text
.byte 0x98,5,0,24
.byte 2,0,0,0
/pushja7b-s.d
0,0 → 1,19
#source: start.s
#source: a.s
#source: pushja.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
# Like pushja7b, but with PUSHJ stub.
 
.*: file format mmo
Disassembly of section \.text:
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
0+4 <a>:
4: e3fd0004 setl \$253,0x4
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: f30cfffe pushj \$12,4 <a>
10: e3fd0003 setl \$253,0x3
/bza-8b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: bza.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <bza>:
8: e3fd0002 setl \$253,0x2
c: 43eafffe bz \$234,4 <a>
10: e3fd0003 setl \$253,0x3
/greg-3.d
0,0 → 1,36
#source: greg-1.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# A greg usage with an expanding insn. The register reloc must be
# evaluated before the expanding reloc. Here, it doesn't appear in the
# wrong order, and it doesn't seem like they would naturally appear in the
# wrong order, but anyway.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+10 g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
0+14 g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <_start-0x10>:
0: e3fe0014 setl \$254,0x14
4: e6fe0000 incml \$254,0x0
8: e5fe0000 incmh \$254,0x0
c: e4fe0000 inch \$254,0x0
 
0+10 <_start>:
10: e3fd0001 setl \$253,0x1
 
0+14 <a>:
14: e3fd0004 setl \$253,0x4
/jumpa12f.d
0,0 → 1,25
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0ffffff jmp 4000004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000004 <a>:
4000004: e3fd0004 setl \$253,0x4
/spec804.d
0,0 → 1,24
#source: bspec804.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #4: non-quote LOP in section length, high part.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+10 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 61616161 00000011 .*
/pushja7f-s.d
0,0 → 1,19
#source: start.s
#source: pushja.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
# Like pushja7f, but with PUSHJ stub.
 
.*: file format mmo
Disassembly of section \.text:
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <a>
c: e3fd0003 setl \$253,0x3
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/sec-2.s
0,0 → 1,2
.section .other,"ax"
TETRA 12,34,1
/b-badmain.s
0,0 → 1,7
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide the end of a mmo file with a value of
% :Main that does not correspond to the address in the initialization of
% $255 - the start address.
.text
.byte 0x98,0x0b,0,0,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 1,0x6e,0,0x81,1,0x61,4,0x82,0x98,0x0c,0,4
/bspec2m.d
0,0 → 1,21
#source: bspec1.s
#source: bspec2.s
#source: bspec1.s
#source: start.s
#source: ext1.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+fc g \*ABS\* ext1
0+ g \.text _start
 
Contents of section \.text:
0+ e3fd0001 .*
Contents of section \.MMIX\.spec_data\.2:
0000 0000002a 0000002a .*
Contents of section \.MMIX\.spec_data\.3:
0000 000000fc .*
/undef-1.d
0,0 → 1,4
#source: undef-1.s
#source: start.s
#ld: -m elf64mmix
#error: undefined reference to `regvar'
/start3.s
0,0 → 1,7
# When GC, all sections in each file must be referenced from within a kept
# section.
.section .init,"ax",@progbits
_start:
.quad x+41
.quad x2+42
 
/sec-7b.s
0,0 → 1,6
.section .di
.byte 44
.rept 32764
.byte 0
.endr
.byte 45
/bpo-8m.d
0,0 → 1,7
#source: start.s
#source: bpo-4.s
#source: pad2p18m32.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: Too many global registers: 224
/greg-10.d
0,0 → 1,25
#source: greg-1.s
#source: gregldo1.s
#source: start.s
#ld: -m mmo
#objdump: -dt
 
# Most simple greg usage: relocate to each possible location within an
# insn; mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+c g \.text Main
0+c g \.text _start
0+fe g \*REG\* areg
 
Disassembly of section \.text:
 
0+ <Main-0xc>:
0: 8c0c20fe ldo \$12,\$32,areg
4: 8d7bfe22 ldo \$123,areg,34
8: 8dfeea38 ldo areg,\$234,56
 
0+c <(Main|_start)>:
c: e3fd0001 setl \$253,0x1
/greg-3.s
0,0 → 1,3
# Have yet another GREG register allocation.
.global c
c GREG #42
/local10m.d
0,0 → 1,5
#source: local1.s
#source: ext1g.s
#source: start.s
#ld: -m mmo
#error: 254 is not a local register
/greg-18.d
0,0 → 1,39
#source: gregget1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-1.s
#source: a.s
#source: start.s
#as: -x
#ld: -m mmo
#objdump: -dt
#error: Too many global registers: 224, max 223
 
# Allocating the maximum number of gregs *plus one* is an error; other end
# of the stick, mmo.
/undef-2m.d
0,0 → 1,5
#source: undef-2.s
#source: start.s
#as: -x
#ld: -m mmo
#error: undefined reference to `undefd'
/undef-1.s
0,0 → 1,5
ADDU regvar,$8,$9
/bpo-2.d
0,0 → 1,23
#source: start.s
#source: greg-1.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Just a simple linker-allocated GREG plus one explicit GREG.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7e8 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 l \.text 0+ x
0+ g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
 
Contents of section \.text:
0000 e3fd0001 232afd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000002e 00007048 860f3a38 .*
/jumpa-5b.d
0,0 → 1,31
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000004 <jumpa>:
4000004: e3fd0002 setl \$253,0x2
4000008: e3ff0004 setl \$255,0x4
400000c: e6ff0000 incml \$255,0x0
4000010: e5ff0000 incmh \$255,0x0
4000014: e4ff0000 inch \$255,0x0
4000018: 9fffff00 go \$255,\$255,0
400001c: e3fd0003 setl \$253,0x3
/bpo-17m.d
0,0 → 1,22
#source: start.s
#source: bpo-8.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# A BPO and another reloc in the same section.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+10 g \.text areg
 
 
Contents of section \.text:
0000 e3fd0001 2336fe00 00000000 0000000c .*
0010 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000008 .*
/gregldo1.s
0,0 → 1,4
# Use a symbolic register areg, presumably allocated by greg in another file.
LDO $12,$32,areg
LDO $123,areg,34
LDO areg,$234,56
/reg-1m.d
0,0 → 1,7
#source: areg-256.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m mmo
#error: relocation truncated to fit: R_MMIX_REG against `areg'
/pushja8f.d
0,0 → 1,21
#source: start.s
#source: pushja.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/getaa-4f.d
0,0 → 1,25
#source: start.s
#source: getaa.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: f47bffff geta \$123,40004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+40004 <a>:
40004: e3fd0004 setl \$253,0x4
/b-bstab1.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-bstab1.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: fields y and z of lop_stab non-zero, y: 1, z: 2
/getaa14f.d
0,0 → 1,10
#source: start.s
#source: getaa.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#error: relocation truncated to fit: R_MMIX_ADDR19 against `a'$
/bpo-3m.d
0,0 → 1,20
#source: start.s
#source: bpo-1.s
#source: bpo-2.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Just two BPO relocs merged as one linker-allocated GREG.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+8 g \.text y
 
Contents of section \.text:
0000 e3fd0001 232afe1e 2321fe00 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000010 .*
/bpo-2.s
0,0 → 1,2
.global y
y LDA $33,y+8
/bpo-11.d
0,0 → 1,31
#source: start3.s
#source: bpo-6.s
#source: bpo-2.s
#source: bpo-5.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix --gc-sections
#objdump: -st
 
# Check that GC removes one of the three BPO:s, for the collected section.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.init 0+ (|\.init)
0+10 l d \.text 0+ (|\.text)
0+7e8 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ l \.init 0+ _start
0+14 g \.text 0+ x
0+10 g \.text 0+ x2
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+10 g \.text 0+ _start\.
 
 
Contents of section \.init:
0000 00000000 0000003d 00000000 0000003a .*
Contents of section \.text:
0010 232dfe00 232dfd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000107c 00000000 0000a420 .*
/loc2.d
0,0 → 1,21
#source: loc1.s
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
# Two text files.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1000 l d \.text 0+ (|\.text)
0+1004 g \.text 0+ _start
0+1000 g \.text 0+ loc1
0+1000 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+1004 g \.text 0+ _start\.
 
Contents of section \.text:
1000 fd030303 e3fd0001 .*
/sec-8a.s
0,0 → 1,4
.section .text.1
.byte 42
.space 32759
.byte 43
/bpo64addr.ld
0,0 → 1,13
OUTPUT_ARCH(mmix)
ENTRY(Main)
SECTIONS
{
.text 0x100 :
{ *(.text.x); *(.text.x2); }
 
.text.away 0x4000000000001060 :
{ *(.text); Main = _start; }
 
.MMIX.reg_contents :
{ *(.MMIX.reg_contents.linker_allocated); *(.MMIX.reg_contents); }
}
/bspec802.s
0,0 → 1,7
BSPEC 80
TETRA 4 % Decent section length name (in 32-bit words). However...
ESPEC % Everything ends here. The next thing is a LOP_LOC for .data, or
% an ending LOP-something, hence a non-LOP_QUOTE in the name.
 
.data
TETRA 0x112233
/b-offloc.s
0,0 → 1,9
% The .text contents is supposed to be linked --oformat binary with
% b-post1.s and b-goodmain.s. The code below will provide a LOP_LOC
% with a 64-bit address (0x789abcdef0123456) then 16 bytes of % random data.
 
.text
.byte 0x98,1,0,2
.8byte 0x789abcdef0123458
.byte 0xb0,0x45,0x19,0x7d,0x2c,0x1b,0x3,0xb2
.byte 0xe4,0xdb,0xf8,0x77,0xf,0xc7,0x66,0xfb
/b-fixo2.d
0,0 → 1,27
#source: b-twoinsn.s
#source: b-fixo2.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#objdump: -sht
 
# Note that we "optimize" out the high tetrabyte of 0 written to
# 2068098510aa5560, hence only the low part is left.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2068098510aa5564 2068098510aa5564 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
SYMBOL TABLE:
0+4 g \.text Main
0+4 g \.text a
 
Contents of section \.text:
0000 e3fd0001 e3fd0004 .*
Contents of section \.data:
2068098510aa5564 00000008 .*
/bpo-19.d
0,0 → 1,33
#source: start.s
#source: bpo-9.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# 223 (max) linker-allocated GREGs, four relocs merged for each register
# allocated.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+100 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
#...
0+ g \.text 0+ _start
#...
 
Contents of section \.text:
0000 e3fd0001 230b2000 230b2040 230b2080 .*
0010 230b20c0 230b2100 230b2140 230b2180 .*
0020 230b21c0 230b2200 230b2240 230b2280 .*
#...
0dd0 230bfcc0 230bfd00 230bfd40 230bfd80 .*
0de0 230bfdc0 230bfe00 230bfe40 230bfe80 .*
0df0 230bfec0 .*
Contents of section \.MMIX\.reg_contents:
0100 00000000 00000000 00000000 00000100 .*
0110 00000000 00000200 00000000 00000300 .*
#...
07d0 00000000 0000da00 00000000 0000db00 .*
07e0 00000000 0000dc00 00000000 0000dd00 .*
07f0 00000000 0000de00 .*
/data1.s
0,0 → 1,2
LOC #20 << 56
xx OCTA Main+44
/b-bstab1.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide an invalid LOP_STAB, one
% with non-zero y and/or z.
.text
.byte 0x98,11,1,2
/sec-3.d
0,0 → 1,36
#source: sec-1.s
#source: start.s
#source: data1.s
#ld: -m mmo
#objdump: -sh
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 secname 0+19 0+4 0+4 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 \.a\.fourth\.section 0+10 0+20 0+20 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 \.data 0+4 2000000000000004 2000000000000004 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
4 anothersec 0+13 2000000000000008 2000000000000008 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, DATA
5 thirdsec 0+a 200000000000001c 200000000000001c 0+ 2\*\*2
CONTENTS, READONLY
Contents of section \.text:
0000 e3fd0001 .*
Contents of section secname:
0004 00000001 00000002 00000003 00000004 .*
0014 ffffffff fffff827 50 .*
Contents of section \.a\.fourth\.section:
0020 00000000 0087a238 00000000 302a55a8 .*
Contents of section \.data:
2000000000000004 0000002c .*
Contents of section anothersec:
2000000000000008 0000000a 00000009 00000008 00000007 .*
2000000000000018 252729 .*
Contents of section thirdsec:
200000000000001c 00030d41 000186a2 2628 .*
/ext1l.s
0,0 → 1,2
.global ext1
ext1 SWYM 4,8,16
/loc3m.d
0,0 → 1,14
#source: start.s
#source: loc1.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+1000 g \.text Main
0+1000 g \.text _start
0+1004 g \.text loc1
 
Contents of section \.text:
1000 e3fd0001 fd030303 .*
/bpo-12m.d
0,0 → 1,9
#source: start.s
#source: bpo-7.s
#source: greg-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: base-plus-offset relocation against register symbol
 
# Check that we get an error message if we see a BPO against a register
# symbol. Variant 1: a GREG allocated register.
/bspec1.d
0,0 → 1,43
#source: bspec1.s
#source: start.s
#ld: -m elf64mmix
#readelf: -Ssr -x1 -x2
 
There are 6 section headers, starting at offset 0xb8:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+4 0+ AX 0 0 4
\[ 2\] \.MMIX\.spec_data\.2 PROGBITS 0+ 0+7c
0+4 0+ 0 0 4
\[ 3\] \.shstrtab STRTAB 0+ 0+80
0+33 0+ 0 0 1
\[ 4\] \.symtab SYMTAB 0+ 0+238
0+d8 0+18 5 3 8
\[ 5\] \.strtab STRTAB 0+ 0+310
0+2d 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
There are no relocations in this file\.
 
Symbol table '\.symtab' contains 9 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+ 0 SECTION LOCAL DEFAULT 2
3: 0+ 0 FUNC GLOBAL DEFAULT 1 Main
4: 0+ 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ e3fd0001 .*
 
Hex dump of section '\.MMIX\.spec_data\.2':
0x0+ 0000002a .*
/pushja1b-s.d
0,0 → 1,19
#source: start.s
#source: a.s
#source: pushja.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
# Like pushja1b but with PUSHJ stub.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <_start>:
0: e3fd0001 setl \$253,0x1
0+4 <a>:
4: e3fd0004 setl \$253,0x4
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: f30cfffe pushj \$12,4 <a>
10: e3fd0003 setl \$253,0x3
/loc2.s
0,0 → 1,3
LOC #2000
loc2 SWYM 3,2,3
.global loc2
/bpo-11.s
0,0 → 1,5
.set i,0
.rept 222
LDA $11,_start+i*256
.set i,i+1
.endr
/pushjs3bm.d
0,0 → 1,28
#source: nop123.s
#source: nop123.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pushja.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just inside the offset range of a JMP
# stub expansion works, backwards, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <a-0x8>:
0: fd010203 swym 1,2,3
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+3fffffc <pushja>:
3fffffc: e3fd0002 setl \$253,0x2
4000000: f20c0002 pushj \$12,4000008 <pushja\+0xc>
4000004: e3fd0003 setl \$253,0x3
4000008: f1000000 jmp 8 <a>
0+400000c <Main>:
400000c: e3fd0001 setl \$253,0x1
/local5.d
0,0 → 1,49
#source: greg-4.s
#source: greg-4.s
#source: local2.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m elf64mmix
#readelf: -Ssx1 -x2
 
# Like local1, but with two checks for a local register.
 
There are 6 section headers, starting at offset 0xc8:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+c 0+ AX 0 0 4
\[ 2\] \.MMIX\.reg_content PROGBITS 0+7e8 0+84
0+10 0+ W 0 0 1
\[ 3\] \.shstrtab STRTAB 0+ 0+94
0+34 0+ 0 0 1
\[ 4\] \.symtab SYMTAB 0+ 0+248
0+108 0+18 5 5 8
\[ 5\] \.strtab STRTAB 0+ 0+350
0+32 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
Symbol table '\.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+7e8 0 SECTION LOCAL DEFAULT 2
3: 0+fd 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
4: 0+fe 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
5: 0+fc 0 NOTYPE GLOBAL DEFAULT PRC\[0xff00\] ext1
6: 0+8 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ fd020202 fd030201 e3fd0001 .*
 
Hex dump of section '\.MMIX\.reg_contents':
0x0+7e8 00000000 0000004e 00000000 0000004e .*
/pushja1f-s.d
0,0 → 1,19
#source: start.s
#source: pushja.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
# Like pushja1f, but with PUSHJ stub.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <_start>:
0: e3fd0001 setl \$253,0x1
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <a>
c: e3fd0003 setl \$253,0x3
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/b-badm.d
0,0 → 1,6
#source: b-twoinsn.s
#source: b-post1.s
#source: b-badmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: initialization value for .255 is not `Main'
/b-nosym.d
0,0 → 1,18
#source: b-twoinsn.s
#source: b-post1.s
#source: b-nosym.s
#ld: --oformat binary
#objcopy_linked_file:
#objdump: -st 2>/dev/null
 
# Note that we have to redirect stderr when objdumping to get rid of the
# "no symbols" message that would otherwise cause a spurious failure and
# which we seemingly can't identify or prune in another way.
 
.*: file format mmo
 
SYMBOL TABLE:
no symbols
 
Contents of section \.text:
0000 e3fd0001 e3fd0004 .*
/greg-4.d
0,0 → 1,35
#source: greg-1.s
#source: gregbza1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# Like greg-3, but a different expanding insn.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+18 g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
0+1c g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <_start-0x18>:
0: 5afe0006 pbnz \$254,18 <_start>
4: e3ff001c setl \$255,0x1c
8: e6ff0000 incml \$255,0x0
c: e5ff0000 incmh \$255,0x0
10: e4ff0000 inch \$255,0x0
14: 9fffff00 go \$255,\$255,0
 
0+18 <_start>:
18: e3fd0001 setl \$253,0x1
 
0+1c <a>:
1c: e3fd0004 setl \$253,0x4
/b-fixo2.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FIXO storing the
% current address at address 0x2068098510aa5560.
.text
.byte 0x98,3,0x20,2
.8byte 0x68098510aa5560
/jumpa-8f.d
0,0 → 1,21
#source: start.s
#source: jumpa.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0000002 jmp 10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/getaa-7b.d
0,0 → 1,24
#source: start.s
#source: a.s
#source: getaa.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section .text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <getaa>:
8: e3fd0002 setl \$253,0x2
c: e37b0004 setl \$123,0x4
10: e67b0000 incml \$123,0x0
14: e57b0000 incmh \$123,0x0
18: e47b0000 inch \$123,0x0
1c: e3fd0003 setl \$253,0x3
/spec805.d
0,0 → 1,25
#source: bspec805.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #5: non-quote LOP in section length, low part.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+14 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 61616161 00000011 .*
0010 00000000 .*
/pad16.s
0,0 → 1,4
* Padding 16 bytes, suitable for testing relocs together with the larger
* padding files.
.text
.space 16,0
/start-1.d
0,0 → 1,21
#source: start2.s
#ld: -m elf64mmix
#objdump: -td
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+4 g \.text 0+ _start
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+4 g \.text 0+ _start\.
 
Disassembly of section \.text:
 
0+ <_start-0x4>:
0: fd000001 swym 0,0,1
 
0+4 <_start>:
4: fd000002 swym 0,0,2
/bspec1.s
0,0 → 1,3
BSPEC 2
TETRA :Main+42
ESPEC
/local6m.d
0,0 → 1,9
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: local2.s
#source: ext1.s
#source: start.s
#ld: -m mmo
#error: not a local register
/bpo-20.d
0,0 → 1,8
#source: start.s
#source: bpo-10.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: Too many global registers
 
# Check that many too many gregs are recognized (and not signed/unsigned
# bugs with checks for < 32 appear).
/sec-7c.s
0,0 → 1,6
.section .di
.byte 46
.rept 32765
.byte 0
.endr
.byte 47
/start4.s
0,0 → 1,6
# When GC, all sections in each file must be referenced from within a kept
# section (which .init is, which .text isn't). Here, we don't refer to
# anything so whatever is linked will be discarded.
.section .init,"ax",@progbits
_start:
SETL $119,1190
/undef-2.d
0,0 → 1,5
#source: undef-2.s
#source: start.s
#as: -x
#ld: -m elf64mmix
#error: undefined reference to `undefd'
/gregpsj1.s
0,0 → 1,4
# Use a symbolic register areg, presumably allocated by greg in another file.
# The "PUSHJ" will be expanded, and the reloc for areg must be resolved
# before the other relocs for that insn.
PUSHJ areg,a
/pushjs3b.d
0,0 → 1,30
#source: start4.s
#source: nop123.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pushja.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just inside the offset range of a JMP
# stub expansion works, backwards, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <a-0x4>:
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+3fffffc <pushja>:
3fffffc: e3fd0002 setl \$253,0x2
4000000: f20c0002 pushj \$12,4000008 <pushja\+0xc>
4000004: e3fd0003 setl \$253,0x3
4000008: f1000000 jmp 8 <a>
0+400000c <_start>:
400000c: e3fd0001 setl \$253,0x1
/greg-11.d
0,0 → 1,39
#source: greg-1.s
#source: gregldo1.s
#source: gregget2.s
#source: a.s
#source: greg-3.s
#source: start.s
#source: greg-2.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# Have two used gregs and one unused, mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+20 g \.text Main
0+fe g \*REG\* b
0+20 g \.text _start
0+fc g \*REG\* areg
0+fd g \*REG\* c
0+1c g \.text a
 
Disassembly of section \.text:
 
0+ <a-0x1c>:
0: 8c0c20fc ldo \$12,\$32,areg
4: 8d7bfc22 ldo \$123,areg,34
8: 8dfcea38 ldo areg,\$234,56
c: e3fe001c setl b,0x1c
10: e6fe0000 incml b,0x0
14: e5fe0000 incmh b,0x0
18: e4fe0000 inch b,0x0
 
0+1c <a>:
1c: e3fd0004 setl c,0x4
 
0+20 <(Main|_start)>:
20: e3fd0001 setl c,0x1
/b-nosym.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide a valid end of a mmo file but with no
% symbols (if that is actually valid).
.text
.byte 0x98,0x0b,0x00,0x00,0x98,0x0c,0x00,0x00
/greg-4.s
0,0 → 1,2
# A single local greg.
lsym GREG 78
/ext1-254.s
0,0 → 1,2
.global ext1
ext1 IS 254
/pushja.s
0,0 → 1,7
* Just PUSHJs to an external symbol, with some padding.
.text
.global pushja
pushja:
SET $253,2
PUSHJ $12,a
SET $253,3
/pushjs1m.d
0,0 → 1,26
#source: nop123.s
#source: pushja.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just within the offset range gets no
# stub expansion, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20cffff pushj \$12,40004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
0+40004 <a>:
40004: e3fd0004 setl \$253,0x4
0+40008 <Main>:
40008: e3fd0001 setl \$253,0x1
/hdr-1.d
0,0 → 1,19
#source: start.s
#source: a.s
#ld: -T $srcdir/$subdir/mmohdr1.ld
#objdump: -sht
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+100 0+100 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
SYMBOL TABLE:
0+100 g \.text Main
0+100 g \.text _start
0+104 g \.text a
 
 
Contents of section \.text:
0100 e3fd0001 e3fd0004 .*
/greg-19.d
0,0 → 1,21
#source: start.s
#source: aregm.s
#source: gregldo1.s
#ld: -m elf64mmix
#objdump: -str
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ g F \.text 0+ Main
0+ g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
 
Contents of section \.text:
0+ e3fd0001 8f03fe10 8e0307fe 8f05fe04 .*
0+10 8c0c20fe 8d7bfe22 8dfeea38 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000004 .*
/bpo-21m.d
0,0 → 1,9
#source: start.s
#source: bpo-11.s
#source: bpo-7.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$
 
# A BPO reloc against an undefined symbol, with a full set of normal
# BPO:s.
/b-badquot.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badquot.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: .* lop_quote
/pad2p26m32.s
0,0 → 1,4
* Padding (1 << 27)/2 - 32 bytes; that is, suitable for testing the
* long-range relocs.
.text
.space (1 << 27)/2 - 32,0
/undef-2.s
0,0 → 1,4
PUSHJ $5,undefd
/bpo-3.d
0,0 → 1,24
#source: start.s
#source: bpo-1.s
#source: bpo-2.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Just two BPO relocs merged as one linker-allocated GREG.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 l \.text 0+ x
0+ g \.text 0+ _start
#...
0+8 g \.text 0+ y
#...
 
Contents of section \.text:
0000 e3fd0001 232afe1e 2321fe00 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000010 .*
/bza-1f.d
0,0 → 1,26
#source: start.s
#source: bza.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <bza>:
4: e3fd0002 setl \$253,0x2
8: 5aea0006 pbnz \$234,20 <bza\+0x1c>
c: e3ff0024 setl \$255,0x24
10: e6ff0000 incml \$255,0x0
14: e5ff0000 incmh \$255,0x0
18: e4ff0000 inch \$255,0x0
1c: 9fffff00 go \$255,\$255,0
20: e3fd0003 setl \$253,0x3
 
0+24 <a>:
24: e3fd0004 setl \$253,0x4
/pushjs3r.d
0,0 → 1,32
#source: nop123.s
#source: pushja.s
#source: undef-2.s
#source: nop123.s
#source: pad16.s
#source: pad2p18m32.s
#ld: -r -m elf64mmix
#objdump: -dr
 
# When linking relocatably, check two expanded stubbable PUSHJs.
 
# With better relaxation support for relocatable links, both should be
# able to pass through unexpanded. Right now, we just check that they can
# coexist peacefully.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f0000000 jmp 10 <pushja\+0xc>
10: R_MMIX_JMP a
\.\.\.
24: f2050001 pushj \$5,28 <pushja\+0x24>
28: f0000000 jmp 28 <pushja\+0x24>
28: R_MMIX_JMP undefd
\.\.\.
3c: fd010203 swym 1,2,3
\.\.\.
/jumpa-3f.d
0,0 → 1,28
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad4.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0ffffff jmp 4000004 <a>
c: fd000000 swym 0,0,0
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000004 <a>:
4000004: e3fd0004 setl \$253,0x4
/getaa-2b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: getaa.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <getaa>:
8: e3fd0002 setl \$253,0x2
c: f57bfffe geta \$123,4 <a>
10: e3fd0003 setl \$253,0x3
/zeroehelf.d
0,0 → 1,17
#source: x.s
#source: y.s
#ld: -m elf64mmix -Ttext 0xa00 -T $srcdir/$subdir/zeroeh.ld
#objdump: -s
 
# The word at address 201c, for the linkonce-excluded section, must be zero.
 
.*: file format elf64-mmix
 
Contents of section \.text:
0a00 00000a08 00000a10 00000001 00000002 .*
0a10 00000003 .*
Contents of section \.eh_frame:
2000 00000002 00000a08 00000008 00000007 .*
2010 00000a10 00000004 00006066 00000000 .*
2020 00000004 .*
#pass
/main1.s
0,0 → 1,5
% For tests regarding the Main symbol and mmo. Most tests use start.s as
% a base file.
.text
Main:
SET $253,1
/jumpa13f.d
0,0 → 1,29
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: e3ff0008 setl \$255,0x8
c: e6ff0400 incml \$255,0x400
10: e5ff0000 incmh \$255,0x0
14: e4ff0000 inch \$255,0x0
18: 9fffff00 go \$255,\$255,0
1c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000008 <a>:
4000008: e3fd0004 setl \$253,0x4
/getaa12b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: getaa.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+40000 <getaa>:
40000: e3fd0002 setl \$253,0x2
40004: f57b0000 geta \$123,4 <a>
40008: e3fd0003 setl \$253,0x3
/local1m.d
0,0 → 1,19
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+4 g \.text Main
0+fc g \*REG\* ext1
0+4 g \.text _start
 
Contents of section \.text:
0000 fd030201 e3fd0001 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000004e 00000000 0000004e .*
/sec-6m.d
0,0 → 1,32
#source: start.s
#source: sec-6.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -xs
 
# A non-loaded section with relocs would have the SEC_RELOC bit set in the
# output if we didn't clear it.
 
.*: file format mmo
.*
architecture: mmix, flags 0x0+10:
HAS_SYMS
start address 0x0+
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.debug_frame 0+10 0+ 0+ 0+ 2\*\*2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+8 g \.text debugb
0+4 g \.text a
 
Contents of section \.text:
0000 e3fd0001 e3fd0004 .*
Contents of section \.debug_frame:
0000 00000000 00000004 00000000 00000008 .*
/bza.s
0,0 → 1,7
* Just BEQs to an external symbol, with some padding.
.text
.global bza
bza:
SET $253,2
BZ $234,a
SET $253,3
/b-badquot.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_QUOTE with invalid;
% non-zero, YZ field.
.text
.byte 0x98,0,0xff,0
/bpo-3.s
0,0 → 1,5
LDOU $121,_start+42+4+4+257
/sec-8b.s
0,0 → 1,4
.section .text.1
.byte 44
.space 32764
.byte 45
/loc3.d
0,0 → 1,21
#source: start.s
#source: loc1.s
#ld: -m elf64mmix
#objdump: -str
 
# Two text files in opposite order.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1000 l d \.text 0+ (|\.text)
0+1000 g \.text 0+ _start
0+1004 g \.text 0+ loc1
0+1000 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+1000 g \.text 0+ _start\.
 
Contents of section \.text:
1000 e3fd0001 fd030303 .*
/bpo-12.d
0,0 → 1,9
#source: start.s
#source: bpo-7.s
#source: greg-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: base-plus-offset relocation against register symbol
 
# Check that we get an error message if we see a BPO against a register
# symbol. Variant 1: a GREG allocated register.
/bpo-9m.d
0,0 → 1,22
#source: start3.s
#source: bpo-6.s
#source: bpo-5.s
#as: -linker-allocated-gregs
#ld: -m mmo --gc-sections
#objdump: -st
 
# Check that GC does not mess up things when no BPO:s are collected.
# Note that mmo doesn't support GC at the moment; it's a nop.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+4 g \.text x
0+ g \.text x2
 
Contents of section \.text:
0000 232dfe00 232dfd00 00000000 0000002d .*
0010 00000000 0000002a .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000106c 00000000 0000a410 .*
/greg-20.d
0,0 → 1,18
#source: start.s
#source: aregm.s
#source: gregldo1.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+fe g \*REG\* areg
 
Contents of section \.text:
0+ e3fd0001 8f03fe10 8e0307fe 8f05fe04 .*
0+10 8c0c20fe 8d7bfe22 8dfeea38 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000004 .*
/bspec803.s
0,0 → 1,9
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words). However...
BYTE "aaaa"
BYTE 0x98,"aaa" # A LOP_QUOTEd part here. And also...
ESPEC % Everything ends here. The next thing is a LOP_LOC for .data, or
% an ending LOP-something, hence a non-LOP_QUOTE in the section flags.
 
.data
TETRA 0x112233
/local11m.d
0,0 → 1,6
#source: local1.s
#source: greg-1.s
#source: ext1l.s
#source: start.s
#ld: -m mmo
#error: valid only with a register or absolute value
/sec-4.d
0,0 → 1,22
#source: sec-2.s
#source: start.s
#source: data1.s
#ld: -m mmo -T $srcdir/$subdir/mmosec1.ld
#objdump: -sh
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+100 0+100 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000004 2000000000000004 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.other 0+c 1000000000000000 1000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
Contents of section \.text:
0100 e3fd0001 .*
Contents of section \.data:
2000000000000004 0000012c .*
Contents of section \.other:
1000000000000000 0000000c 00000022 00000001 .*
/pushja1b.d
0,0 → 1,25
#source: start.s
#source: a.s
#source: pushja.s
#as: -x --no-pushj-stubs
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: e3ff0004 setl \$255,0x4
10: e6ff0000 incml \$255,0x0
14: e5ff0000 incmh \$255,0x0
18: e4ff0000 inch \$255,0x0
1c: bf0cff00 pushgo \$12,\$255,0
20: e3fd0003 setl \$253,0x3
/undef-3m.d
0,0 → 1,18
#source: start.s
#ld: -m mmo -u undefd
#objdump: -x
 
.*: file format mmo
.*
architecture: mmix, flags 0x0+10:
HAS_SYMS
start address 0x0+
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
SYMBOL TABLE:
0+ g \.text Main
0+ g \*UND\* undefd
0+ g \.text _start
/bspec2.d
0,0 → 1,53
#source: bspec1.s
#source: bspec2.s
#source: bspec1.s
#source: start.s
#source: ext1.s
#ld: -m elf64mmix
#readelf: -Ssr -x1 -x2 -x3
 
There are 7 section headers, starting at offset 0xd0:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+4 0+ AX 0 0 4
\[ 2\] \.MMIX\.spec_data\.2 PROGBITS 0+ 0+7c
0+8 0+ 0 0 4
\[ 3\] \.MMIX\.spec_data\.3 PROGBITS 0+ 0+84
0+4 0+ 0 0 4
\[ 4\] \.shstrtab STRTAB 0+ 0+88
0+45 0+ 0 0 1
\[ 5\] \.symtab SYMTAB 0+ 0+290
0+108 0+18 6 4 8
\[ 6\] \.strtab STRTAB 0+ 0+398
0+32 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
There are no relocations in this file\.
 
Symbol table '\.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+ 0 SECTION LOCAL DEFAULT 2
3: 0+ 0 SECTION LOCAL DEFAULT 3
4: 0+ 0 FUNC GLOBAL DEFAULT 1 Main
5: 0+fc 0 NOTYPE GLOBAL DEFAULT ABS ext1
6: 0+ 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ e3fd0001 .*
 
Hex dump of section '\.MMIX\.spec_data\.2':
0x0+ 0000002a 0000002a .*
 
Hex dump of section '\.MMIX\.spec_data\.3':
0x0+ 000000fc .*
/mmosec1.ld
0,0 → 1,16
OUTPUT_ARCH(mmix)
ENTRY(Main)
SECTIONS
{
.text 0x100 :
{ *(.text); Main = _start; }
 
.other 0x1000000000000000 :
{ *(secname); *(anothersec); *(thirdsec); *(.a.fourth.section); }
 
.data 0x2000000000000000 :
{ *(.data); }
 
.MMIX.reg_contents :
{ *(.MMIX.reg_contents); }
}
/local6.d
0,0 → 1,9
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: local2.s
#source: ext1.s
#source: start.s
#ld: -m elf64mmix
#error: not a local register
/jumpa-6b.d
0,0 → 1,11
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -no-expand
#ld: -m elf64mmix
#error: relocation truncated to fit: R_MMIX_ADDR27 against symbol `a'
/bpo-18m.d
0,0 → 1,25
#source: start.s
#source: bpo-1.s
#source: bpo-2.s
#source: bpo-5.s
#source: bpo-6.s
#as: -linker-allocated-gregs
#ld: -m mmo -T$srcdir/$subdir/bpo64addr.ld
#objdump: -st
 
.*: file format mmo
 
SYMBOL TABLE:
4000000000001060 g \*ABS\* Main
0+100 g \.text x
0+104 g \.text x2
4000000000001060 g \*ABS\* _start
4000000000001068 g \*ABS\* y
 
Contents of section \.text:
0100 232dfc00 232dfd00 .*
Contents of section \.text\.away:
4000000000001060 e3fd0001 232afe1e 2321fe00 .*
Contents of section \.MMIX\.reg_contents:
07e0 00000000 00001168 00000000 0000a514 .*
07f0 40000000 00001070 .*
/greg-5.d
0,0 → 1,34
#source: greg-1.s
#source: gregpsj1.s
#source: start.s
#source: a.s
#as: -x --no-pushj-stubs
#ld: -m elf64mmix
#objdump: -dt
 
# Like greg-3, but a different expanding insn.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+14 g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
0+18 g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <_start-0x14>:
0: e3ff0018 setl \$255,0x18
4: e6ff0000 incml \$255,0x0
8: e5ff0000 incmh \$255,0x0
c: e4ff0000 inch \$255,0x0
10: bffeff00 pushgo \$254,\$255,0
 
0+14 <_start>:
14: e3fd0001 setl \$253,0x1
 
0+18 <a>:
18: e3fd0004 setl \$253,0x4
/spec806.d
0,0 → 1,25
#source: bspec806.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #6: non-quote LOP in section vma, high part.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+18 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 61616161 00000011 .*
0010 00000000 0000000c .*
/reg-2m.d
0,0 → 1,7
#source: areg-t.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m mmo
#error: register relocation against non-register symbol: areg in \.text
/start-2.d
0,0 → 1,4
#source: main1.s
#source: a.s
#ld: -m mmo -e a
#error: Bad symbol definition: `Main' set to
/bspec2.s
0,0 → 1,3
BSPEC 3
TETRA ext1
ESPEC
/bpo-4m.d
0,0 → 1,22
#source: start.s
#source: greg-1.s
#source: bpo-3.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Three GREGs: one explicit, two linker-allocated.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+fe g \*REG\* areg
 
Contents of section \.text:
0000 e3fd0001 8f79fd00 232afc00 .*
Contents of section \.MMIX\.reg_contents:
07e0 00000000 00000032 00000000 00000133 .*
07f0 00007048 860f3a38 .*
/ext1.s
0,0 → 1,2
.global ext1
ext1 IS 252
/bpo-21.d
0,0 → 1,10
#source: start.s
#source: bpo-11.s
#source: bpo-7.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$
 
# A BPO reloc against an undefined symbol, with a full set of normal
# BPO:s.
 
/undef-3.d
0,0 → 1,34
#source: start.s
#ld: -u undefd -m elf64mmix
#readelf: -S -s
 
There are 5 section headers, starting at offset 0xa0:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+4 0+ AX 0 0 4
\[ 2\] \.shstrtab STRTAB 0+ 0+7c
0+21 0+ 0 0 1
\[ 3\] \.symtab SYMTAB 0+ 0+1e0
0+c0 0+18 4 2 8
\[ 4\] \.strtab STRTAB 0+ 0+2a0
0+2f 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
Symbol table '\.symtab' contains 8 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+ 0 NOTYPE GLOBAL DEFAULT UND undefd
3: 0+ 0 NOTYPE GLOBAL DEFAULT 1 _start
4: 2000000000000000 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
5: 2000000000000000 0 NOTYPE GLOBAL DEFAULT ABS _edata
6: 2000000000000000 0 NOTYPE GLOBAL DEFAULT ABS _end
7: 0+ 0 NOTYPE GLOBAL DEFAULT 1 _start\.
/sec-7d.s
0,0 → 1,6
.section .di
.byte 48
.rept 32766
.byte 0
.endr
.byte 49
/greg-12.d
0,0 → 1,34
#source: greg-1.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# A greg usage with an expanding insn. The register reloc must be
# evaluated before the expanding reloc. Here, it doesn't appear in the
# wrong order, and it doesn't seem like they would naturally appear in the
# wrong order, but anyway; mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+10 g \.text Main
0+10 g \.text _start
0+fe g \*REG\* areg
0+14 g \.text a
 
Disassembly of section \.text:
 
0+ <(Main|_start)-0x10>:
0: e3fe0014 setl areg,0x14
4: e6fe0000 incml areg,0x0
8: e5fe0000 incmh areg,0x0
c: e4fe0000 inch areg,0x0
 
0+10 <(Main|_start)>:
10: e3fd0001 setl \$253,0x1
 
0+14 <a>:
14: e3fd0004 setl \$253,0x4
/greg-5.s
0,0 → 1,20
# 16 local gregs.
A GREG
B GREG
C GREG
D GREG
 
E GREG
F GREG
G GREG
H GREG
 
I GREG
J GREG
K GREG
L GREG
 
M GREG
N GREG
O GREG
P GREG
/pad4.s
0,0 → 1,4
* Padding 16 bytes, suitable for testing relocs together with the larger
* padding files.
.text
.space 4,0
/greg-5s.d
0,0 → 1,25
#source: greg-1.s
#source: gregpsj1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# Like greg-3, but a different expanding insn.
 
.*: file format elf64-mmix
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
0+8 g \.text 0+ a
Disassembly of section \.text:
0+ <_start-0x4>:
0: f2fe0002 pushj \$254,8 <a>
0+4 <_start>:
4: e3fd0001 setl \$253,0x1
0+8 <a>:
8: e3fd0004 setl \$253,0x4
/aregm.s
0,0 → 1,5
.global areg
areg GREG Main+4
LDOU $3,areg,16
LDOU $3,$7,areg
LDOU $5,Main+8
/jumpa-1b.d
0,0 → 1,25
#source: start.s
#source: a.s
#source: jumpa.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <jumpa>:
8: e3fd0002 setl \$253,0x2
c: f1fffffe jmp 4 <a>
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: fd000000 swym 0,0,0
20: e3fd0003 setl \$253,0x3
/bpo-13m.d
0,0 → 1,9
#source: start.s
#source: bpo-7.s
#source: areg-256.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: base-plus-offset relocation against register symbol
 
# Check that we get an error message if we see a BPO against a register
# symbol. Variant 2: a register symbol.
/loc4m.d
0,0 → 1,17
#source: loc1.s
#source: data1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+1004 g \.text Main
0+1004 g \.text _start
0+1000 g \.text loc1
 
Contents of section \.text:
1000 fd030303 e3fd0001 .*
Contents of section \.data:
2000000000000004 00001030 .*
/bpo-4.d
0,0 → 1,25
#source: start.s
#source: greg-1.s
#source: bpo-3.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Three GREGs: one explicit, two linker-allocated.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7e0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+8 l \.text 0+ x
0+ g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
 
Contents of section \.text:
0000 e3fd0001 8f79fd00 232afc00 .*
Contents of section \.MMIX\.reg_contents:
07e0 00000000 00000032 00000000 00000133 .*
07f0 00007048 860f3a38 .*
/x.s
0,0 → 1,26
;# Main file, x.s, with the program (_start) referring to two
;# linkonce functions fn and fn2. The functions fn and fn2 are
;# supposed to be equivalent of C++ template instantiations; the
;# main file instantiates fn. There's the equivalent of an FDE
;# entry in .eh_frame, referring to fn via a local label.
 
.text
.global _start
_start:
.long fn
.long fn2
 
.section .gnu.linkonce.t.fn,"ax",@progbits
.weak fn
.type fn,@function
fn:
L:a:
.long 1
.long 2
L:b:
.size fn,L:b-L:a
 
.section .eh_frame,"aw",@progbits
.long 2
.long L:a
.long L:b-L:a
/bza-7f.d
0,0 → 1,26
#source: start.s
#source: bza.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <bza>:
4: e3fd0002 setl \$253,0x2
8: 5aea0006 pbnz \$234,20 <bza\+0x1c>
c: e3ff0024 setl \$255,0x24
10: e6ff0000 incml \$255,0x0
14: e5ff0000 incmh \$255,0x0
18: e4ff0000 inch \$255,0x0
1c: 9fffff00 go \$255,\$255,0
20: e3fd0003 setl \$253,0x3
 
0+24 <a>:
24: e3fd0004 setl \$253,0x4
/getaa-8b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: getaa.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <getaa>:
8: e3fd0002 setl \$253,0x2
c: f57bfffe geta \$123,4 <a>
10: e3fd0003 setl \$253,0x3
/jumpa-9f.d
0,0 → 1,28
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad4.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0ffffff jmp 4000004 <a>
c: fd000000 swym 0,0,0
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000004 <a>:
4000004: e3fd0004 setl \$253,0x4
/local7m.d
0,0 → 1,20
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: local2.s
#source: ext1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+8 g \.text Main
0+fc g \*ABS\* ext1
0+8 g \.text _start
 
Contents of section \.text:
0000 fd030201 fd020202 e3fd0001 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000004e 00000000 0000004e .*
/bpo-4.s
0,0 → 1,5
.set i,0
.rept 223
LDA $11,_start+i*256
.set i,i+1
.endr
/bpo-13.d
0,0 → 1,9
#source: start.s
#source: bpo-7.s
#source: areg-256.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: base-plus-offset relocation against register symbol
 
# Check that we get an error message if we see a BPO against a register
# symbol. Variant 2: a register symbol.
/loc4.d
0,0 → 1,28
#source: loc1.s
#source: data1.s
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
# Two text files and one data.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1000 l d \.text 0+ (|\.text)
2000000000000000 l d \.data 0+ (|\.data)
2000000000000000 l \.data 0+ xx
0+1004 g F \.text 0+ Main
2000000000000000 g \*ABS\* 0+ __\.MMIX\.start\.\.data
0+1004 g \.text 0+ _start
0+1000 g \.text 0+ loc1
0+1000 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000008 g \*ABS\* 0+ __bss_start
2000000000000008 g \*ABS\* 0+ _edata
2000000000000008 g \*ABS\* 0+ _end
0+1004 g \.text 0+ _start\.
 
Contents of section \.text:
1000 fd030303 e3fd0001 .*
Contents of section \.data:
2000000000000000 00000000 00001030 .*
/pushjs4b.d
0,0 → 1,35
#source: start4.s
#source: nop123.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the offset range of a JMP
# stub expansion works, backwards, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <a-0x4>:
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+4000000 <pushja>:
4000000: e3fd0002 setl \$253,0x2
4000004: f20c0002 pushj \$12,400000c <pushja\+0xc>
4000008: e3fd0003 setl \$253,0x3
400000c: e3ff0008 setl \$255,0x8
4000010: e6ff0000 incml \$255,0x0
4000014: e5ff0000 incmh \$255,0x0
4000018: e4ff0000 inch \$255,0x0
400001c: 9f00ff00 go \$0,\$255,0
0+4000020 <_start>:
4000020: e3fd0001 setl \$253,0x1
/b-post1.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary, and will
% correspond to a LOP_POST for an initialization of $255 with 4. A
% LOP_STAB, such as in b-goodmain.s should follow.
.text
.byte 0x98,0x0a,0,0xff,0,0,0,0,0,0,0,4
/bspec804.s
0,0 → 1,9
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words).
BYTE "aaaaaaaa"
TETRA 0x11 % Flags. However...
ESPEC % Everything ends here. The next thing is a LOP_LOC for .data, or
% an ending LOP-something, hence a non-LOP_QUOTE in the section
% length, high part.
.data
TETRA 0x112233
/pushjs2m.d
0,0 → 1,28
#source: nop123.s
#source: pushja.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the PUSHJ offset range gets
# a JMP stub expansion, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f000ffff jmp 4000c <a>
\.\.\.
0+4000c <a>:
4000c: e3fd0004 setl \$253,0x4
0+40010 <Main>:
40010: e3fd0001 setl \$253,0x1
/sec-5.d
0,0 → 1,28
#source: b-twoinsn.s
#source: b-offloc.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objdump: -sh
 
# Check that sections are automatically created to cope with contents at
# unexpected addresses when an mmo is read in. We used to do this by
# e.g. linking .text at an unexpected address, like in sec-9.d. That no
# longer works, because .text and .data now gets section descriptors at
# mmo output when the address and contents doesn't trivially reflect the
# section contents at link time. To test, we instead read in an mmo
# formed from a link to binary format, like the b-*.d tests for mmo
# execution paths.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.MMIX\.sec\.0 0+10 789abcdef0123458 789abcdef0123458 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
Contents of section \.text:
0+ e3fd0001 e3fd0004 .*
Contents of section \.MMIX\.sec\.0:
789abcdef0123458 b045197d 2c1b03b2 e4dbf877 0fc766fb .*
/pushjs4bm.d
0,0 → 1,33
#source: nop123.s
#source: nop123.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the offset range of a JMP
# stub expansion works, backwards, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <a-0x8>:
0: fd010203 swym 1,2,3
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+4000000 <pushja>:
4000000: e3fd0002 setl \$253,0x2
4000004: f20c0002 pushj \$12,400000c <pushja\+0xc>
4000008: e3fd0003 setl \$253,0x3
400000c: e3ff0008 setl \$255,0x8
4000010: e6ff0000 incml \$255,0x0
4000014: e5ff0000 incmh \$255,0x0
4000018: e4ff0000 inch \$255,0x0
400001c: 9f00ff00 go \$0,\$255,0
0+4000020 <Main>:
4000020: e3fd0001 setl \$253,0x1
/bza-2f.d
0,0 → 1,21
#source: start.s
#source: bza.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <bza>:
4: e3fd0002 setl \$253,0x2
8: 42ea0002 bz \$234,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/local7.d
0,0 → 1,50
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: local2.s
#source: ext1.s
#source: start.s
#ld: -m elf64mmix
#readelf: -Ssx1 -x2
 
# Like local1, but ext1 is here a constant, not a global register and two
# local-register checks.
 
There are 6 section headers, starting at offset 0xc8:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+c 0+ AX 0 0 4
\[ 2\] \.MMIX\.reg_content PROGBITS 0+7e8 0+84
0+10 0+ W 0 0 1
\[ 3\] \.shstrtab STRTAB 0+ 0+94
0+34 0+ 0 0 1
\[ 4\] \.symtab SYMTAB 0+ 0+248
0+108 0+18 5 5 8
\[ 5\] \.strtab STRTAB 0+ 0+350
0+32 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
Symbol table '\.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+7e8 0 SECTION LOCAL DEFAULT 2
3: 0+fd 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
4: 0+fe 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
5: 0+fc 0 NOTYPE GLOBAL DEFAULT ABS ext1
6: 0+8 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ fd030201 fd020202 e3fd0001 .*
 
Hex dump of section '\.MMIX\.reg_contents':
0x0+7e8 00000000 0000004e 00000000 0000004e .*
/pushjs4r.d
0,0 → 1,29
#source: nop123.s
#source: pushja.s
#source: undef-2.s
#source: pad2p18m32.s
#source: nop123.s
#ld: -r -m elf64mmix
#objdump: -dr
 
# When linking relocatably, check two stubbable PUSHJ:s, one expanded.
 
# With better relaxation support for relocatable links, both should be
# able to pass through unexpanded. Right now, we just check that they can
# coexist peacefully.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f0000000 jmp 10 <pushja\+0xc>
10: R_MMIX_JMP a
\.\.\.
24: f2050000 pushj \$5,24 <pushja\+0x20>
24: R_MMIX_PUSHJ_STUBBABLE undefd
\.\.\.
40008: fd010203 swym 1,2,3
/pushja7b.d
0,0 → 1,25
#source: start.s
#source: a.s
#source: pushja.s
#as: -x --no-pushj-stubs
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: e3ff0004 setl \$255,0x4
10: e6ff0000 incml \$255,0x0
14: e5ff0000 incmh \$255,0x0
18: e4ff0000 inch \$255,0x0
1c: bf0cff00 pushgo \$12,\$255,0
20: e3fd0003 setl \$253,0x3
/jumpa-4f.d
0,0 → 1,25
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0ffffff jmp 4000004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000004 <a>:
4000004: e3fd0004 setl \$253,0x4
/greg-6.d
0,0 → 1,286
#source: gregget1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-1.s
#source: a.s
#source: start.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# Allocating the maximum number of gregs and referring to one at the end
# still works.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+0 l d \.text 0+ (|\.text)
0+100 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+20 l \*REG\* 0+ P
0+21 l \*REG\* 0+ O
0+22 l \*REG\* 0+ N
0+23 l \*REG\* 0+ M
0+24 l \*REG\* 0+ L
0+25 l \*REG\* 0+ K
0+26 l \*REG\* 0+ J
0+27 l \*REG\* 0+ I
0+28 l \*REG\* 0+ H
0+29 l \*REG\* 0+ G
0+2a l \*REG\* 0+ F
0+2b l \*REG\* 0+ E
0+2c l \*REG\* 0+ D
0+2d l \*REG\* 0+ C
0+2e l \*REG\* 0+ B
0+2f l \*REG\* 0+ A
0+30 l \*REG\* 0+ P
0+31 l \*REG\* 0+ O
0+32 l \*REG\* 0+ N
0+33 l \*REG\* 0+ M
0+34 l \*REG\* 0+ L
0+35 l \*REG\* 0+ K
0+36 l \*REG\* 0+ J
0+37 l \*REG\* 0+ I
0+38 l \*REG\* 0+ H
0+39 l \*REG\* 0+ G
0+3a l \*REG\* 0+ F
0+3b l \*REG\* 0+ E
0+3c l \*REG\* 0+ D
0+3d l \*REG\* 0+ C
0+3e l \*REG\* 0+ B
0+3f l \*REG\* 0+ A
0+40 l \*REG\* 0+ P
0+41 l \*REG\* 0+ O
0+42 l \*REG\* 0+ N
0+43 l \*REG\* 0+ M
0+44 l \*REG\* 0+ L
0+45 l \*REG\* 0+ K
0+46 l \*REG\* 0+ J
0+47 l \*REG\* 0+ I
0+48 l \*REG\* 0+ H
0+49 l \*REG\* 0+ G
0+4a l \*REG\* 0+ F
0+4b l \*REG\* 0+ E
0+4c l \*REG\* 0+ D
0+4d l \*REG\* 0+ C
0+4e l \*REG\* 0+ B
0+4f l \*REG\* 0+ A
0+50 l \*REG\* 0+ P
0+51 l \*REG\* 0+ O
0+52 l \*REG\* 0+ N
0+53 l \*REG\* 0+ M
0+54 l \*REG\* 0+ L
0+55 l \*REG\* 0+ K
0+56 l \*REG\* 0+ J
0+57 l \*REG\* 0+ I
0+58 l \*REG\* 0+ H
0+59 l \*REG\* 0+ G
0+5a l \*REG\* 0+ F
0+5b l \*REG\* 0+ E
0+5c l \*REG\* 0+ D
0+5d l \*REG\* 0+ C
0+5e l \*REG\* 0+ B
0+5f l \*REG\* 0+ A
0+60 l \*REG\* 0+ P
0+61 l \*REG\* 0+ O
0+62 l \*REG\* 0+ N
0+63 l \*REG\* 0+ M
0+64 l \*REG\* 0+ L
0+65 l \*REG\* 0+ K
0+66 l \*REG\* 0+ J
0+67 l \*REG\* 0+ I
0+68 l \*REG\* 0+ H
0+69 l \*REG\* 0+ G
0+6a l \*REG\* 0+ F
0+6b l \*REG\* 0+ E
0+6c l \*REG\* 0+ D
0+6d l \*REG\* 0+ C
0+6e l \*REG\* 0+ B
0+6f l \*REG\* 0+ A
0+70 l \*REG\* 0+ P
0+71 l \*REG\* 0+ O
0+72 l \*REG\* 0+ N
0+73 l \*REG\* 0+ M
0+74 l \*REG\* 0+ L
0+75 l \*REG\* 0+ K
0+76 l \*REG\* 0+ J
0+77 l \*REG\* 0+ I
0+78 l \*REG\* 0+ H
0+79 l \*REG\* 0+ G
0+7a l \*REG\* 0+ F
0+7b l \*REG\* 0+ E
0+7c l \*REG\* 0+ D
0+7d l \*REG\* 0+ C
0+7e l \*REG\* 0+ B
0+7f l \*REG\* 0+ A
0+80 l \*REG\* 0+ P
0+81 l \*REG\* 0+ O
0+82 l \*REG\* 0+ N
0+83 l \*REG\* 0+ M
0+84 l \*REG\* 0+ L
0+85 l \*REG\* 0+ K
0+86 l \*REG\* 0+ J
0+87 l \*REG\* 0+ I
0+88 l \*REG\* 0+ H
0+89 l \*REG\* 0+ G
0+8a l \*REG\* 0+ F
0+8b l \*REG\* 0+ E
0+8c l \*REG\* 0+ D
0+8d l \*REG\* 0+ C
0+8e l \*REG\* 0+ B
0+8f l \*REG\* 0+ A
0+90 l \*REG\* 0+ P
0+91 l \*REG\* 0+ O
0+92 l \*REG\* 0+ N
0+93 l \*REG\* 0+ M
0+94 l \*REG\* 0+ L
0+95 l \*REG\* 0+ K
0+96 l \*REG\* 0+ J
0+97 l \*REG\* 0+ I
0+98 l \*REG\* 0+ H
0+99 l \*REG\* 0+ G
0+9a l \*REG\* 0+ F
0+9b l \*REG\* 0+ E
0+9c l \*REG\* 0+ D
0+9d l \*REG\* 0+ C
0+9e l \*REG\* 0+ B
0+9f l \*REG\* 0+ A
0+a0 l \*REG\* 0+ P
0+a1 l \*REG\* 0+ O
0+a2 l \*REG\* 0+ N
0+a3 l \*REG\* 0+ M
0+a4 l \*REG\* 0+ L
0+a5 l \*REG\* 0+ K
0+a6 l \*REG\* 0+ J
0+a7 l \*REG\* 0+ I
0+a8 l \*REG\* 0+ H
0+a9 l \*REG\* 0+ G
0+aa l \*REG\* 0+ F
0+ab l \*REG\* 0+ E
0+ac l \*REG\* 0+ D
0+ad l \*REG\* 0+ C
0+ae l \*REG\* 0+ B
0+af l \*REG\* 0+ A
0+b0 l \*REG\* 0+ P
0+b1 l \*REG\* 0+ O
0+b2 l \*REG\* 0+ N
0+b3 l \*REG\* 0+ M
0+b4 l \*REG\* 0+ L
0+b5 l \*REG\* 0+ K
0+b6 l \*REG\* 0+ J
0+b7 l \*REG\* 0+ I
0+b8 l \*REG\* 0+ H
0+b9 l \*REG\* 0+ G
0+ba l \*REG\* 0+ F
0+bb l \*REG\* 0+ E
0+bc l \*REG\* 0+ D
0+bd l \*REG\* 0+ C
0+be l \*REG\* 0+ B
0+bf l \*REG\* 0+ A
0+c0 l \*REG\* 0+ P
0+c1 l \*REG\* 0+ O
0+c2 l \*REG\* 0+ N
0+c3 l \*REG\* 0+ M
0+c4 l \*REG\* 0+ L
0+c5 l \*REG\* 0+ K
0+c6 l \*REG\* 0+ J
0+c7 l \*REG\* 0+ I
0+c8 l \*REG\* 0+ H
0+c9 l \*REG\* 0+ G
0+ca l \*REG\* 0+ F
0+cb l \*REG\* 0+ E
0+cc l \*REG\* 0+ D
0+cd l \*REG\* 0+ C
0+ce l \*REG\* 0+ B
0+cf l \*REG\* 0+ A
0+d0 l \*REG\* 0+ P
0+d1 l \*REG\* 0+ O
0+d2 l \*REG\* 0+ N
0+d3 l \*REG\* 0+ M
0+d4 l \*REG\* 0+ L
0+d5 l \*REG\* 0+ K
0+d6 l \*REG\* 0+ J
0+d7 l \*REG\* 0+ I
0+d8 l \*REG\* 0+ H
0+d9 l \*REG\* 0+ G
0+da l \*REG\* 0+ F
0+db l \*REG\* 0+ E
0+dc l \*REG\* 0+ D
0+dd l \*REG\* 0+ C
0+de l \*REG\* 0+ B
0+df l \*REG\* 0+ A
0+e0 l \*REG\* 0+ P
0+e1 l \*REG\* 0+ O
0+e2 l \*REG\* 0+ N
0+e3 l \*REG\* 0+ M
0+e4 l \*REG\* 0+ L
0+e5 l \*REG\* 0+ K
0+e6 l \*REG\* 0+ J
0+e7 l \*REG\* 0+ I
0+e8 l \*REG\* 0+ H
0+e9 l \*REG\* 0+ G
0+ea l \*REG\* 0+ F
0+eb l \*REG\* 0+ E
0+ec l \*REG\* 0+ D
0+ed l \*REG\* 0+ C
0+ee l \*REG\* 0+ B
0+ef l \*REG\* 0+ A
0+f0 l \*REG\* 0+ lsym
0+f1 l \*REG\* 0+ lsym
0+f2 l \*REG\* 0+ lsym
0+f3 l \*REG\* 0+ lsym
0+f4 l \*REG\* 0+ lsym
0+f5 l \*REG\* 0+ lsym
0+f6 l \*REG\* 0+ lsym
0+f7 l \*REG\* 0+ lsym
0+f8 l \*REG\* 0+ lsym
0+f9 l \*REG\* 0+ lsym
0+fa l \*REG\* 0+ lsym
0+fb l \*REG\* 0+ lsym
0+fc l \*REG\* 0+ lsym
0+fd l \*REG\* 0+ lsym
0+14 g \.text 0+ _start
0+fe g \*REG\* 0+ areg
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+14 g \.text 0+ _start\.
0+10 g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <a-0x10>:
0: e3fe0010 setl \$254,0x10
4: e6fe0000 incml \$254,0x0
8: e5fe0000 incmh \$254,0x0
c: e4fe0000 inch \$254,0x0
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
 
0+14 <_start>:
14: e3fd0001 setl \$253,0x1
/jumpa14f.d
0,0 → 1,10
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#error: relocation truncated to fit: R_MMIX_ADDR27 against `a'$
/spec807.d
0,0 → 1,25
#source: bspec807.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #7: non-quote LOP in section vma, low part.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+1c 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 61616161 00000011 .*
0010 00000000 0000000c 00000000 .*
/local2m.d
0,0 → 1,8
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m mmo
#error: not a local register
/sec-7m.d
0,0 → 1,38
#source: start.s
#source: sec-7a.s
#source: sec-7b.s
#source: sec-7c.s
#source: sec-7d.s
#source: sec-7e.s
#ld: -m mmo
#objcopy_linked_file:
#objdump: -hs
 
# When producing mmo output: sections with an input length not a
# multiple of 4, and whose total length in linked output
# exceeded the "chunk size" (32768), would get to-4-padding
# inserted at each chunk division. Also check that section
# sizes aren't rounded up at objcopy.
 
.*: file format mmo
 
Sections:
Idx Name[ ]+Size[ ]+VMA[ ]+LMA[ ]+File off Algn
0 \.text[ ]+0+4 0+ 0+ 0+ 2\*\*2
[ ]+CONTENTS, ALLOC, LOAD, CODE
1 \.di +0+27ffb +0+4 +0+4 +0+ +2\*\*2
[ ]+CONTENTS, READONLY
Contents of section \.text:
0000 e3fd0001[ ]+.*
Contents of section \.di:
00004 2a000000 00000000 00000000 00000000 .*
#...
07ff4 00000000 00000000 00000000 2b2c0000 .*
#...
0fff4 00000000 00000000 00002d2e 00000000 .*
#...
17ff4 00000000 00000000 002f3000 00000000 .*
#...
1fff4 00000000 00000000 00313200 00000000 .*
#...
27ff4 00000000 00000000 000033[ ]+.*
/a.s
0,0 → 1,5
* The symbol "a" is found here.
.text
.global a
a:
SET $253,4
/bpo-22.d
0,0 → 1,22
#source: start.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m mmo --oformat elf64-mmix
#objdump: -st
 
# This weird combination of format and emulation options caused hiccups in
# the reloc accounting machinery.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0000000000000000 l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 l \.text 0+ x
0+ g \.text 0+ Main
0+ g \.text 0+ _start
 
Contents of section \.text:
0000 e3fd0001 232afe00 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 0000002e .*
/sec-7e.s
0,0 → 1,6
.section .di
.byte 50
.rept 32767
.byte 0
.endr
.byte 51
/greg-13.d
0,0 → 1,33
#source: greg-1.s
#source: gregbza1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# Like greg-3, but a different expanding insn, mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+18 g \.text Main
0+18 g \.text _start
0+fe g \*REG\* areg
0+1c g \.text a
 
Disassembly of section \.text:
 
0+ <(Main|_start)-0x18>:
0: 5afe0006 pbnz areg,18 <(Main|_start)>
4: e3ff001c setl \$255,0x1c
8: e6ff0000 incml \$255,0x0
c: e5ff0000 incmh \$255,0x0
10: e4ff0000 inch \$255,0x0
14: 9fffff00 go \$255,\$255,0
 
0+18 <(Main|_start)>:
18: e3fd0001 setl \$253,0x1
 
0+1c <a>:
1c: e3fd0004 setl \$253,0x4
/local12m.d
0,0 → 1,16
#source: local1.s
#source: ext1-254.s
#source: start.s
#ld: -m mmo
#objdump: -shr
 
# Check that 254 is local when we don't have any registers.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
Contents of section \.text:
0000 fd030201 e3fd0001 .*
/pushja2b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: pushja.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: f30cfffe pushj \$12,4 <a>
10: e3fd0003 setl \$253,0x3
/pad2p18m32.s
0,0 → 1,4
* Padding (1 << 19)/2 - 32 bytes; that is, suitable for testing the
* short-range relocs.
.text
.space (1 << 19)/2 - 32,0
/mmosec2.ld
0,0 → 1,13
OUTPUT_ARCH(mmix)
ENTRY(Main)
SECTIONS
{
.text 0x1000000000000000 :
{ *(.text); Main = _start; }
 
.data 0x2000000000000000 :
{ *(.data); }
 
.MMIX.reg_contents :
{ *(.MMIX.reg_contents); }
}
/b-loc64k.d
0,0 → 1,24
#source: b-loc64k.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#objdump: -dht
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+10004 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
SYMBOL TABLE:
0+4 g \.text Main
0+4 g \.text a
 
Disassembly of section \.text:
 
0+ <Main-0x4>:
0: e3fd0001 setl \$253,0x1
 
0+4 <Main>:
\.\.\.
10000: e3fd0004 setl \$253,0x4
/bpo-5.d
0,0 → 1,25
#source: start.s
#source: bpo-1.s
#source: bpo-3.s
#source: bpo-2.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Three linker-allocated GREGs: one eliminated.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7e8 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+4 l \.text 0+ x
0+ g \.text 0+ _start
#...
0+c g \.text 0+ y
#...
 
Contents of section \.text:
0000 e3fd0001 232afd1a 8f79fe00 2321fd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 00000014 00000000 00000133 .*
/jumpa-7b.d
0,0 → 1,25
#source: start.s
#source: a.s
#source: jumpa.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <jumpa>:
8: e3fd0002 setl \$253,0x2
c: f1fffffe jmp 4 <a>
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: fd000000 swym 0,0,0
20: e3fd0003 setl \$253,0x3
/bpo-19m.d
0,0 → 1,30
#source: start.s
#source: bpo-9.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# 223 (max) linker-allocated GREGs, four relocs merged for each register
# allocated.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
 
Contents of section \.text:
0000 e3fd0001 230b2000 230b2040 230b2080 .*
0010 230b20c0 230b2100 230b2140 230b2180 .*
0020 230b21c0 230b2200 230b2240 230b2280 .*
#...
0dd0 230bfcc0 230bfd00 230bfd40 230bfd80 .*
0de0 230bfdc0 230bfe00 230bfe40 230bfe80 .*
0df0 230bfec0 .*
Contents of section \.MMIX\.reg_contents:
0100 00000000 00000000 00000000 00000100 .*
0110 00000000 00000200 00000000 00000300 .*
#...
07d0 00000000 0000da00 00000000 0000db00 .*
07e0 00000000 0000dc00 00000000 0000dd00 .*
07f0 00000000 0000de00 .*
/y.s
0,0 → 1,33
;# Library file y.s has linkonce entries for fn and fn2. Note
;# that this version of fn has different code, as if compiled
;# with different optimization flags than the one in x.s (not
;# important for this test, though). The reference from
;# .eh_frame to the linkonce-excluded fn2 must be zero, or g++
;# EH will not work.
 
.section .gnu.linkonce.t.fn2,"ax",@progbits
.weak fn2
.type fn2,@function
fn2:
L:c:
.long 3
L:d:
.size fn2,L:d-L:c
 
.section .gnu.linkonce.t.fn,"ax",@progbits
.weak fn
.type fn,@function
fn:
L:e:
.long 4
L:f:
.size fn,L:f-L:e
 
.section .eh_frame,"aw",@progbits
.long 7
.long L:c
.long L:d-L:c
 
.long 0x6066
.long L:e
.long L:f-L:e
/getaa-6f.d
0,0 → 1,10
#source: start.s
#source: getaa.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#error: relocation truncated to fit: R_MMIX_ADDR19 against symbol `a'
/local10.d
0,0 → 1,5
#source: local1.s
#source: ext1g.s
#source: start.s
#ld: -m elf64mmix
#error: 254 is not a local register
/pushjs1.d
0,0 → 1,27
#source: start4.s
#source: pushja.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just within the offset range gets no
# stub expansion, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20cffff pushj \$12,40004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
0+40004 <a>:
40004: e3fd0004 setl \$253,0x4
0+40008 <_start>:
40008: e3fd0001 setl \$253,0x1
/bpo-5m.d
0,0 → 1,21
#source: start.s
#source: bpo-1.s
#source: bpo-3.s
#source: bpo-2.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Three linker-allocated GREGs: one eliminated.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+c g \.text y
 
Contents of section \.text:
0000 e3fd0001 232afd1a 8f79fe00 2321fd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 00000014 00000000 00000133 .*
/loct-1.d
0,0 → 1,19
#source: loct.s
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1004 l d \.text 0+ (|\.text)
0+1004 l \.text 0+ t
0+100c g \.text 0+ _start
0+1004 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+100c g \.text 0+ _start\.
 
Contents of section \.text:
1004 fd000000 00001004 e3fd0001 .*
/b-loc64k.s
0,0 → 1,8
% The .text contents is supposed to be linked --oformat binary, and will
% correspond to the start of a mmo file with two instructions, 64k apart.
% This file ends before the LOP_STAB.
.text
.byte 0x98,9,1,1,0x3b,0x7f,0x9c,0xe3,0x98,1,0,2,0,0,0,0
.byte 0,0,0,0,0xe3,0xfd,0,1,0x98,1,0,2,0,0,0,0
.byte 0,1,0,0,0xe3,0xfd,0,4,0x98,0x0a,0,0xff,0,0,0,0
.byte 0,0,0,4
/bpo-5.s
0,0 → 1,4
# A section with a symbol and a BPO allocation.
.section .text.x,"ax",@progbits
.global x
x LDA $45,x+4200
/sec-8d.s
0,0 → 1,4
.section .text.1
.byte 48
.space 32766
.byte 49
/bpo-14.d
0,0 → 1,22
#source: start.s
#source: bpo-7.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# A BPO against an external symbol.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ g \.text 0+ _start
0+8 g \.text 0+ areg
#...
 
Contents of section \.text:
0000 e3fd0001 234dfe00 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000003 .*
/loc5.d
0,0 → 1,6
#source: loc1.s
#source: start.s
#source: loc2.s
#ld: -m elf64mmix
#objdump: -str
#error: multiple definition of `__\.MMIX\.start\.\.text'
/ext1g.s
0,0 → 1,2
.global ext1
ext1 GREG
/bspec805.s
0,0 → 1,10
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words).
BYTE "aaaaaaaa"
TETRA 0x11 % Flags.
TETRA 0 % Decent high-part of section length. However...
ESPEC % Everything ends here. The next thing is a LOP_LOC for .data, or
% an ending LOP-something, hence a non-LOP_QUOTE in the section
% length, high part.
.data
TETRA 0x112233
/reg-1.d
0,0 → 1,7
#source: areg-256.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#error: relocation truncated to fit: R_MMIX_REG against symbol `areg'
/sec-6.d
0,0 → 1,37
#source: start.s
#source: sec-6.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objcopy_linked_file: -O mmo
#objdump: -xs
 
# A non-loaded section with relocs would have the SEC_RELOC bit set in the
# output if we didn't clear it. For reference, here's the ELF copied to
# mmo, so we make sure no spurious flags are introduced.
 
.*: file format mmo
.*
architecture: mmix, flags 0x0+10:
HAS_SYMS
start address 0x0+
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.debug_frame 0+10 0+ 0+ 0+ 2\*\*2
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+8 g \.text debugb
2000000000000000 g \*ABS\* __bss_start
2000000000000000 g \*ABS\* _edata
2000000000000000 g \*ABS\* _end
0+4 g \.text a
 
Contents of section \.text:
0000 e3fd0001 e3fd0004 .*
Contents of section \.debug_frame:
0000 00000000 00000004 00000000 00000008 .*
/jumpa-2b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: jumpa.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <jumpa>:
8: e3fd0002 setl \$253,0x2
c: f1fffffe jmp 4 <a>
10: e3fd0003 setl \$253,0x3
/bpo-14m.d
0,0 → 1,20
#source: start.s
#source: bpo-7.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# A BPO against an external symbol.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+8 g \.text areg
 
Contents of section \.text:
0000 e3fd0001 234dfe00 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000003 .*
/loc5m.d
0,0 → 1,6
#source: loc1.s
#source: start.s
#source: loc2.s
#ld: -m mmo
#objdump: -str
#error: multiple definition of `__\.MMIX\.start\.\.text'
/b-badlop.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badlop.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: unsupported lopcode
/loct.s
0,0 → 1,3
LOC #1002
t SWYM
TETRA t
/jumpa12b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000000 <jumpa>:
4000000: e3fd0002 setl \$253,0x2
4000004: f1000000 jmp 4 <a>
4000008: e3fd0003 setl \$253,0x3
/local8.d
0,0 → 1,28
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local2.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m elf64mmix
#error: 128 is not a local register
/getaa-1f.d
0,0 → 1,24
#source: start.s
#source: getaa.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: e37b001c setl \$123,0x1c
c: e67b0000 incml \$123,0x0
10: e57b0000 incmh \$123,0x0
14: e47b0000 inch \$123,0x0
18: e3fd0003 setl \$253,0x3
 
0+1c <a>:
1c: e3fd0004 setl \$253,0x4
/bza-8f.d
0,0 → 1,21
#source: start.s
#source: bza.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <bza>:
4: e3fd0002 setl \$253,0x2
8: 42ea0002 bz \$234,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/greg-7.d
0,0 → 1,286
#source: gregget1.s
#source: greg-1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: a.s
#source: start.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# Allocating the maximum number of gregs and referring to one at the
# *other* end still works.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+100 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+21 l \*REG\* 0+ P
0+22 l \*REG\* 0+ O
0+23 l \*REG\* 0+ N
0+24 l \*REG\* 0+ M
0+25 l \*REG\* 0+ L
0+26 l \*REG\* 0+ K
0+27 l \*REG\* 0+ J
0+28 l \*REG\* 0+ I
0+29 l \*REG\* 0+ H
0+2a l \*REG\* 0+ G
0+2b l \*REG\* 0+ F
0+2c l \*REG\* 0+ E
0+2d l \*REG\* 0+ D
0+2e l \*REG\* 0+ C
0+2f l \*REG\* 0+ B
0+30 l \*REG\* 0+ A
0+31 l \*REG\* 0+ P
0+32 l \*REG\* 0+ O
0+33 l \*REG\* 0+ N
0+34 l \*REG\* 0+ M
0+35 l \*REG\* 0+ L
0+36 l \*REG\* 0+ K
0+37 l \*REG\* 0+ J
0+38 l \*REG\* 0+ I
0+39 l \*REG\* 0+ H
0+3a l \*REG\* 0+ G
0+3b l \*REG\* 0+ F
0+3c l \*REG\* 0+ E
0+3d l \*REG\* 0+ D
0+3e l \*REG\* 0+ C
0+3f l \*REG\* 0+ B
0+40 l \*REG\* 0+ A
0+41 l \*REG\* 0+ P
0+42 l \*REG\* 0+ O
0+43 l \*REG\* 0+ N
0+44 l \*REG\* 0+ M
0+45 l \*REG\* 0+ L
0+46 l \*REG\* 0+ K
0+47 l \*REG\* 0+ J
0+48 l \*REG\* 0+ I
0+49 l \*REG\* 0+ H
0+4a l \*REG\* 0+ G
0+4b l \*REG\* 0+ F
0+4c l \*REG\* 0+ E
0+4d l \*REG\* 0+ D
0+4e l \*REG\* 0+ C
0+4f l \*REG\* 0+ B
0+50 l \*REG\* 0+ A
0+51 l \*REG\* 0+ P
0+52 l \*REG\* 0+ O
0+53 l \*REG\* 0+ N
0+54 l \*REG\* 0+ M
0+55 l \*REG\* 0+ L
0+56 l \*REG\* 0+ K
0+57 l \*REG\* 0+ J
0+58 l \*REG\* 0+ I
0+59 l \*REG\* 0+ H
0+5a l \*REG\* 0+ G
0+5b l \*REG\* 0+ F
0+5c l \*REG\* 0+ E
0+5d l \*REG\* 0+ D
0+5e l \*REG\* 0+ C
0+5f l \*REG\* 0+ B
0+60 l \*REG\* 0+ A
0+61 l \*REG\* 0+ P
0+62 l \*REG\* 0+ O
0+63 l \*REG\* 0+ N
0+64 l \*REG\* 0+ M
0+65 l \*REG\* 0+ L
0+66 l \*REG\* 0+ K
0+67 l \*REG\* 0+ J
0+68 l \*REG\* 0+ I
0+69 l \*REG\* 0+ H
0+6a l \*REG\* 0+ G
0+6b l \*REG\* 0+ F
0+6c l \*REG\* 0+ E
0+6d l \*REG\* 0+ D
0+6e l \*REG\* 0+ C
0+6f l \*REG\* 0+ B
0+70 l \*REG\* 0+ A
0+71 l \*REG\* 0+ P
0+72 l \*REG\* 0+ O
0+73 l \*REG\* 0+ N
0+74 l \*REG\* 0+ M
0+75 l \*REG\* 0+ L
0+76 l \*REG\* 0+ K
0+77 l \*REG\* 0+ J
0+78 l \*REG\* 0+ I
0+79 l \*REG\* 0+ H
0+7a l \*REG\* 0+ G
0+7b l \*REG\* 0+ F
0+7c l \*REG\* 0+ E
0+7d l \*REG\* 0+ D
0+7e l \*REG\* 0+ C
0+7f l \*REG\* 0+ B
0+80 l \*REG\* 0+ A
0+81 l \*REG\* 0+ P
0+82 l \*REG\* 0+ O
0+83 l \*REG\* 0+ N
0+84 l \*REG\* 0+ M
0+85 l \*REG\* 0+ L
0+86 l \*REG\* 0+ K
0+87 l \*REG\* 0+ J
0+88 l \*REG\* 0+ I
0+89 l \*REG\* 0+ H
0+8a l \*REG\* 0+ G
0+8b l \*REG\* 0+ F
0+8c l \*REG\* 0+ E
0+8d l \*REG\* 0+ D
0+8e l \*REG\* 0+ C
0+8f l \*REG\* 0+ B
0+90 l \*REG\* 0+ A
0+91 l \*REG\* 0+ P
0+92 l \*REG\* 0+ O
0+93 l \*REG\* 0+ N
0+94 l \*REG\* 0+ M
0+95 l \*REG\* 0+ L
0+96 l \*REG\* 0+ K
0+97 l \*REG\* 0+ J
0+98 l \*REG\* 0+ I
0+99 l \*REG\* 0+ H
0+9a l \*REG\* 0+ G
0+9b l \*REG\* 0+ F
0+9c l \*REG\* 0+ E
0+9d l \*REG\* 0+ D
0+9e l \*REG\* 0+ C
0+9f l \*REG\* 0+ B
0+a0 l \*REG\* 0+ A
0+a1 l \*REG\* 0+ P
0+a2 l \*REG\* 0+ O
0+a3 l \*REG\* 0+ N
0+a4 l \*REG\* 0+ M
0+a5 l \*REG\* 0+ L
0+a6 l \*REG\* 0+ K
0+a7 l \*REG\* 0+ J
0+a8 l \*REG\* 0+ I
0+a9 l \*REG\* 0+ H
0+aa l \*REG\* 0+ G
0+ab l \*REG\* 0+ F
0+ac l \*REG\* 0+ E
0+ad l \*REG\* 0+ D
0+ae l \*REG\* 0+ C
0+af l \*REG\* 0+ B
0+b0 l \*REG\* 0+ A
0+b1 l \*REG\* 0+ P
0+b2 l \*REG\* 0+ O
0+b3 l \*REG\* 0+ N
0+b4 l \*REG\* 0+ M
0+b5 l \*REG\* 0+ L
0+b6 l \*REG\* 0+ K
0+b7 l \*REG\* 0+ J
0+b8 l \*REG\* 0+ I
0+b9 l \*REG\* 0+ H
0+ba l \*REG\* 0+ G
0+bb l \*REG\* 0+ F
0+bc l \*REG\* 0+ E
0+bd l \*REG\* 0+ D
0+be l \*REG\* 0+ C
0+bf l \*REG\* 0+ B
0+c0 l \*REG\* 0+ A
0+c1 l \*REG\* 0+ P
0+c2 l \*REG\* 0+ O
0+c3 l \*REG\* 0+ N
0+c4 l \*REG\* 0+ M
0+c5 l \*REG\* 0+ L
0+c6 l \*REG\* 0+ K
0+c7 l \*REG\* 0+ J
0+c8 l \*REG\* 0+ I
0+c9 l \*REG\* 0+ H
0+ca l \*REG\* 0+ G
0+cb l \*REG\* 0+ F
0+cc l \*REG\* 0+ E
0+cd l \*REG\* 0+ D
0+ce l \*REG\* 0+ C
0+cf l \*REG\* 0+ B
0+d0 l \*REG\* 0+ A
0+d1 l \*REG\* 0+ P
0+d2 l \*REG\* 0+ O
0+d3 l \*REG\* 0+ N
0+d4 l \*REG\* 0+ M
0+d5 l \*REG\* 0+ L
0+d6 l \*REG\* 0+ K
0+d7 l \*REG\* 0+ J
0+d8 l \*REG\* 0+ I
0+d9 l \*REG\* 0+ H
0+da l \*REG\* 0+ G
0+db l \*REG\* 0+ F
0+dc l \*REG\* 0+ E
0+dd l \*REG\* 0+ D
0+de l \*REG\* 0+ C
0+df l \*REG\* 0+ B
0+e0 l \*REG\* 0+ A
0+e1 l \*REG\* 0+ P
0+e2 l \*REG\* 0+ O
0+e3 l \*REG\* 0+ N
0+e4 l \*REG\* 0+ M
0+e5 l \*REG\* 0+ L
0+e6 l \*REG\* 0+ K
0+e7 l \*REG\* 0+ J
0+e8 l \*REG\* 0+ I
0+e9 l \*REG\* 0+ H
0+ea l \*REG\* 0+ G
0+eb l \*REG\* 0+ F
0+ec l \*REG\* 0+ E
0+ed l \*REG\* 0+ D
0+ee l \*REG\* 0+ C
0+ef l \*REG\* 0+ B
0+f0 l \*REG\* 0+ A
0+f1 l \*REG\* 0+ lsym
0+f2 l \*REG\* 0+ lsym
0+f3 l \*REG\* 0+ lsym
0+f4 l \*REG\* 0+ lsym
0+f5 l \*REG\* 0+ lsym
0+f6 l \*REG\* 0+ lsym
0+f7 l \*REG\* 0+ lsym
0+f8 l \*REG\* 0+ lsym
0+f9 l \*REG\* 0+ lsym
0+fa l \*REG\* 0+ lsym
0+fb l \*REG\* 0+ lsym
0+fc l \*REG\* 0+ lsym
0+fd l \*REG\* 0+ lsym
0+fe l \*REG\* 0+ lsym
0+14 g \.text 0+ _start
0+20 g \*REG\* 0+ areg
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+14 g \.text 0+ _start\.
0+10 g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <a-0x10>:
0: e3200010 setl \$32,0x10
4: e6200000 incml \$32,0x0
8: e5200000 incmh \$32,0x0
c: e4200000 inch \$32,0x0
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
 
0+14 <_start>:
14: e3fd0001 setl \$253,0x1
/spec808.d
0,0 → 1,25
#source: bspec808.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #8: Indecent section length.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+20 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 61616161 00000011 .*
0010 0000ff00 00000000 000000ff 00000000 .*
/sec-6.s
0,0 → 1,5
.global debugb
.section .debug_frame,"",@progbits
.8byte a
debugb:
.8byte debugb
/locdo-1.d
0,0 → 1,23
#source: locdo.s -globalize-symbols
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
2000000000000008 l d \.data 0+ (|\.data)
2000000000000008 g \*ABS\* 0+ __\.MMIX\.start\.\.data
2000000000000008 g \.data 0+ od
0+ g \.text 0+ _start
2000000000000010 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ Data_Segment
2000000000000010 g \*ABS\* 0+ _edata
2000000000000010 g \*ABS\* 0+ _end
0+ g \.text 0+ _start\.
 
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000008 20000000 00000008 .*
/b-badlop.s
0,0 → 1,4
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide an invalid lopcode.
.text
.byte 0x98,0xff,0,0
/local8m.d
0,0 → 1,28
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local2.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m mmo
#error: 128 is not a local register
/zeroehmmo.d
0,0 → 1,16
#source: x.s
#source: y.s
#ld: -m mmo -Ttext 0xa00 -T $srcdir/$subdir/zeroeh.ld
#objdump: -s
 
# The word at address 201c, for the linkonce-excluded section, must be zero.
 
.*: file format mmo
 
Contents of section \.text:
0a00 00000a08 00000a10 00000001 00000002 .*
0a10 00000003 .*
Contents of section \.eh_frame:
2000 00000002 00000a08 00000008 00000007 .*
2010 00000a10 00000004 00006066 00000000 .*
2020 00000004 .*
/greg-14.d
0,0 → 1,32
#source: greg-1.s
#source: gregpsj1.s
#source: start.s
#source: a.s
#as: -x --no-pushj-stubs
#ld: -m mmo
#objdump: -dt
 
# Like greg-3, but a different expanding insn.
 
.*: file format mmo
 
SYMBOL TABLE:
0+14 g \.text Main
0+14 g \.text _start
0+fe g \*REG\* areg
0+18 g \.text a
 
Disassembly of section \.text:
 
0+ <(Main|_start)-0x14>:
0: e3ff0018 setl \$255,0x18
4: e6ff0000 incml \$255,0x0
8: e5ff0000 incmh \$255,0x0
c: e4ff0000 inch \$255,0x0
10: bffeff00 pushgo areg,\$255,0
 
0+14 <(Main|_start)>:
14: e3fd0001 setl \$253,0x1
 
0+18 <a>:
18: e3fd0004 setl \$253,0x4
/zeroeh.ld
0,0 → 1,4
SECTIONS {
.text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
.eh_frame 0x2000 : { *(.eh_frame) }
}
/pushjs3m.d
0,0 → 1,28
#source: nop123.s
#source: pushja.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just within reach of JMP gets it, mmo
# version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f0ffffff jmp 400000c <a>
\.\.\.
0+400000c <a>:
400000c: e3fd0004 setl \$253,0x4
0+4000010 <Main>:
4000010: e3fd0001 setl \$253,0x1
/locto-1.d
0,0 → 1,19
#source: locto.s -globalize-symbols
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+1008 l d \.text 0+ (|\.text)
0+1008 g \.text 0+ od
0+1010 g \.text 0+ _start
0+1008 g \*ABS\* 0+ __\.MMIX\.start\.\.text
2000000000000000 g \*ABS\* 0+ __bss_start
2000000000000000 g \*ABS\* 0+ _edata
2000000000000000 g \*ABS\* 0+ _end
0+1010 g \.text 0+ _start\.
 
Contents of section \.text:
1008 00000000 00001008 e3fd0001 .*
/mmohdr1.ld
0,0 → 1,11
OUTPUT_ARCH(mmix)
OUTPUT_FORMAT("mmo")
ENTRY(Main)
SECTIONS
{
.text 0x100 + sizeof_headers :
{ *(.text); Main = _start; }
 
.MMIX.reg_contents :
{ *(.MMIX.reg_contents); }
}
/bpo-6.d
0,0 → 1,30
#source: start.s
#source: bpo-4.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# 223 (max) linker-allocated GREGs.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+100 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
#...
0+ g \.text 0+ _start
#...
 
Contents of section \.text:
0000 e3fd0001 230b2000 230b2100 230b2200 .*
0010 230b2300 230b2400 230b2500 230b2600 .*
#...
0360 230bf700 230bf800 230bf900 230bfa00 .*
0370 230bfb00 230bfc00 230bfd00 230bfe00 .*
Contents of section \.MMIX\.reg_contents:
0100 00000000 00000000 00000000 00000100 .*
0110 00000000 00000200 00000000 00000300 .*
#...
07d0 00000000 0000da00 00000000 0000db00 .*
07e0 00000000 0000dc00 00000000 0000dd00 .*
07f0 00000000 0000de00 .*
/pushja8b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: pushja.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <pushja>:
8: e3fd0002 setl \$253,0x2
c: f30cfffe pushj \$12,4 <a>
10: e3fd0003 setl \$253,0x3
/getaa-4b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: getaa.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+40000 <getaa>:
40000: e3fd0002 setl \$253,0x2
40004: f57b0000 geta \$123,4 <a>
40008: e3fd0003 setl \$253,0x3
/jumpa-5f.d
0,0 → 1,29
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: e3ff0008 setl \$255,0x8
c: e6ff0400 incml \$255,0x400
10: e5ff0000 incmh \$255,0x0
14: e4ff0000 inch \$255,0x0
18: 9fffff00 go \$255,\$255,0
1c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+4000008 <a>:
4000008: e3fd0004 setl \$253,0x4
/getaa14b.d
0,0 → 1,11
#source: start.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: getaa.s
#as: -no-expand
#ld: -m mmo
#error: relocation truncated to fit: R_MMIX_ADDR19 against `a'$
/greg-14s.d
0,0 → 1,23
#source: greg-1.s
#source: gregpsj1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# Like greg-14, but using PUSHJ stubs.
 
.*: file format mmo
SYMBOL TABLE:
0+4 g \.text Main
0+4 g \.text _start
0+fe g \*REG\* areg
0+8 g \.text a
Disassembly of section \.text:
0+ <(Main|_start)-0x4>:
0: f2fe0002 pushj areg,8 <a>
0+4 <(Main|_start)>:
4: e3fd0001 setl \$253,0x1
0+8 <a>:
8: e3fd0004 setl \$253,0x4
/local3m.d
0,0 → 1,19
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+4 g \.text Main
0+fc g \*ABS\* ext1
0+4 g \.text _start
 
Contents of section \.text:
0000 fd030201 e3fd0001 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000004e 00000000 0000004e .*
/sec-8m.d
0,0 → 1,30
#source: start.s
#source: sec-8a.s
#source: sec-8b.s
#source: sec-8m.s
#source: sec-8d.s
#ld: -m mmo
#objdump: -s
 
# Distantly related to sec-7m.s in that section lengths mattered for the
# bug. When one input-section (seen in mmo.c as a chunk of data to
# output) had a length not a multiple of four, the last bytes were saved
# to be concatenated with the next chunk. If it was followed by a chunk
# with a leading multiple-of-four number of zero bytes, those zero bytes
# would be omitted, and the "saved" bytes would be concatenated with the
# following (not-all-zeros) bytes. Hence a shift of the last bytes of the
# first chunk.
 
.*: file format mmo
 
Contents of section \.text:
00000 e3fd0001 2a000000 00000000 00000000 .*
#...
07ff0 00000000 00000000 00000000 2b2c0000 .*
#...
0fff0 00000000 00000000 00002d00 00000000 .*
10000 00000000 00000000 0000002e 2f303132 .*
10010 33000000 00000000 00000000 00000000 .*
10020 00300000 00000000 00000000 00000000 .*
#...
18020 31 .*
/local11.d
0,0 → 1,6
#source: local1.s
#source: greg-1.s
#source: ext1l.s
#source: start.s
#ld: -m elf64mmix
#error: valid only with a register or absolute value
/pushjs2.d
0,0 → 1,29
#source: start4.s
#source: pushja.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the PUSHJ offset range gets
# a JMP stub expansion, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f000ffff jmp 4000c <a>
\.\.\.
0+4000c <a>:
4000c: e3fd0004 setl \$253,0x4
0+40010 <_start>:
40010: e3fd0001 setl \$253,0x1
/getaa.s
0,0 → 1,7
* Just geta an external symbol, with some padding.
.text
.global getaa
getaa:
SET $253,2
GETA $123,a
SET $253,3
/bpo-6.s
0,0 → 1,4
# A section with a symbol and a BPO allocation.
.section .text.x2,"ax",@progbits
.global x2
x2 LDA $45,x2+42000
/bpo-15.d
0,0 → 1,7
#source: start.s
#source: bpo-7.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$
 
# A BPO against an undefined symbol.
/loc6.d
0,0 → 1,24
#source: dloc1.s
#source: start.s
#ld: -m elf64mmix
#objdump: -str
 
# Text files and one loc:ed data at offset.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
2000000000000200 l d \.data 0+ (|\.data)
2000000000000200 g \.data 0+ dloc1
2000000000000200 g \*ABS\* 0+ __\.MMIX\.start\.\.data
0+ g \.text 0+ _start
200000000000020c g \*ABS\* 0+ __bss_start
200000000000020c g \*ABS\* 0+ _edata
2000000000000210 g \*ABS\* 0+ _end
0+ g \.text 0+ _start\.
 
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000200 00000004 00000005 00000006 .*
/b-bend1.d
0,0 → 1,11
#source: b-twoinsn.s
#source: b-bend.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: lop_end not last item in file
 
# This test depend on that the non-at-end condition is tested before
# not-correct-YZ-field and might need tweaking if the implementation
# changes.
/bspec806.s
0,0 → 1,10
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words).
BYTE "aaaaaaaa"
TETRA 0x11 % Flags.
OCTA 12 % Decent section length. However...
ESPEC % Everything ends here. The next thing is a LOP_LOC for .data, or
% an ending LOP-something, hence a non-LOP_QUOTE in the section
% length, high part.
.data
TETRA 0x112233
/sec-8m.s
0,0 → 1,4
.section .text.1
.byte 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
.byte 46, 47, 48, 49, 50, 51
.byte 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
/local1.d
0,0 → 1,50
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m elf64mmix
#readelf: -Ssx1 -x2
 
# We check that the externally visible symbol ext1 is a local register
# (different meaning of "local" than for symbol), which can be seen as
# somewhat twisted.
 
There are 6 section headers, starting at offset 0xc8:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+8 0+ AX 0 0 4
\[ 2\] \.MMIX\.reg_content PROGBITS 0+7e8 0+80
0+10 0+ W 0 0 1
\[ 3\] \.shstrtab STRTAB 0+ 0+90
0+34 0+ 0 0 1
\[ 4\] \.symtab SYMTAB 0+ 0+248
0+108 0+18 5 5 8
\[ 5\] \.strtab STRTAB 0+ 0+350
0+32 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
Symbol table '\.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+7e8 0 SECTION LOCAL DEFAULT 2
3: 0+fd 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
4: 0+fe 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
5: 0+fc 0 NOTYPE GLOBAL DEFAULT PRC\[0xff00\] ext1
6: 0+4 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ fd030201 e3fd0001 .*
 
Hex dump of section '\.MMIX\.reg_contents':
0x0+7e8 00000000 0000004e 00000000 0000004e .*
/reg-2.d
0,0 → 1,7
#source: areg-t.s
#source: gregget1.s
#source: start.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#error: register relocation against non-register symbol: areg in \.text
/pushjs1bm.d
0,0 → 1,29
#source: nop123.s
#source: nop123.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just within the offset range gets no
# stub expansion, backwards, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <a-0x8>:
0: fd010203 swym 1,2,3
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+40004 <pushja>:
40004: e3fd0002 setl \$253,0x2
40008: f30c0000 pushj \$12,8 <a>
4000c: e3fd0003 setl \$253,0x3
0+40010 <Main>:
40010: e3fd0001 setl \$253,0x1
/b-badfil1.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badfil1.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: file number 42 `bar.s', was already entered as `foo.s'
/jumpa-8b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: jumpa.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <jumpa>:
8: e3fd0002 setl \$253,0x2
c: f1fffffe jmp 4 <a>
10: e3fd0003 setl \$253,0x3
/local9.d
0,0 → 1,5
#source: local1.s
#source: ext1l.s
#source: start.s
#ld: -m elf64mmix
#error: valid only with a register or absolute value
/mmix.exp
0,0 → 1,35
# Expect script for ld-mmix tests
# Copyright 2001, 2007 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
#
# Written by Hans-Peter Nilsson (hp@bitrange.com)
#
 
# Test MMIX and mmo object format handling.
 
if ![istarget mmix-*-*] {
return
}
 
set rd_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
foreach mmixtest $rd_test_list {
# We need to strip the ".d", but can leave the dirname.
verbose [file rootname $mmixtest]
run_dump_test [file rootname $mmixtest]
}
/spec801.d
0,0 → 1,21
#source: bspec801.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# Check exceptional cases for LOP_SPEC 80, which we parse according to a
# specific format: see documentation and mmo.c
# #1: name length has LOP_QUOTE.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 00000004 0000000000000000 0000000000000000 00000000 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.MMIX\.spec_data\.80 00000004 0000000000000000 0000000000000000 00000000 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.MMIX\.spec_data\.80:
0000 98000001 .*
/greg-8.d
0,0 → 1,37
#source: gregget1.s
#source: greg-1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: a.s
#source: start.s
#as: -x
#ld: -m elf64mmix
#error: Too many global registers: 224, max 223
 
# Allocating the maximum number of gregs *plus one* is an error.
/local1.s
0,0 → 1,2
LOCAL ext1
SWYM 3,2,1
/getaa-7f.d
0,0 → 1,24
#source: start.s
#source: getaa.s
#source: a.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: e37b001c setl \$123,0x1c
c: e67b0000 incml \$123,0x0
10: e57b0000 incmh \$123,0x0
14: e47b0000 inch \$123,0x0
18: e3fd0003 setl \$253,0x3
 
0+1c <a>:
1c: e3fd0004 setl \$253,0x4
/areg-t.s
0,0 → 1,3
.text
.global areg
areg SWYM 4,8,16
/b-badfil1.s
0,0 → 1,10
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide two LOP_FILEs, but
% specifying the same file number.
.text
.byte 0x98,06,42,2
.ascii "foo.s"
.byte 0,0,0
.byte 0x98,06,42,2
.ascii "bar.s"
.byte 0,0,0
/bpo-6m.d
0,0 → 1,27
#source: start.s
#source: bpo-4.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# 223 (max) linker-allocated GREGs.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
 
Contents of section \.text:
0000 e3fd0001 230b2000 230b2100 230b2200 .*
0010 230b2300 230b2400 230b2500 230b2600 .*
#...
0360 230bf700 230bf800 230bf900 230bfa00 .*
0370 230bfb00 230bfc00 230bfd00 230bfe00 .*
Contents of section \.MMIX\.reg_contents:
0100 00000000 00000000 00000000 00000100 .*
0110 00000000 00000200 00000000 00000300 .*
#...
07d0 00000000 0000da00 00000000 0000db00 .*
07e0 00000000 0000dc00 00000000 0000dd00 .*
07f0 00000000 0000de00 .*
/sym-1.d
0,0 → 1,11
#source: start.s
#source: a.s
#ld: -m mmo
#nm: -n
 
# Test that nm can grok a simple mmo symbol table (or that mmo lets nm
# grok it).
 
0+ T Main
0+ T _start
0+4 T a
/greg-15.d
0,0 → 1,59
#source: gregget1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-1.s
#source: a.s
#source: start.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# Allocating the maximum number of gregs and referring to one at the end
# still works, mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+14 g \.text Main
0+14 g \.text _start
0+fe g \*REG\* areg
0+10 g \.text a
 
Disassembly of section \.text:
 
0+ <a-0x10>:
0: e3fe0010 setl areg,0x10
4: e6fe0000 incml areg,0x0
8: e5fe0000 incmh areg,0x0
c: e4fe0000 inch areg,0x0
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
 
0+14 <(Main|_start)>:
14: e3fd0001 setl \$253,0x1
/bza-1b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: bza.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <bza>:
8: e3fd0002 setl \$253,0x2
c: 5aea0006 pbnz \$234,24 <bza\+0x1c>
10: e3ff0004 setl \$255,0x4
14: e6ff0000 incml \$255,0x0
18: e5ff0000 incmh \$255,0x0
1c: e4ff0000 inch \$255,0x0
20: 9fffff00 go \$255,\$255,0
24: e3fd0003 setl \$253,0x3
/start.s
0,0 → 1,5
* Just a start symbol and some non-NOP padding.
.text
.global _start
_start:
SET $253,1
/jumpa-3b.d
0,0 → 1,30
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000000 <jumpa>:
4000000: e3fd0002 setl \$253,0x2
4000004: f1000000 jmp 4 <a>
4000008: fd000000 swym 0,0,0
400000c: fd000000 swym 0,0,0
4000010: fd000000 swym 0,0,0
4000014: fd000000 swym 0,0,0
4000018: e3fd0003 setl \$253,0x3
/locdo.s
0,0 → 1,2
LOC Data_Segment+2
od OCTA od
/loc6m.d
0,0 → 1,18
#source: dloc1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
# Text files and one loc:ed data at offset.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
2000000000000200 g \.data dloc1
0+ g \.text _start
 
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000200 00000004 00000005 00000006 .*
/bpo-15m.d
0,0 → 1,7
#source: start.s
#source: bpo-7.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$
 
# A BPO against an undefined symbol.
/dloc1.s
0,0 → 1,3
LOC #20 << 56 + #200
dloc1 TETRA 4,5,6
.global dloc1
/jumpa13b.d
0,0 → 1,31
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000004 <jumpa>:
4000004: e3fd0002 setl \$253,0x2
4000008: e3ff0004 setl \$255,0x4
400000c: e6ff0000 incml \$255,0x0
4000010: e5ff0000 incmh \$255,0x0
4000014: e4ff0000 inch \$255,0x0
4000018: 9fffff00 go \$255,\$255,0
400001c: e3fd0003 setl \$253,0x3
/b-badm2.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s. It will provide an incorrect LOP_END; its YZ field is not
% the number of tetras to the preceding LOP_STAB.
.text
.byte 0x98,0x0b,0x00,0x00,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 0x01,0x6e,0x04,0x81,0x01,0x61,0x04,0x82,0x98,0x0c,0x00,0x03
/gregget1.s
0,0 → 1,4
# Use a symbolic register areg, presumably allocated by greg in another file.
# The "GETA" will be expanded, and the reloc for areg must be resolved
# before the other relocs for that insn.
GETA areg,a
/bpo-7.d
0,0 → 1,6
#source: start.s
#source: bpo-4.s
#source: greg-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: Too many global registers: 224
/getaa-2f.d
0,0 → 1,21
#source: start.s
#source: getaa.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: f47b0002 geta \$123,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/getaa12f.d
0,0 → 1,25
#source: start.s
#source: getaa.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: f47bffff geta \$123,40004 <a>
c: e3fd0003 setl \$253,0x3
\.\.\.
 
0+40004 <a>:
40004: e3fd0004 setl \$253,0x4
/b-widec1.d
0,0 → 1,12
#source: b-twoinsn.s
#source: b-post1.s
#source: b-widec.s
#ld: --oformat binary
#objcopy_linked_file:
#objdump: -t
 
.*: file format mmo
 
SYMBOL TABLE:
0+4 g \.text Main
0+4 g \.text a
/bpo-1m.d
0,0 → 1,18
#source: start.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Just a simple linker-allocated GREG with no explicit GREGs.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
 
Contents of section \.text:
0000 e3fd0001 232afe00 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 0000002e .*
/local12.d
0,0 → 1,16
#source: local1.s
#source: ext1-254.s
#source: start.s
#ld: -m elf64mmix
#objdump: -shr
 
# Check that 254 is local when we don't have any registers.
 
.*: file format elf64-mmix
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+8 0+ 0+ 0+78 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
Contents of section \.text:
0000 fd030201 e3fd0001 .*
/regext1.s
0,0 → 1,2
.global ext1
ext1 IS $252
/locto.s
0,0 → 1,2
LOC #1002
od OCTA od
/pushjs3.d
0,0 → 1,29
#source: start4.s
#source: pushja.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just within reach of JMP gets it, ELF
# version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: f0ffffff jmp 400000c <a>
\.\.\.
0+400000c <a>:
400000c: e3fd0004 setl \$253,0x4
0+4000010 <_start>:
4000010: e3fd0001 setl \$253,0x1
/local9m.d
0,0 → 1,5
#source: local1.s
#source: ext1l.s
#source: start.s
#ld: -m mmo
#error: valid only with a register or absolute value
/b-badrx1.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badrx1.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: expected y = 0, .* lop_fixrx
/bpo-7.s
0,0 → 1,2
# If the symbol is a register then this is an error.
LDA $77,areg-5
/loc7.d
0,0 → 1,6
#source: dloc1.s
#source: start.s
#source: dloc2.s
#ld: -m elf64mmix
#objdump: -str
#error: multiple definition of `__\.MMIX\.start\.\.data'
/bpo-16.d
0,0 → 1,23
#source: start.s
#source: bpo-7.s
#source: bpo-7.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# Two BPO:s against the same value get merged.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ g \.text 0+ _start
0+c g \.text 0+ areg
#...
 
Contents of section \.text:
0000 e3fd0001 234dfe00 234dfe00 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000007 .*
/b-bend2.d
0,0 → 1,10
#source: b-twoinsn.s
#source: b-post1.s
#source: b-goodmain.s
#source: b-bend.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: lop_end not last item in file
 
# We use the b-bend.s file just to make the correct lop_end in
# b-goodmain.s not the last one.
/bspec807.s
0,0 → 1,9
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words).
BYTE "aaaaaaaa"
TETRA 0x11 % Flags.
TETRA 0,12 % Decent section length. However...
TETRA 0 % Things end stops after the high part of the VMA.
ESPEC
.data
TETRA 0x112233
/loc1m.d
0,0 → 1,14
#source: loc1.s
#ld: -m mmo -e loc1
#objdump: -str
 
# err: two locs.
 
.*: file format mmo
 
SYMBOL TABLE:
0+1000 g \.text Main
0+1000 g \.text loc1
 
Contents of section \.text:
1000 fd030303 .*
/local2.d
0,0 → 1,8
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: regext1.s
#source: start.s
#ld: -m elf64mmix
#error: not a local register
/pushjs4m.d
0,0 → 1,33
#source: nop123.s
#source: pushja.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just outside reach of JMP works; it will
# get the full expansion, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: e3ff0020 setl \$255,0x20
14: e6ff0400 incml \$255,0x400
18: e5ff0000 incmh \$255,0x0
1c: e4ff0000 inch \$255,0x0
20: 9f00ff00 go \$0,\$255,0
\.\.\.
0+4000020 <a>:
4000020: e3fd0004 setl \$253,0x4
0+4000024 <Main>:
4000024: e3fd0001 setl \$253,0x1
/b-badrx1.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FIXRX with invalid
% (non-zero), Y field.
.text
.byte 0x98,5,1,0
.4byte 0
/pushja1f.d
0,0 → 1,25
#source: start.s
#source: pushja.s
#source: a.s
#as: -x --no-pushj-stubs
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: e3ff0020 setl \$255,0x20
c: e6ff0000 incml \$255,0x0
10: e5ff0000 incmh \$255,0x0
14: e4ff0000 inch \$255,0x0
18: bf0cff00 pushgo \$12,\$255,0
1c: e3fd0003 setl \$253,0x3
 
0+20 <a>:
20: e3fd0004 setl \$253,0x4
/greg-1.d
0,0 → 1,27
#source: greg-1.s
#source: gregldo1.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dt
 
# Most simple greg usage: relocate to each possible location within an
# insn.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+c g \.text 0+ _start
0+fe g \*REG\* 0+ areg
#...
 
Disassembly of section \.text:
 
0+ <_start-0xc>:
0: 8c0c20fe ldo \$12,\$32,\$254
4: 8d7bfe22 ldo \$123,\$254,34
8: 8dfeea38 ldo \$254,\$234,56
 
0+c <_start>:
c: e3fd0001 setl \$253,0x1
/b-badfil2.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badfil2.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: file name for number 42 was not specified before use
/spec802.d
0,0 → 1,24
#source: bspec802.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #2: non-quote LOP in name.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000004 .*
/jumpa-6f.d
0,0 → 1,10
#source: start.s
#source: jumpa.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: a.s
#as: -no-expand
#ld: -m elf64mmix
#error: relocation truncated to fit: R_MMIX_ADDR27 against symbol `a'
/greg-9.d
0,0 → 1,39
#source: gregget1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-1.s
#source: a.s
#source: start.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
#error: Too many global registers: 224, max 223
 
# Allocating the maximum number of gregs *plus one* is an error; other end
# of the stick.
/local4m.d
0,0 → 1,8
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m mmo
#error: is not a local register
/local2.s
0,0 → 1,2
LOCAL 128
SWYM 2,2,2
/b-goodmain.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide a valid end of a mmo file.
.text
.byte 0x98,0x0b,0x00,0x00,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 0x01,0x6e,0x04,0x81,0x01,0x61,0x04,0x82,0x98,0x0c,0x00,0x04
/b-badfixo.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badfixo.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: .* lop_fixo
/b-twoinsn.s
0,0 → 1,7
% The .text contents is supposed to be linked --oformat binary, and will
% correspond to the start of a mmo file with two instructions. This file
% ends before the LOP_STAB.
.text
.byte 0x98,9,1,1,0x3b,0x7f,0x9c,0xe3,0x98,1,0,2,0,0,0,0
.byte 0,0,0,0,0xe3,0xfd,0,1,0x98,1,0,2,0,0,0,0
.byte 0,0,0,4,0xe3,0xfd,0,4
/pushjs1b.d
0,0 → 1,31
#source: start4.s
#source: nop123.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just within the offset range gets no
# stub expansion, backwards, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <a-0x4>:
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+40004 <pushja>:
40004: e3fd0002 setl \$253,0x2
40008: f30c0000 pushj \$12,8 <a>
4000c: e3fd0003 setl \$253,0x3
0+40010 <_start>:
40010: e3fd0001 setl \$253,0x1
/greg-1.s
0,0 → 1,3
# Have a single GREG register allocation.
.global areg
areg GREG 123456789101112
/b-badfil2.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FILE for file
% number 42, without specifying the file name, which an earlier LOP_FILE
% for the same file number was supposed to have filled in
.text
.byte 0x98,06,42,0
/nop123.s
0,0 → 1,3
# A nop to pad with an explicit insn.
.text
SWYM 1,2,3
/sym-2.d
0,0 → 1,142
#source: start.s
#source: sym-2.s
#source: a.s
#as: -globalize-symbols
#ld: -m mmo
#objcopy_linked_file:
#objdump: -t
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g[ ]+\.text Main
0+4 g[ ]+\.text a40
0+4 g[ ]+\.text a33
0+4 g[ ]+\.text a45
0+4 g[ ]+\.text a21
0+4 g[ ]+\.text a99
0+4 g[ ]+\.text a114
0+4 g[ ]+\.text a122
0+4 g[ ]+\.text a73
0+4 g[ ]+\.text a111
0+4 g[ ]+\.text a109
0+4 g[ ]+\.text a65
0+4 g[ ]+\.text a28
0+4 g[ ]+\.text a30
0+4 g[ ]+\.text a10
0+4 g[ ]+\.text a103
0+4 g[ ]+\.text a42
0+4 g[ ]+\.text a62
0+4 g[ ]+\.text a25
0+4 g[ ]+\.text a128
0+4 g[ ]+\.text a9
0+4 g[ ]+\.text a11
0+4 g[ ]+\.text a81
0+4 g[ ]+\.text a55
0+4 g[ ]+\.text a88
0+4 g[ ]+\.text a100
0+4 g[ ]+\.text a104
0+4 g[ ]+\.text a8
0+4 g[ ]+\.text a86
0+4 g[ ]+\.text a91
0+4 g[ ]+\.text a1
0+4 g[ ]+\.text a49
0+4 g[ ]+\.text a43
0+4 g[ ]+\.text a56
0+4 g[ ]+\.text a116
0+4 g[ ]+\.text a124
0+4 g[ ]+\.text a98
0+4 g[ ]+\.text a117
0+4 g[ ]+\.text a80
0+4 g[ ]+\.text a121
0+4 g[ ]+\.text a36
0+4 g[ ]+\.text a75
0+4 g[ ]+\.text a48
0+4 g[ ]+\.text a3
0+4 g[ ]+\.text a63
0+4 g[ ]+\.text a26
0+4 g[ ]+\.text a78
0+4 g[ ]+\.text a61
0+4 g[ ]+\.text a24
0+4 g[ ]+\.text a64
0+4 g[ ]+\.text a27
0+4 g[ ]+\.text a83
0+4 g[ ]+\.text a57
0+4 g[ ]+\.text a123
0+4 g[ ]+\.text a34
0+4 g[ ]+\.text a12
0+4 g[ ]+\.text a14
0+4 g[ ]+\.text a70
0+4 g[ ]+\.text a39
0+4 g[ ]+\.text a82
0+4 g[ ]+\.text a102
0+4 g[ ]+\.text a106
0+4 g[ ]+\.text a110
0+ g[ ]+\.text _start
0+4 g[ ]+\.text a41
0+4 g[ ]+\.text a85
0+4 g[ ]+\.text a58
0+4 g[ ]+\.text a89
0+4 g[ ]+\.text a54
0+4 g[ ]+\.text a19
0+4 g[ ]+\.text a93
0+4 g[ ]+\.text a126
0+4 g[ ]+\.text a22
0+4 g[ ]+\.text a96
0+4 g[ ]+\.text a7
0+4 g[ ]+\.text a35
0+4 g[ ]+\.text a31
0+4 g[ ]+\.text a5
0+4 g[ ]+\.text a44
0+4 g[ ]+\.text a105
0+4 g[ ]+\.text a90
0+4 g[ ]+\.text a97
0+4 g[ ]+\.text a92
0+4 g[ ]+\.text a2
0+4 g[ ]+\.text a120
0+4 g[ ]+\.text a113
0+4 g[ ]+\.text a77
0+4 g[ ]+\.text a125
0+4 g[ ]+\.text a118
0+4 g[ ]+\.text a32
0+4 g[ ]+\.text a108
0+4 g[ ]+\.text a47
0+4 g[ ]+\.text a112
0+4 g[ ]+\.text a59
0+4 g[ ]+\.text a87
0+4 g[ ]+\.text a94
0+4 g[ ]+\.text a20
0+4 g[ ]+\.text a51
0+4 g[ ]+\.text a16
0+4 g[ ]+\.text a53
0+4 g[ ]+\.text a18
0+4 g[ ]+\.text a66
0+4 g[ ]+\.text a29
0+4 g[ ]+\.text a72
0+4 g[ ]+\.text a79
0+4 g[ ]+\.text a74
0+4 g[ ]+\.text a68
0+4 g[ ]+\.text a95
0+4 g[ ]+\.text a60
0+4 g[ ]+\.text a23
0+4 g[ ]+\.text a67
0+4 g[ ]+\.text a
0+4 g[ ]+\.text a38
0+4 g[ ]+\.text a107
0+4 g[ ]+\.text a127
0+4 g[ ]+\.text a101
0+4 g[ ]+\.text a115
0+4 g[ ]+\.text a71
0+4 g[ ]+\.text a84
0+4 g[ ]+\.text a69
0+4 g[ ]+\.text a37
0+4 g[ ]+\.text a76
0+4 g[ ]+\.text a52
0+4 g[ ]+\.text a17
0+4 g[ ]+\.text a13
0+4 g[ ]+\.text a50
0+4 g[ ]+\.text a15
0+4 g[ ]+\.text a119
0+4 g[ ]+\.text a6
0+4 g[ ]+\.text a46
0+4 g[ ]+\.text a4
/greg-16.d
0,0 → 1,59
#source: gregget1.s
#source: greg-1.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-5.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: greg-4.s
#source: a.s
#source: start.s
#as: -x
#ld: -m mmo
#objdump: -dt
 
# Allocating the maximum number of gregs and referring to one at the
# *other* end still works, mmo.
 
.*: file format mmo
 
SYMBOL TABLE:
0+14 g \.text Main
0+14 g \.text _start
0+20 g \*REG\* areg
0+10 g \.text a
 
Disassembly of section \.text:
 
0+ <a-0x10>:
0: e3200010 setl areg,0x10
4: e6200000 incml areg,0x0
8: e5200000 incmh areg,0x0
c: e4200000 inch areg,0x0
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
 
0+14 <(Main|_start)>:
14: e3fd0001 setl \$253,0x1
/b-badfixo.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FIXO with invalid;
% (!= 1, != 2), YZ field.
.text
.byte 0x98,3,0,3
/pushjs1r.d
0,0 → 1,22
#source: nop123.s
#source: pushja.s
#source: pad2p18m32.s
#source: pad16.s
#source: nop123.s
#ld: -r -m elf64mmix
#objdump: -dr
 
# When linking relocatable, check that PUSHJ with a distance to the end of
# the section just within the offset range gets no stub expansion.
 
.*: file format elf64-mmix
Disassembly of section \.text:
0+ <pushja-0x4>:
0: fd010203 swym 1,2,3
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0000 pushj \$12,8 <pushja\+0x4>
8: R_MMIX_PUSHJ_STUBBABLE a
c: e3fd0003 setl \$253,0x3
\.\.\.
40000: fd010203 swym 1,2,3
/jumpa-1f.d
0,0 → 1,25
#source: start.s
#source: jumpa.s
#source: a.s
#as: -x
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <jumpa>:
4: e3fd0002 setl \$253,0x2
8: f0000006 jmp 20 <a>
c: fd000000 swym 0,0,0
10: fd000000 swym 0,0,0
14: fd000000 swym 0,0,0
18: fd000000 swym 0,0,0
1c: e3fd0003 setl \$253,0x3
 
0+20 <a>:
20: e3fd0004 setl \$253,0x4
/gregbza1.s
0,0 → 1,4
# Use a symbolic register areg, presumably allocated by greg in another file.
# The "BZ" will be expanded, and the reloc for areg must be resolved
# before the other relocs for that insn.
BZ areg,a
/bza-7b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: bza.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <bza>:
8: e3fd0002 setl \$253,0x2
c: 5aea0006 pbnz \$234,24 <bza\+0x1c>
10: e3ff0004 setl \$255,0x4
14: e6ff0000 incml \$255,0x0
18: e5ff0000 incmh \$255,0x0
1c: e4ff0000 inch \$255,0x0
20: 9fffff00 go \$255,\$255,0
24: e3fd0003 setl \$253,0x3
/dloc2.s
0,0 → 1,3
LOC #20 << 56 + #200
dloc2 TETRA 7,8,9
.global dloc2
/jumpa-9b.d
0,0 → 1,30
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -x
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000000 <jumpa>:
4000000: e3fd0002 setl \$253,0x2
4000004: f1000000 jmp 4 <a>
4000008: fd000000 swym 0,0,0
400000c: fd000000 swym 0,0,0
4000010: fd000000 swym 0,0,0
4000014: fd000000 swym 0,0,0
4000018: e3fd0003 setl \$253,0x3
/gregget2.s
0,0 → 1,4
# Use a symbolic register b, presumably allocated by greg in another file.
# The "GETA" will be expanded, and the reloc for b must be resolved before
# the other relocs for that insn.
GETA b,a
/bpo-8.d
0,0 → 1,7
#source: start.s
#source: bpo-4.s
#source: pad2p18m32.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#error: Too many global registers: 224
/sym-2.s
0,0 → 1,130
% Just 128 symbols to test that we can handle it in mmo. Assemble it with
% -globalize-symbols.
a1:
a2:
a3:
a4:
a5:
a6:
a7:
a8:
a9:
a10:
a11:
a12:
a13:
a14:
a15:
a16:
a17:
a18:
a19:
a20:
a21:
a22:
a23:
a24:
a25:
a26:
a27:
a28:
a29:
a30:
a31:
a32:
a33:
a34:
a35:
a36:
a37:
a38:
a39:
a40:
a41:
a42:
a43:
a44:
a45:
a46:
a47:
a48:
a49:
a50:
a51:
a52:
a53:
a54:
a55:
a56:
a57:
a58:
a59:
a60:
a61:
a62:
a63:
a64:
a65:
a66:
a67:
a68:
a69:
a70:
a71:
a72:
a73:
a74:
a75:
a76:
a77:
a78:
a79:
a80:
a81:
a82:
a83:
a84:
a85:
a86:
a87:
a88:
a89:
a90:
a91:
a92:
a93:
a94:
a95:
a96:
a97:
a98:
a99:
a100:
a101:
a102:
a103:
a104:
a105:
a106:
a107:
a108:
a109:
a110:
a111:
a112:
a113:
a114:
a115:
a116:
a117:
a118:
a119:
a120:
a121:
a122:
a123:
a124:
a125:
a126:
a127:
a128:
/b-widec.s
0,0 → 1,7
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide a valid end of a mmo file, but with the
% "n" in :Main in wide character format; the widening is with a nil, so it
% is treated like a normal "n".
.text
.byte 0x98,0x0b,0x00,0x00,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 0x81,0,0x6e,0x04,0x81,0x01,0x61,0x04,0x82,0,0,0,0x98,0x0c,0x00,0x05
/bspec1m.d
0,0 → 1,15
#source: bspec1.s
#source: start.s
#ld: -m mmo
#objdump: -str
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
 
Contents of section \.text:
0+ e3fd0001 .*
Contents of section \.MMIX\.spec_data\.2:
0000 0000002a .*
/jumpa.s
0,0 → 1,7
* Just jump to an external symbol, with some padding.
.text
.global jumpa
jumpa:
SET $253,2
JMP a
SET $253,3
/getaa-8f.d
0,0 → 1,21
#source: start.s
#source: getaa.s
#source: a.s
#as: -no-expand
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <getaa>:
4: e3fd0002 setl \$253,0x2
8: f47b0002 geta \$123,10 <a>
c: e3fd0003 setl \$253,0x3
 
0+10 <a>:
10: e3fd0004 setl \$253,0x4
/b-widec2.d
0,0 → 1,6
#source: b-twoinsn.s
#source: b-post1.s
#source: b-widec2.s
#ld: --oformat binary
#objcopy_linked_file:
#error: unsupported wide character sequence 0xFF 0x6E
/pushjs4.d
0,0 → 1,34
#source: start4.s
#source: pushja.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: a.s
#source: start.s
#ld: -m elf64mmix
#objdump: -dr
 
# Check that PUSHJ with an offset just outside reach of JMP works; it will
# get the full expansion, ELF version.
 
.*: file format elf64-mmix
Disassembly of section \.init:
0+ <_start>:
0: e37704a6 setl \$119,0x4a6
Disassembly of section \.text:
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: f20c0002 pushj \$12,10 <pushja\+0xc>
c: e3fd0003 setl \$253,0x3
10: e3ff0020 setl \$255,0x20
14: e6ff0400 incml \$255,0x400
18: e5ff0000 incmh \$255,0x0
1c: e4ff0000 inch \$255,0x0
20: 9f00ff00 go \$0,\$255,0
\.\.\.
0+4000020 <a>:
4000020: e3fd0004 setl \$253,0x4
0+4000024 <_start>:
4000024: e3fd0001 setl \$253,0x1
/b-badrx2.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badrx2.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: expected z .* lop_fixrx
/bpo-7m.d
0,0 → 1,6
#source: start.s
#source: bpo-4.s
#source: greg-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#error: Too many global registers: 224
/b-badloc.d
0,0 → 1,7
#source: b-twoinsn.s
#source: b-badloc.s
#source: b-post1.s
#source: b-goodmain.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: .* lop_loc
/bpo-8.s
0,0 → 1,3
# A BPO and an ordinary reloc in the same section.
LDA $54,areg-8
.quad areg-4
/greg-11b.d
0,0 → 1,32
#source: greg-1.s
#source: gregldo1.s
#source: gregget2.s
#source: a.s
#source: greg-3.s
#source: start.s
#source: greg-2.s
#as: -x
#ld: -m mmo
#objdump: -str
 
# Have two used gregs and one unused, mmo; display contents to visualize
# mmo bug with register contents.
 
.*: file format mmo
 
SYMBOL TABLE:
0+20 g \.text Main
0+fe g \*REG\* b
0+20 g \.text _start
0+fc g \*REG\* areg
0+fd g \*REG\* c
0+1c g \.text a
 
 
Contents of section \.text:
0+ 8c0c20fc 8d7bfc22 8dfcea38 e3fe001c .*
0+10 e6fe0000 e5fe0000 e4fe0000 e3fd0004 .*
0+20 e3fd0001 .*
Contents of section \.MMIX\.reg_contents:
07e0 00007048 860f3a38 00000000 00000042 .*
07f0 007acf50 505a30a2 .*
/bpo-17.d
0,0 → 1,23
#source: start.s
#source: bpo-8.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m elf64mmix
#objdump: -st
 
# A BPO and another reloc in the same section.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7f0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+ g \.text 0+ _start
0+10 g \.text 0+ areg
#...
 
Contents of section \.text:
0000 e3fd0001 2336fe00 00000000 0000000c .*
0010 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000008 .*
/sec-1.d
0,0 → 1,35
#source: sec-1.s
#source: start.s
#ld: -m elf64mmix
#objcopy_linked_file: -O mmo
#objdump: -sh
 
# Test conversion from ELF to mmo with non-mmo-sections present,
# testing that support.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 secname 0+19 0+4 0+4 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 \.a\.fourth\.section 0+10 0+20 0+20 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 anothersec 0+13 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, DATA
4 thirdsec 0+a 0+ 0+ 0+ 2\*\*2
CONTENTS, READONLY
Contents of section \.text:
0000 e3fd0001 .*
Contents of section secname:
0004 00000001 00000002 00000003 00000004 .*
0014 ffffffff fffff827 50 .*
Contents of section \.a\.fourth\.section:
0020 00000000 0087a238 00000000 302a55a8 .*
Contents of section anothersec:
2000000000000000 0000000a 00000009 00000008 00000007 .*
2000000000000010 252729 .*
Contents of section thirdsec:
0000 00030d41 000186a2 2628 .*
/b-bend3.d
0,0 → 1,6
#source: b-twoinsn.s
#source: b-post1.s
#source: b-badm2.s
#ld: --oformat binary
#objcopy_linked_file:
#error: invalid mmo file: YZ of lop_end .* not equal to the number of tetras to the preceding lop_stab
/b-widec2.s
0,0 → 1,7
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s, and will provide a valid end of a mmo file, but with the
% "n" in :Main in wide character format; the widening is with a 0xff, so it
% isn't supported, and the file is rejected.
.text
.byte 0x98,0x0b,0x00,0x00,0x20,0x3a,0x30,0x4d,0x20,0x61,0x20,0x69
.byte 0x81,0xff,0x6e,0x04,0x81,0x01,0x61,0x04,0x82,0,0,0,0x98,0x0c,0x00,0x05
/bspec808.s
0,0 → 1,9
BSPEC 80
TETRA 2 % Decent section length name (in 32-bit words).
BYTE "aaaaaaaa"
TETRA 0x11 % Flags.
TETRA 0xff00,0 % Indecent section length
TETRA 0xff,0 % Decent vma.
ESPEC
.data
TETRA 0x112233
/undef-1m.d
0,0 → 1,4
#source: undef-1.s
#source: start.s
#ld: -m mmo
#error: undefined reference to `regvar'
/local3.d
0,0 → 1,48
#source: greg-4.s
#source: greg-4.s
#source: local1.s
#source: ext1.s
#source: start.s
#ld: -m elf64mmix
#readelf: -Ssx1 -x2
 
# Like local1, but ext1 is here a constant, not a global register.
 
There are 6 section headers, starting at offset 0xc8:
 
Section Headers:
\[Nr\] Name Type Address Offset
Size EntSize Flags Link Info Align
\[ 0\] NULL 0+ 0+
0+ 0+ 0 0 0
\[ 1\] \.text PROGBITS 0+ 0+78
0+8 0+ AX 0 0 4
\[ 2\] \.MMIX\.reg_content PROGBITS 0+7e8 0+80
0+10 0+ W 0 0 1
\[ 3\] \.shstrtab STRTAB 0+ 0+90
0+34 0+ 0 0 1
\[ 4\] \.symtab SYMTAB 0+ 0+248
0+108 0+18 5 5 8
\[ 5\] \.strtab STRTAB 0+ 0+350
0+32 0+ 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
I \(info\), L \(link order\), G \(group\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
 
Symbol table '\.symtab' contains 11 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 0+ 0 NOTYPE LOCAL DEFAULT UND
1: 0+ 0 SECTION LOCAL DEFAULT 1
2: 0+7e8 0 SECTION LOCAL DEFAULT 2
3: 0+fd 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
4: 0+fe 0 NOTYPE LOCAL DEFAULT PRC\[0xff00\] lsym
5: 0+fc 0 NOTYPE GLOBAL DEFAULT ABS ext1
6: 0+4 0 NOTYPE GLOBAL DEFAULT 1 _start
#...
 
Hex dump of section '\.text':
0x0+ fd030201 e3fd0001 .*
 
Hex dump of section '\.MMIX\.reg_contents':
0x0+7e8 00000000 0000004e 00000000 0000004e .*
/bza-2b.d
0,0 → 1,21
#source: start.s
#source: a.s
#source: bza.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0+: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
 
0+8 <bza>:
8: e3fd0002 setl \$253,0x2
c: 43eafffe bz \$234,4 <a>
10: e3fd0003 setl \$253,0x3
/pushjs2bm.d
0,0 → 1,31
#source: nop123.s
#source: nop123.s
#source: a.s
#source: pad2p18m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: pushja.s
#source: start.s
#ld: -m mmo
#objdump: -dr
 
# Check that PUSHJ with an offset just outside the offset range gets a JMP
# stub expansion, backwards, mmo version.
 
.*: file format mmo
Disassembly of section \.text:
0+ <a-0x8>:
0: fd010203 swym 1,2,3
4: fd010203 swym 1,2,3
0+8 <a>:
8: e3fd0004 setl \$253,0x4
\.\.\.
0+40008 <pushja>:
40008: e3fd0002 setl \$253,0x2
4000c: f20c0002 pushj \$12,40014 <pushja\+0xc>
40010: e3fd0003 setl \$253,0x3
40014: f1fefffd jmp 8 <a>
0+40018 <Main>:
40018: e3fd0001 setl \$253,0x1
/jumpa-4b.d
0,0 → 1,26
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -no-expand
#ld: -m elf64mmix
#objdump: -dr
 
.*: file format elf64-mmix
 
Disassembly of section \.text:
 
0+ <_start>:
0: e3fd0001 setl \$253,0x1
 
0+4 <a>:
4: e3fd0004 setl \$253,0x4
\.\.\.
 
0+4000000 <jumpa>:
4000000: e3fd0002 setl \$253,0x2
4000004: f1000000 jmp 4 <a>
4000008: e3fd0003 setl \$253,0x3
/b-badrx2.s
0,0 → 1,6
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_FIXRX with invalid
% (!= 16, != 24), Z field.
.text
.byte 0x98,5,0,8
.4byte 0
/sec-9.d
0,0 → 1,19
#source: start.s
#ld: -m mmo -T $srcdir/$subdir/mmosec2.ld
#objdump: -sh
 
# This is based on sec-5.d which used to link .text at an unexpected
# address to check that a special section was created in objdump when
# reading in contents at an unusual location without a proper section
# descriptor. As .text (like .data) now gets a section descriptor when
# linked to an unexpected location, the old test is transformed into a
# specific check that the section description for .text works.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 1000000000000000 1000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, READONLY, CODE
Contents of section \.text:
1000000000000000 e3fd0001 .*
/loc7m.d
0,0 → 1,6
#source: dloc1.s
#source: start.s
#source: dloc2.s
#ld: -m mmo
#objdump: -str
#error: multiple definition of `__\.MMIX\.start\.\.data'
/bpo-16m.d
0,0 → 1,21
#source: start.s
#source: bpo-7.s
#source: bpo-7.s
#source: areg-t.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Two BPO:s against the same value get merged.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+c g \.text areg
 
Contents of section \.text:
0000 e3fd0001 234dfe00 234dfe00 fd040810 .*
Contents of section \.MMIX\.reg_contents:
07f0 00000000 00000007 .*
/b-badloc.s
0,0 → 1,5
% The .text contents is supposed to be linked --oformat binary with
% b-twoinsn.s and b-goodmain.s, and will provide a LOP_LOC with invalid;
% (!= 1, != 2), YZ field.
.text
.byte 0x98,1,0,0
/jumpa14b.d
0,0 → 1,11
#source: start.s
#source: a.s
#source: pad2p26m32.s
#source: pad16.s
#source: pad4.s
#source: pad4.s
#source: pad4.s
#source: jumpa.s
#as: -no-expand
#ld: -m mmo
#error: relocation truncated to fit: R_MMIX_ADDR27 against `a'$
/greg-2.d
0,0 → 1,41
#source: greg-1.s
#source: gregldo1.s
#source: gregget2.s
#source: a.s
#source: greg-3.s
#source: start.s
#source: greg-2.s
#as: -x
#ld: -m elf64mmix
#objdump: -dt
 
# Have two used gregs and one unused.
 
.*: file format elf64-mmix
 
SYMBOL TABLE:
0+ l d \.text 0+ (|\.text)
0+7e0 l d \.MMIX\.reg_contents 0+ (|\.MMIX\.reg_contents)
0+fe g \*REG\* 0+ b
0+20 g \.text 0+ _start
0+fc g \*REG\* 0+ areg
0+fd g \*REG\* 0+ c
#...
0+1c g \.text 0+ a
 
Disassembly of section \.text:
 
0+ <a-0x1c>:
0: 8c0c20fc ldo \$12,\$32,\$252
4: 8d7bfc22 ldo \$123,\$252,34
8: 8dfcea38 ldo \$252,\$234,56
c: e3fe001c setl \$254,0x1c
10: e6fe0000 incml \$254,0x0
14: e5fe0000 incmh \$254,0x0
18: e4fe0000 inch \$254,0x0
 
0+1c <a>:
1c: e3fd0004 setl \$253,0x4
 
0+20 <_start>:
20: e3fd0001 setl \$253,0x1
/spec803.d
0,0 → 1,24
#source: bspec803.s
#source: start.s
#ld: -m mmo
#objdump: -sh
 
# See spec801.d.
# #3: LOP_QUOTE in name and non-quote LOP in section flags.
 
.*: file format mmo
 
Sections:
Idx Name Size VMA LMA File off Algn
0 \.text 0+4 0+ 0+ 0+ 2\*\*2
CONTENTS, ALLOC, LOAD, CODE
1 \.data 0+4 2000000000000000 2000000000000000 0+ 2\*\*2
CONTENTS, ALLOC, LOAD
2 \.MMIX\.spec_data\.80 0+c 0+ 0+ 0+ 2\*\*2
CONTENTS
Contents of section \.text:
0000 e3fd0001 .*
Contents of section \.data:
2000000000000000 00112233 .*
Contents of section \.MMIX\.spec_data\.80:
0000 00000002 61616161 98616161 .*
/pushja7f.d
0,0 → 1,25
#source: start.s
#source: pushja.s
#source: a.s
#as: -x --no-pushj-stubs
#ld: -m mmo
#objdump: -dr
 
.*: file format mmo
 
Disassembly of section \.text:
 
0+ <(Main|_start)>:
0: e3fd0001 setl \$253,0x1
 
0+4 <pushja>:
4: e3fd0002 setl \$253,0x2
8: e3ff0020 setl \$255,0x20
c: e6ff0000 incml \$255,0x0
10: e5ff0000 incmh \$255,0x0
14: e4ff0000 inch \$255,0x0
18: bf0cff00 pushgo \$12,\$255,0
1c: e3fd0003 setl \$253,0x3
 
0+20 <a>:
20: e3fd0004 setl \$253,0x4
/sec-1.s
0,0 → 1,14
.section secname,"ax"
TETRA 1,2,3,4,-1,-2009
BYTE 80
 
.section anothersec,"aw"
TETRA 10,9,8,7
BYTE 37,39,41
 
.section thirdsec
TETRA 200001,100002
BYTE 38,40
 
.section .a.fourth.section,"a"
OCTA 8888888,808080808
/bpo-2m.d
0,0 → 1,21
#source: start.s
#source: greg-1.s
#source: bpo-1.s
#as: -linker-allocated-gregs
#ld: -m mmo
#objdump: -st
 
# Just a simple linker-allocated GREG plus one explicit GREG.
 
.*: file format mmo
 
SYMBOL TABLE:
0+ g \.text Main
0+ g \.text _start
0+fe g \*REG\* areg
 
Contents of section \.text:
0000 e3fd0001 232afd00 .*
Contents of section \.MMIX\.reg_contents:
07e8 00000000 0000002e 00007048 860f3a38 .*
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.