296 Commits

Author SHA1 Message Date
Mikael Pettersson
9ccb331bca sim: sim_core: move handle_MOVEI/4 to sim_moves, add unit test 2020-07-14 14:07:32 +02:00
Mikael Pettersson
fc825e5556 sim: sim_core: move handle_MOVE/4 to sim_moves, add unit test 2020-07-14 14:07:26 +02:00
Mikael Pettersson
036801a309 sim: sim_moves: new, handle EXCH, add unit tests 2020-07-14 14:07:20 +02:00
Mikael Pettersson
d6cd39c741 sim: sim_core: add and export c/3 and cset/4, export page_fault/6 2020-07-13 18:44:13 +02:00
Mikael Pettersson
63d030846b sim: sim_ea_tests: add unit tests for EA calculations 2020-07-12 16:59:15 +02:00
Mikael Pettersson
8364d5a295 sim: sim_core: handle MOVE 2020-07-12 16:58:18 +02:00
Mikael Pettersson
81b46c4781 sim: sim_kernel: add FIXME about improved syscall return convention 2020-07-12 16:58:18 +02:00
Mikael Pettersson
a1eac8e351 sim: sim_core.hrl: document that the status flags are sticky 2020-07-12 16:58:18 +02:00
Mikael Pettersson
d28582edb5 sim: simtest1.s: first test case 2020-07-08 13:46:03 +02:00
Mikael Pettersson
b44534221f sim: handle exit_group() syscall, exit with simulated program's exit status 2020-07-08 13:44:14 +02:00
Mikael Pettersson
dcfc247527 sim: add framework for emulating system calls 2020-07-08 13:25:41 +02:00
Mikael Pettersson
aab824fe87 sim: sim_core: handle MOVEI 2020-07-07 17:57:26 +02:00
Mikael Pettersson
7470224404 sim: sim_core: correct terminology for the privileged state 2020-07-07 17:45:47 +02:00
Mikael Pettersson
5adda72e1f ld: record a fragment's output offset separately from its input shdr 2020-07-06 12:12:19 +02:00
Mikael Pettersson
92d5ed6a1a sim: sim_core: improve diagnostic output formatting 2020-07-06 12:05:58 +02:00
Mikael Pettersson
271f580e73 sim: sim_loader: fix parameter order to lists:duplicate/2, add alignment checks 2020-07-06 12:04:42 +02:00
Mikael Pettersson
d0c6103989 readelf: also disassemble loadable segments containing code 2020-07-05 19:46:03 +02:00
Mikael Pettersson
8631bc5c2a sim: sim_core: add instruction fetch, effective address calculation, and code to start a freshly loaded program 2020-07-05 16:01:42 +02:00
Mikael Pettersson
5e138be489 sim: sim_core.hrl: add type for effective addresses, tweaks 2020-07-05 15:56:13 +02:00
Mikael Pettersson
d431e548b8 sim: sim_loader: convert entry point from byte to word address 2020-07-05 15:54:33 +02:00
Mikael Pettersson
b0b43b35ff sim: sim_core: start implementing the simulator core 2020-06-28 21:48:07 +02:00
Mikael Pettersson
1bfa79597a sim: sim_core.hrl: correct type of ac field 2020-06-28 21:43:08 +02:00
Mikael Pettersson
76e19ce3ae sim: sim_loader: also set up envp[] for _start() 2020-06-28 13:40:35 +02:00
Mikael Pettersson
0947a15735 sim: sim_loader: prefix Argv with Exe path 2020-06-28 13:35:10 +02:00
Mikael Pettersson
d7cecec3a9 rebar.config: add sim_loader:format_error/1 to xref_ignore 2020-06-28 13:34:15 +02:00
Mikael Pettersson
a9513554d6 sim: sim_loader: add ELF loader 2020-06-26 23:25:12 +02:00
Mikael Pettersson
1983581477 sim: sim_core.hrl: describe user-mode execution context 2020-06-26 23:12:12 +02:00
Mikael Pettersson
16ba843e11 sim: sim_mem: add user-mode memory emulation 2020-06-26 23:12:05 +02:00
Mikael Pettersson
5e0b8e7742 sim: initial top-level framework 2020-06-09 21:55:39 +02:00
Mikael Pettersson
438cef200e TODO: remove some obsolete stuff 2020-06-08 19:20:09 +02:00
Mikael Pettersson
617887e2ef README: mention 'ld' 2020-06-08 19:19:57 +02:00
Mikael Pettersson
e082530780 as: output:symbol_image/1: handle symbols without values 2020-06-07 21:18:53 +02:00
Mikael Pettersson
ec21b92348 readelf: add support for printing program header tables 2020-06-07 21:18:53 +02:00
Mikael Pettersson
c0c4f491ca pdp10_elf36: add support for reading program header tables 2020-06-07 21:18:47 +02:00
Mikael Pettersson
e1320acc78 ld: handle input file options 2020-06-07 21:18:47 +02:00
Mikael Pettersson
e24b529f05 ld: ld_input: error if there are no input files 2020-06-07 21:18:47 +02:00
Mikael Pettersson
ebbfad04bc ld: ld_output: new phase to output ELF and apply relocations 2020-06-07 21:18:40 +02:00
Mikael Pettersson
67c96e0d65 pdp10-relocation.txt: correct descriptions of byte pointer relocations 2020-06-06 14:31:38 +02:00
Mikael Pettersson
d235aac0cd pdp10_elf36: add Ehdr and Phdr write support 2020-06-06 14:31:38 +02:00
Mikael Pettersson
198bf54c7c pdp10_elf36: read_Ehdr/1: more sanity checks 2020-06-06 14:31:38 +02:00
Mikael Pettersson
d60f570258 ld: ld_symtab: new phase to compute global and per-file symbol tables 2020-06-06 14:31:38 +02:00
Mikael Pettersson
b1b7dc280c ld: ld_assign: new phase to assign load addresses and file offsets to segments 2020-06-06 14:31:38 +02:00
Mikael Pettersson
ca515b376e pdp10_elf36.hrl: define ELF36_PHDR_SIZEOF 2020-06-06 14:31:38 +02:00
Mikael Pettersson
fa1d534960 ld: ld_phase2: improve grammar in comment 2020-06-06 14:31:38 +02:00
Mikael Pettersson
775358fd5c ld: ld_phase1: only collect SHF_ALLOC sections 2020-06-06 14:31:38 +02:00
Mikael Pettersson
a10bc2104c ld: ld_phase1: record ShNdx in sectfrags, do not compute unused SectionsMap 2020-06-06 14:31:31 +02:00
Mikael Pettersson
c04d1a3c94 ld: separate -module and -export directives by an empty line 2020-04-05 16:56:31 +02:00
Mikael Pettersson
8b38ce8191 ld: ld_phase2: new, implement linking phase 2 2020-04-05 16:51:47 +02:00
Mikael Pettersson
872c500337 ld: ld_internal.hrl: define type for ld_phase2:phase2/1 2020-04-04 21:50:54 +02:00
Mikael Pettersson
bbb6a51252 ld: ld_phase1: new, implement linking phase 1 2020-03-31 23:27:46 +02:00