1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-11-22 12:33:29 +00:00
Commit Graph

884 Commits

Author SHA1 Message Date
Thomas Harte
93b4008f81 Localise flags, detect improper carry write. 2024-02-28 21:28:19 -05:00
Thomas Harte
904462b881 Regularise data transfers. 2024-02-28 21:23:57 -05:00
Thomas Harte
3b320bcdef Update coprocessor interface. 2024-02-28 14:43:31 -05:00
Thomas Harte
3368bdb99f Document exceptions, partly for my future self. 2024-02-28 14:34:31 -05:00
Thomas Harte
4d400c3cb7 Add easy exceptions. 2024-02-28 14:25:12 -05:00
Thomas Harte
474f9da3c2 Add banked registers. 2024-02-28 14:09:05 -05:00
Thomas Harte
c49b26701f Relocate and clarify barrel shifts.
With a view to independent testing.
2024-02-28 13:53:13 -05:00
Thomas Harte
9b42d35d56 Update interface. 2024-02-28 11:42:33 -05:00
Thomas Harte
645152a1fd Implement branch. 2024-02-28 11:33:28 -05:00
Thomas Harte
487ade56ed Add basic multiply. 2024-02-28 11:27:27 -05:00
Thomas Harte
60d1b36e9a Implement registers side. 2024-02-28 10:25:14 -05:00
Thomas Harte
5a48c15e46 Add scheduler side of PC writeback. 2024-02-28 10:15:23 -05:00
Thomas Harte
d6bf1808f9 Take a swing at PC-as-input. 2024-02-28 09:33:05 -05:00
Thomas Harte
b676153d21 State intention to merge status with other registers. 2024-02-27 15:36:34 -05:00
Thomas Harte
a3339cf882 Fix indentation. 2024-02-27 15:30:51 -05:00
Thomas Harte
4255283e33 Deal with conditionality up front. 2024-02-26 21:36:23 -05:00
Thomas Harte
16e827bb2c Add basic arithmetics. 2024-02-26 21:27:58 -05:00
Thomas Harte
580f402bb6 Muddle further towards data processing. 2024-02-26 14:50:45 -05:00
Thomas Harte
030dda34f0 Start poking at implementation. 2024-02-26 14:30:26 -05:00
Thomas Harte
481b6d0e69 Sketch out some status flags. 2024-02-25 22:01:51 -05:00
Thomas Harte
a88d41bf00 List the flags. 2024-02-25 15:21:54 -05:00
Thomas Harte
73d2acca12 Moderately improve comments. 2024-02-22 11:20:22 -05:00
Thomas Harte
d205e538e1 Accept the C++ I'm in; clarify and simplify interface. 2024-02-22 10:16:54 -05:00
Thomas Harte
6577f68efc Complete instruction set; consolidate mapper. 2024-02-21 15:32:27 -05:00
Thomas Harte
e986ae2878 Add coprocessor data operations and register transfers. 2024-02-21 15:25:57 -05:00
Thomas Harte
b2696450d5 Bring forwards single data transfers. 2024-02-21 14:51:51 -05:00
Thomas Harte
2bbaf73aa2 Delete was is now duplicated. 2024-02-21 14:18:41 -05:00
Thomas Harte
0fe2c1406b Start mutating towards a form that owns the switch. 2024-02-21 14:17:01 -05:00
Thomas Harte
954d920b9e Extend what's held in the operation enum. 2024-02-20 14:14:18 -05:00
Thomas Harte
57b45076c5 Start dealing with per-instruction fields. 2024-02-17 22:13:51 -05:00
Thomas Harte
d639dc8bcb Hit up some more = default opportunities. 2024-02-17 15:42:31 -05:00
Thomas Harte
9a74ab6a8e Switch to actual mnenomics, temporarily(?) shrink table. 2024-02-17 15:41:57 -05:00
Thomas Harte
4c53414cc3 Merge branch 'master' into ARMDecoding 2024-02-17 08:14:18 -05:00
Thomas Harte
bc5727af14 Switch to = default. 2024-02-16 21:50:15 -05:00
Thomas Harte
bd0a15c054 Start working on ARM2 decoding. 2024-02-16 21:36:07 -05:00
Ryan Carsten Schmidt
d811501421 Compatibility fixes in Markdown files.
Improve compatibility with some Markdown readers like MacDown by adding
blank lines before lists. Blank lines around headers were added for
consistency. One header level was fixed. One code block was fixed.
2024-01-27 13:24:35 -06:00
Thomas Harte
b61317ba7e Continue conversion of logging. 2024-01-19 22:02:26 -05:00
Thomas Harte
a3d37640aa Switch include guards to #pragma once. 2024-01-16 23:34:46 -05:00
Thomas Harte
795529ef97 Resolve sizing types. 2023-12-24 14:26:15 -05:00
Thomas Harte
cbd4f7965b Acknowledge one further 16-bit assumption. 2023-12-24 14:22:26 -05:00
Thomas Harte
13631fb7bc Resolve various 32->16 conversion warnings. 2023-12-24 14:14:53 -05:00
Thomas Harte
3e328bed61 Be overt about jump size, albeit without internal rigour. 2023-12-24 14:11:41 -05:00
Thomas Harte
084efdeb2d Resolve further type conversion warnings. 2023-12-05 16:54:11 -05:00
Thomas Harte
dd04909d58 Resolve some further warnings. 2023-12-05 16:43:55 -05:00
Thomas Harte
f50c45cc1a Treat 'invalid' as a silent failure. 2023-12-01 15:35:51 -05:00
Thomas Harte
ec2d878e3f End run around the template.
I have yet to get any insight whatsoever on the reason for GCC's failure here and won't have access to a suitable test
machine for a while so all I have for testing is the arduous CI cycle.
2023-11-17 17:02:46 -05:00
Thomas Harte
a0ca5e6cdc Remove outdated comment. 2023-11-17 10:38:11 -05:00
Thomas Harte
83c8f9996e Switch back to the natural type. 2023-11-17 10:27:38 -05:00
Thomas Harte
3f27338b2c New guess: the definition of size_t varies? 2023-11-16 23:46:22 -05:00
Thomas Harte
fbe02e3ad5 Randomly try a different explicit instantiation. 2023-11-16 23:37:37 -05:00
Thomas Harte
4b730c26d0 Satisfy GCC warning. 2023-11-16 23:31:51 -05:00
Thomas Harte
33486e69bf Remove CI trap. 2023-11-16 15:30:43 -05:00
Thomas Harte
1c7bb6d759 Add CI diagnosis trap. 2023-11-16 15:25:42 -05:00
Thomas Harte
25f0a373f3 Don't sign-extend ports (!). 2023-11-16 11:17:12 -05:00
Thomas Harte
233ec7b818 Soften some warnings. 2023-11-16 10:57:17 -05:00
Thomas Harte
7323af0b41 Avoid shadowing template parameter. 2023-11-15 11:10:01 -05:00
Thomas Harte
e927fd00d8 Do just enough to include x86 code in the main build. 2023-11-15 11:01:28 -05:00
Thomas Harte
f83d2a8740 Take a swing at ENTER. 2023-11-14 16:23:24 -05:00
Thomas Harte
aafa7de536 Implement LEAVE, almost. 2023-11-14 11:39:36 -05:00
Thomas Harte
ac826f90c3 Formalise a separate manager of segments. 2023-11-14 10:56:00 -05:00
Thomas Harte
6c405680f2 Implement PUSHA, POPA. 2023-11-14 10:42:06 -05:00
Thomas Harte
1552500b10 Implement BOUND. 2023-11-13 22:33:46 -05:00
Thomas Harte
60cec9fc67 Expand commentary. 2023-11-13 11:45:17 -05:00
Thomas Harte
3a782faaf3 Ensure shoutouts upon LDS, LES and any far jump/call/int. 2023-11-10 22:58:59 -05:00
Thomas Harte
7abd4d9b38 Fix AAA/AAS carry outcome. 2023-11-10 22:47:50 -05:00
Thomas Harte
e61dc0466f Add callout for tracking segment register changes. 2023-11-10 22:22:32 -05:00
Thomas Harte
79b126e6bb Add route for tracking segment register changes. 2023-11-10 22:11:52 -05:00
Thomas Harte
e78e5c8101 Add remaining acceptable error cases. 2023-11-09 12:26:40 -05:00
Thomas Harte
800c76a4fe Capture and respond to IDIV_REP. 2023-11-09 11:55:04 -05:00
Thomas Harte
5f1ea6c04c Unify AAA and AAS. 2023-11-08 22:30:39 -05:00
Thomas Harte
8d2a2bcf4a Unify DAA and DAS. 2023-11-08 22:26:48 -05:00
Thomas Harte
6b666bc92a Simplify DAS. 2023-11-08 22:19:51 -05:00
Thomas Harte
38933aa079 Bring fully into 8086 conformance. 2023-11-08 22:16:12 -05:00
Thomas Harte
502b9d2023 Simplify implementation of DAA. 2023-11-08 22:06:58 -05:00
Thomas Harte
ec4a60b7da Further universalise function layout. 2023-11-08 11:30:33 -05:00
Thomas Harte
d7bb1a9ee1 Tidy up and comment a little further. 2023-11-08 11:23:21 -05:00
Thomas Harte
9566a8de67 Split up the ungainly PerformImplementation.hpp. 2023-11-08 10:52:36 -05:00
Thomas Harte
b927cf4159 Resolve new decoding errors. 2023-11-07 22:08:44 -05:00
Thomas Harte
91b7d55871 Get strict about writeables. 2023-11-07 10:13:18 -05:00
Thomas Harte
e56e49a318 Fix SUB/SBB writes. 2023-11-07 10:09:04 -05:00
Thomas Harte
0262875088 Claw back to building. 2023-11-07 09:58:42 -05:00
Thomas Harte
2bed2c2c5c Further simplify syntax. 2023-11-07 09:14:42 -05:00
Thomas Harte
2af774601f Temporarily disentangle Memory and access internals; start to be overt in PerformImplementation. 2023-11-06 16:04:31 -05:00
Thomas Harte
797c9fe129 Temporarily avoid use of Writeable. 2023-11-05 21:47:52 -05:00
Thomas Harte
009915f4de Start promotion of ReturnType. 2023-11-05 21:42:22 -05:00
Thomas Harte
f96c33102a Add documentation. 2023-11-04 22:22:50 -04:00
Thomas Harte
5739862dbb Add specific entryway for preauthorised writes. 2023-11-03 15:36:30 -04:00
Thomas Harte
ebdf10525c Fix parameter case. 2023-11-02 17:00:22 -04:00
Thomas Harte
83850d7596 Commute: Status -> Flags as per usual x86 naming. 2023-11-02 16:55:38 -04:00
Thomas Harte
770803b073 Be more careful as to authorisation. 2023-11-02 15:37:59 -04:00
Thomas Harte
e4fdf09149 Fix PUSH SP, far call. Further simplify FlowController. 2023-11-01 23:39:52 -04:00
Thomas Harte
acb55aa4e2 Subsume repetition of arguments into a single context.
Albeit that it (temporarily?) loses some context used during test validation.
2023-11-01 17:03:23 -04:00
Thomas Harte
bc095bb9ce Slim down the flow controller. 2023-11-01 14:49:30 -04:00
Thomas Harte
097b328075 Split the preauthorised tracks. 2023-11-01 14:31:42 -04:00
Thomas Harte
ef83ac855a Fix spelling of Preauthorised, think further on return types. 2023-11-01 14:11:10 -04:00
Thomas Harte
430c60111e CMP doesn't write. 2023-10-31 22:42:39 -04:00
Thomas Harte
2432396eaa Fix SETMOC. 2023-10-31 22:04:26 -04:00
Thomas Harte
da2aea94e3 Fix CMPS. 2023-10-31 21:58:32 -04:00
Thomas Harte
9538491ee9 Fix pushes and pops. 2023-10-31 21:55:30 -04:00
Thomas Harte
724e08d4f1 Update commentary on semantics. 2023-10-31 15:09:21 -04:00