Commit Graph

27 Commits

Author SHA1 Message Date
Kartik Agaram dd9ba09a7c 4888
We only can't use rm32=5 when mod=0. Totally fine when it's mod=1.
2018-12-29 13:36:06 -08:00
Kartik Agaram 81605224f0 4847 2018-12-06 09:41:40 -08:00
Kartik Agaram 9d27e966b5 4808 - clean up comments in all subx files 2018-11-30 16:45:15 -08:00
Kartik Agaram ee9a9237d6 4802
Some automated commenting cleanup. Still needs more careful manual scanning.

  sed -i 's/^#   1-3/# . 1-3/' *.subx */*.subx
  sed -i 's/^#   op/# . op/' *.subx */*.subx
  sed -i 's/# vim/# . . vim/' *.subx */*.subx
  sed -i 's/^    # push args/    # . . push args/' *.subx */*.subx
  sed -i 's/^    # discard args/    # . . discard args/' *.subx */*.subx
  sed -i 's/^    # call/    # . . call/' *.subx */*.subx
  sed -i 's/^    # prolog/    # . prolog/' *.subx */*.subx
  sed -i 's/^    # epilog/    # . epilog/' *.subx */*.subx
  sed -i 's/^    # save registers/    # . save registers/' *.subx */*.subx
  sed -i 's/^    # restore registers/    # . restore registers/' *.subx */*.subx
  sed -i 's/  operand  /  register /' *.subx */*.subx
2018-11-30 11:13:36 -08:00
Kartik Agaram 6030d7e2e5 4801
Reindent all SubX code to make some room for the new comment style.
2018-11-30 10:54:42 -08:00
Kartik Agaram e5cbbea435 4780 2018-11-26 00:26:20 -08:00
Kartik Agaram de21899cb2 4669 2018-10-05 21:50:20 -07:00
Kartik Agaram 94ad882e82 4668 2018-10-05 21:30:22 -07:00
Kartik Agaram 03d50cc83c 4667
Standardize on hyphens in all names.
And we'll use colons for namespacing labels in functions.
2018-10-05 19:49:47 -07:00
Kartik Agaram ed0e64a981 4662 2018-10-05 10:42:16 -07:00
Kartik Agaram d25e51dc0f 4644 2018-10-01 15:53:44 -07:00
Kartik Agaram f872f7c726 4643 2018-10-01 15:18:00 -07:00
Kartik Agaram 2b51cba67c 4639 2018-10-01 12:28:30 -07:00
Kartik Agaram 1dcd9350ce 4624
Start requiring a '-o' flag to designate the output binary when translating.

Things currently get funky if you pass in multiple inputs, but that's ok.
This is the first step to supporting multiple input files for a single
output binary.
2018-09-30 23:12:54 -07:00
Kartik K. Agaram c5d9a32fe6 4516
More calling convention tweaks.

Use EBP to get consistently at parameters and locals.
Always put the first function argument closest to EBP.
2018-09-24 22:55:37 -07:00
Kartik Agaram 7d4e351a0d 4503
Include LEA (load effective address) in the SubX subset of x86 ISA.
2018-09-22 23:19:39 -07:00
Kartik Agaram 8c580ba1de 4591 2018-09-22 10:33:41 -07:00
Kartik Agaram 25d381c7d4 4590 2018-09-22 10:32:26 -07:00
Kartik Agaram 9372c16c00 4581
Even more cuddling. We want to keep lines short where the opcode and operands
are self-explanatory.

If there are any implicit registers, etc., we'll continue to do the table
layout.

The first two columns look messy now; let's see how this goes.
Maybe I'll give up on the tabular layout altogether, just string args with
a single space.
2018-09-21 16:56:37 -07:00
Kartik Agaram 9ce8fd1cc1 4580
Since we're cuddling jump/call args next to the opcode, we can have longer
labels without messing up the layout!
2018-09-21 16:39:46 -07:00
Kartik Agaram bd9f6d0cd0 4577 2018-09-21 15:38:36 -07:00
Kartik Agaram 9c50655a26 4576 2018-09-21 15:29:59 -07:00
Kartik Agaram ab1bc98447 4569 2018-09-21 13:52:42 -07:00
Kartik Agaram 3364d19cd1 4561 2018-09-20 21:34:56 -07:00
Kartik Agaram a49bc41365 4531 - automatically compute segment addresses 2018-09-01 20:10:06 -07:00
Kartik Agaram 6ff9ce26e8 4530 - create an apps/ directory 2018-09-01 10:54:20 -07:00
Kartik Agaram ea7f869856 4529 - move examples to a sub-directory 2018-09-01 09:39:36 -07:00