diff options
author | Kartik Agaram <vc@akkartik.com> | 2018-11-25 13:46:53 -0800 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2018-11-25 13:46:53 -0800 |
commit | 50dcc0c122e7208fbddedac6f7939020c28e460d (patch) | |
tree | e24b92db5fe4e01ef7707448b34eed0afdcce9bb /subx/apps | |
parent | 33fdc60b168a04ca26b4924ecde2adb7c8059a13 (diff) | |
download | mu-50dcc0c122e7208fbddedac6f7939020c28e460d.tar.gz |
4776
Crenshaw compiler now runs natively as well. It turns out I was misreading the Intel manual, and the jump instructions that I thought take disp16 operands actually take disp32 operands by default on both i686 and x86_64 processors. The disp16 versions are some holdover from the 16-bit days. This was the first time I've used one of these erstwhile-disp16 instructions, but I still haven't tested most of them. We'll see if we run into future issues.
Diffstat (limited to 'subx/apps')
-rwxr-xr-x | subx/apps/crenshaw2-1b | bin | 7048 -> 7050 bytes | |||
-rw-r--r-- | subx/apps/crenshaw2-1b.subx | 2 |
2 files changed, 1 insertions, 1 deletions
diff --git a/subx/apps/crenshaw2-1b b/subx/apps/crenshaw2-1b index 1396ede0..4e59c1b7 100755 --- a/subx/apps/crenshaw2-1b +++ b/subx/apps/crenshaw2-1b Binary files differdiff --git a/subx/apps/crenshaw2-1b.subx b/subx/apps/crenshaw2-1b.subx index ef6996ee..1776b833 100644 --- a/subx/apps/crenshaw2-1b.subx +++ b/subx/apps/crenshaw2-1b.subx @@ -291,7 +291,7 @@ $get-num:loop-stage2: 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32 # add to ESP # if EAX loop 3d/compare-EAX 0/imm32 - 0f 85/jump-if-not-equal $get-num:loop/disp16 + 0f 85/jump-if-not-equal $get-num:loop/disp32 $get-num:loop-end: # persist necessary variables from registers 89/copy 0/mod/indirect 7/rm32/EDI . . . 1/r32/ECX . . # copy ECX to *EDI |