summary refs log tree commit diff
path: root/lisc/isel.c
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-10-23 16:58:01 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-10-30 13:20:42 -0400
commit7ed330303679b2c6bafd2020d56457f22a8a6c0b (patch)
treedafdbce3b43f2bd989c09cbbd53afd792b02def9 /lisc/isel.c
parente0d7beda692305ec051349a155bbde46a8713b37 (diff)
downloadroux-7ed330303679b2c6bafd2020d56457f22a8a6c0b.tar.gz
mention addressing modes in isel main comment
Diffstat (limited to 'lisc/isel.c')
-rw-r--r--lisc/isel.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index bf6fa25..1560d6d 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -11,6 +11,7 @@
  *   on instructions like division.
  * - implement fast locals (the streak of
  *   constant allocX in the first basic block)
+ * - recognize complex addressing modes
  */
 
 typedef struct ANum ANum;
@@ -167,8 +168,7 @@ Emit:
 			 */
 			r0 = i.arg[n];
 			if (opdesc[i.op].nmem > n)
-			if ((i0 = an[r0.val].i))
-			if (i0->op >= OLoad+Tl)
+			if ((i0 = an[r0.val].i) && i0->op >= OLoad+Tl)
 			if ((i.wide == 0 && i0->op <= OLoad+Tsw)
 			||  (i.wide == 1 && i0->op <= OLoad+Tl)) {
 				amatch(&a, i0->arg[0], an, fn, 1);