summaryrefslogtreecommitdiff
path: root/usr.bin/oasm
AgeCommit message (Collapse)Author
4 daysoasm: Add initial support for labelsIan Moffett
A label is like a pin on a map with a number attached to it. OASM keeps track of a number referred to as the psuedo instruction pointer (PIP). This value is initially zero by default and is incremented every instruction. The purpose of this value is to pin a location in the code and mark it to be at a specific address so that further references to that label would be translated to the previous PIP value at the time of encountering the label. Signed-off-by: Ian Moffett <ian@osmora.org>
4 daysoasm: parse: Use oasm_err instead of printf()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: Add support for '!' commentsIan Moffett
Introduce comments, example usage: -- !! !! Double the X5 register by using the !! MUL instruction. !! mul x5, 2 !! wow -- Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: Add encoding for BR instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: Add encoding logic for "DIV" instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: Introduce encoding for MUL instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: 'osxm64' -> 'osmx64'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 daysoasm: Add encoding logic for "SUB" instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: Parse and encode the "HLT" instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: Implement encoding for 'ADD' instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Remove extra whitespaceIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Remove extra newlineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Handle increment/decrement operationsIan Moffett
Implement the initial encoding logic for INC/DEC instructions. Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Add 'unused' field to instructionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Fix typoIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: parse: Add TT_INC to parse_tok()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
6 daysoasm: emit: Don't use TAILQ_FOREACH for processingIan Moffett
In order to have more control over the flow at which we grab the next tokens, we should roll our own loop by hand using TAILQ_FIRST() and TAILQ_NEXT() Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysoasm: Add initial codegen emit sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysoasm: Open and grab fd for binary output fileIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysoasm: parse: Add tok_is_xreg() helperIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysoasm: lex: Convert and store <imm> to uint16_tIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysoasm: lex: Free tokenstr on errorIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Free pointers on error pathsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Add initial parsing logicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Add IMM tokstr entryIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Lex registers and operandsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Add log.cIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Store last token and line numberIan Moffett
Keep track of the last token type (for parser) and keep track of the current line number for debugging. Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Add register token typesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 daysusr: oasm: Add quotes around token nameIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 daysusr: Add initial "oasm" assembler workIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>