diff options
Diffstat (limited to 'assemble.c')
-rw-r--r-- | assemble.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -8,6 +8,9 @@ uint8_t isexpr(uint8_t type, uint8_t dbg) { case EXPR_MINUS: case EXPR_LOW: case EXPR_HIGH: + case EXPR_OR: + case EXPR_LSHFT: + case EXPR_RSHFT: return 1; default: return 0; @@ -76,6 +79,9 @@ uint64_t get_val(token *t, uint64_t addr, uint8_t size, uint8_t dbg) { switch (type) { case EXPR_PLUS : (isstart) ? (value = tmp_val) : (value += tmp_val); break; case EXPR_MINUS: (isstart) ? (value = -tmp_val) : (value -= tmp_val); break; + case EXPR_OR : value |= tmp_val; break; + case EXPR_LSHFT: value <<= tmp_val; break; + case EXPR_RSHFT: value >>= tmp_val; break; case EXPR_LOW : value = tmp_val; switch (size) { |