about summary refs log tree commit diff stats
path: root/subx/066allocate.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-01-06 12:51:49 -0800
committerKartik Agaram <vc@akkartik.com>2019-01-06 12:52:33 -0800
commitaff782c4293e0c471505743575a1a0683a7ed096 (patch)
tree1cd15a0d670764bba76e91731085ec922898ec74 /subx/066allocate.subx
parent458ee5e354fa55e770696fb19054d4c6bb60ead6 (diff)
downloadmu-aff782c4293e0c471505743575a1a0683a7ed096.tar.gz
4911
Diffstat (limited to 'subx/066allocate.subx')
-rw-r--r--subx/066allocate.subx6
1 files changed, 6 insertions, 0 deletions
diff --git a/subx/066allocate.subx b/subx/066allocate.subx
index a4ea687c..37b01d21 100644
--- a/subx/066allocate.subx
+++ b/subx/066allocate.subx
@@ -183,6 +183,12 @@ allocate-region:  # ad : (address allocation-descriptor), n : int -> new-ad : (a
     5d/pop-to-EBP
     c3/return
 
+# We could create a more general '$abort' jump target, but then we'd need to do
+# a conditional jump followed by loading the error message and an unconditional
+# jump. Or we'd need to unconditionally load the error message before a
+# conditional jump, even if it's unused the vast majority of the time. This way
+# we bloat a potentially cold segment in RAM so we can abort with a single
+# instruction.
 $allocate-region:abort:
     # . _write(2/stderr, error)
     # . . push args