summaryrefslogtreecommitdiff
path: root/assemble.c
diff options
context:
space:
mode:
Diffstat (limited to 'assemble.c')
-rw-r--r--assemble.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/assemble.c b/assemble.c
index ed56cc8..d127ce5 100644
--- a/assemble.c
+++ b/assemble.c
@@ -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) {