about summary refs log tree commit diff stats
path: root/subx/031check_operands.cc
Commit message (Collapse)AuthorAgeFilesLines
* 4668Kartik Agaram2018-10-051-4/+1
|
* 4503Kartik Agaram2018-09-221-0/+2
| | | | Include LEA (load effective address) in the SubX subset of x86 ISA.
* 4578 - subx: implement inc/dec operationsKartik Agaram2018-09-211-0/+18
|
* 4544Kartik Agaram2018-09-121-12/+12
| | | | | | | | Attempt #3 at fixing CI. In the process the feature gets a lot less half-baked. Ridiculously misleading that we had `has_metadata()` was special-cased to one specific transform. I suck.
* 4537Kartik Agaram2018-09-071-2/+1
| | | | | | | | | | | | | | | Streamline the factorial function; we don't need to save a stack variable into a register before operating on it. All instructions can take a stack variable directly. In the process we found two bugs: a) Opcode f7 was not implemented correctly. It was internally consistent but I'd never validated it against a natively running program. Turns out it encodes multiple instructions, not just 'not'. b) The way we look up imm32 operands was sometimes reading them before disp8/disp32 operands.
* 4527 - reading commandline argumentsKartik Agaram2018-08-301-0/+2
| | | | | | | | | | | The new example ex9 doesn't yet work natively. In the process I've emulated the kernel's role in providing args, implemented a couple of instructions acting on 8-bit operands (useful for ASCII string operations), and begun the start of the standard library (ascii_length is the same as strlen). At the level of SubX we're just only going to support ASCII.
* 4503Kartik Agaram2018-08-111-0/+9
|
* 4501Kartik Agaram2018-08-111-1/+1
|
* 4499Kartik Agaram2018-08-091-1/+1
| | | | | More tweaks for check passes. Ensure they're never first-class transforms.
* 4483Kartik Agaram2018-08-041-0/+511
Reorganize layers in accordance with the plan in layer 29.