Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | nqasm: support binary arithmetic operators in immediate operands | Bobby Bingham | 2017-01-18 | 4 | -9/+36 |
| | |||||
* | nqasm: support unary operators in immediate expressions | Bobby Bingham | 2017-01-18 | 4 | -6/+45 |
| | |||||
* | nqasm: allow "." to refer to current pc in immediate operand | Bobby Bingham | 2017-01-18 | 4 | -4/+9 |
| | |||||
* | nqasm: reformat argument rules in grammar | Bobby Bingham | 2017-01-18 | 1 | -14/+7 |
| | |||||
* | nqasm: lex registers as if they were labels | Bobby Bingham | 2017-01-18 | 2 | -13/+29 |
| | | | | | This makes parsing registers trickier, but allows a label to have a name 'r0'-'r7', which would otherwise conflict with the registers. | ||||
* | nqasm: allow specifying labels for operands | Bobby Bingham | 2017-01-18 | 6 | -44/+100 |
| | |||||
* | nqasm: store instructions in memory before assembling | Bobby Bingham | 2017-01-18 | 1 | -16/+37 |
| | |||||
* | nqasm: parse labels | Bobby Bingham | 2017-01-17 | 6 | -2/+110 |
| | |||||
* | nqdasm: reduce size of line structure | Bobby Bingham | 2017-01-15 | 1 | -11/+13 |
| | | | | | | | | This structure represents essentially all the run-time memory use of the disassembler, with 32k instances of it allocated. On 64-bit systems, this cuts the size of a single instance from 16 bytes to 8 bytes. On a 32-bit system, it goes from 12 bytes to 8 bytes. | ||||
* | nqdasm: use a static buffer for input lines | Bobby Bingham | 2017-01-15 | 1 | -65/+33 |
| | | | | Simplifies buffer handling and searches for lines by address. | ||||
* | nqdasm: Generate necessary labels for pcoff operands | Bobby Bingham | 2017-01-15 | 1 | -1/+48 |
| | |||||
* | nqdasm: Factor out operand value extraction code | Bobby Bingham | 2017-01-15 | 1 | -10/+28 |
| | |||||
* | nqdasm: read entire file into memory before processing | Bobby Bingham | 2017-01-15 | 1 | -10/+71 |
| | |||||
* | nqdasm: Factor out disassembly code from command line parsing | Bobby Bingham | 2017-01-15 | 1 | -16/+21 |
| | |||||
* | nqdasm: Add command line opt for input/output files | Bobby Bingham | 2017-01-15 | 1 | -13/+80 |
| | |||||
* | nqasm: Fix warnings about missing braces in initializers | Bobby Bingham | 2017-01-15 | 1 | -2/+2 |
| | |||||
* | Turn on compiler warnings | Bobby Bingham | 2017-01-15 | 1 | -1/+1 |
| | |||||
* | nqdasm: Output .word directives for unknown instructions | Bobby Bingham | 2017-01-15 | 1 | -1/+1 |
| | |||||
* | nqdasm: improve spacing between mnemonic and operands | Bobby Bingham | 2017-01-15 | 1 | -1/+3 |
| | |||||
* | nqdasm: Add disassembler | Bobby Bingham | 2017-01-15 | 5 | -37/+87 |
| | |||||
* | Switch addpc to use pc-offset instead of immediate operand | Bobby Bingham | 2017-01-15 | 2 | -2/+5 |
| | | | | | This makes more sense, as the argument is really a signed offset from the program counter. | ||||
* | nqasm: Reformat nop grammar | Bobby Bingham | 2017-01-15 | 1 | -2/+1 |
| | |||||
* | nqasm: Handle pc offset arguments | Bobby Bingham | 2017-01-15 | 1 | -14/+20 |
| | |||||
* | nqasm: Rename arglist non-terminals to a_* | Bobby Bingham | 2017-01-15 | 1 | -39/+46 |
| | | | | | This will allow differentiation between pcoff (a single argument) and a_pcoff (an argument list consisting of only a pcoff argument). | ||||
* | nqasm: Handle immediate arguments | Bobby Bingham | 2017-01-15 | 2 | -6/+41 |
| | |||||
* | nqasm: Handle register and register indirect arguments | Bobby Bingham | 2017-01-15 | 5 | -53/+76 |
| | |||||
* | nqasm: Improve parsing at end of file | Bobby Bingham | 2017-01-15 | 2 | -4/+6 |
| | | | | | | | | | Bison's implicit $accept rule ends with the END token. The fact that input could also end with END (via the line non-terminal) resulted in a shift reduce conflict. We resolve the conflict by modifying the lexer so that if it encounters end of file partway through a line, it produces a final EOL token before EOF. | ||||
* | Add gitignore | Bobby Bingham | 2017-01-15 | 1 | -0/+7 |
| | |||||
* | nqasm: Initial stab at a lexer and parser | Bobby Bingham | 2017-01-15 | 5 | -0/+278 |
| | | | | | So far, this only understands instructions, but no operands or labels. It doesn't handle bad input gracefully. It's just enough to test the basics. | ||||
* | Add table of instructions and their encodings | Bobby Bingham | 2017-01-15 | 2 | -0/+104 |