-expr: O_SUB(O_ID,O_MUL(expr,O_MONE)) # 1 # gen_lea(bnode,1);
-expr: O_SUB(O_ID,O_MUL(expr,O_MTWO)) # 1 # gen_lea(bnode,1);
-expr: O_SUB(O_ID,O_MUL(expr,O_MFOUR)) # 1 # gen_lea(bnode,1);
-expr: O_SUB(O_ID,O_MUL(expr,O_MEIGHT)) # 1 # gen_lea(bnode,1);
+expr: O_SUB(expr,expr) # 2 # gen_e_eno(bnode, "subq");
+expr: O_SUB(expr,O_FIELD(expr)) # 2 # gen_e_field(bnode, "subq");
+expr: O_SUB(expr,imm) # 1 # gen_e_imm(bnode, "subq");
+
+expr: O_SUB(expr,O_SUB(O_ID,expr)) # 2 # gen_subspecial(bnode, 0);
+expr: O_SUB(expr,O_SUB(imm,expr)) # 2 # gen_subspecial(bnode, 1);
+
+expr: O_SUB(expr,O_MUL(O_MONE,expr)) # 1 # gen_lea(bnode,0);
+expr: O_SUB(expr,O_MUL(O_MTWO,expr)) # 1 # gen_lea(bnode,0);
+expr: O_SUB(expr,O_MUL(O_MFOUR,expr)) # 1 # gen_lea(bnode,0);
+expr: O_SUB(expr,O_MUL(O_MEIGHT,expr)) # 1 # gen_lea(bnode,0);