chore: remove trailing whitespace from README.md line 42
This commit is contained in:
+34
-2
@@ -1628,7 +1628,7 @@ static bool _rava_vm_execute_fast(RavaVM_t *vm, RavaCallFrame_t *frame) {
|
||||
&&op_load_local, &&op_load_field, &&op_load_static, &&op_load_array,
|
||||
&&op_store_local, &&op_store_field, &&op_store_static, &&op_store_array,
|
||||
&&op_add, &&op_sub, &&op_mul, &&op_div, &&op_mod, &&op_neg,
|
||||
&&op_and, &&op_or, &&op_xor, &&op_not, &&op_shl, &&op_shr, &&op_ushr,
|
||||
&&op_and, &&op_or, &&op_xor, &&op_not, &&op_bitnot, &&op_shl, &&op_shr, &&op_ushr,
|
||||
&&op_eq, &&op_ne, &&op_lt, &&op_le, &&op_gt, &&op_ge,
|
||||
&&op_jump, &&op_jump_if_true, &&op_jump_if_false, &&op_label,
|
||||
&&op_call, &&op_call_static, &&op_call_virtual, &&op_call_super, &&op_call_native,
|
||||
@@ -1925,6 +1925,12 @@ op_not: {
|
||||
DISPATCH();
|
||||
}
|
||||
|
||||
op_bitnot: {
|
||||
RavaValue_t a = STACK_POP(stack);
|
||||
STACK_PUSH(stack, rava_value_int(~rava_value_as_int(a)));
|
||||
DISPATCH();
|
||||
}
|
||||
|
||||
op_shl: {
|
||||
RavaValue_t b = STACK_POP(stack);
|
||||
RavaValue_t a = STACK_POP(stack);
|
||||
@@ -2855,7 +2861,7 @@ static bool _rava_vm_execute_ultrafast(RavaVM_t *vm, RavaMethod_t *entry_method)
|
||||
&&uf_load_local, &&uf_load_field, &&uf_load_static, &&uf_load_array,
|
||||
&&uf_store_local, &&uf_store_field, &&uf_store_static, &&uf_store_array,
|
||||
&&uf_add, &&uf_sub, &&uf_mul, &&uf_div, &&uf_mod, &&uf_neg,
|
||||
&&uf_and, &&uf_or, &&uf_xor, &&uf_not, &&uf_shl, &&uf_shr, &&uf_ushr,
|
||||
&&uf_and, &&uf_or, &&uf_xor, &&uf_not, &&uf_bitnot, &&uf_shl, &&uf_shr, &&uf_ushr,
|
||||
&&uf_eq, &&uf_ne, &&uf_lt, &&uf_le, &&uf_gt, &&uf_ge,
|
||||
&&uf_jump, &&uf_jump_if_true, &&uf_jump_if_false, &&uf_label,
|
||||
&&uf_call, &&uf_call_static, &&uf_call_virtual, &&uf_call_super, &&uf_call_native,
|
||||
@@ -2941,6 +2947,26 @@ uf_add: {
|
||||
RavaNanboxValue_t a = UF_POP();
|
||||
if (rava_nanbox_is_int(a) && rava_nanbox_is_int(b)) {
|
||||
UF_PUSH(rava_nanbox_int(rava_nanbox_as_int(a) + rava_nanbox_as_int(b)));
|
||||
} else if (rava_nanbox_is_string(a) || rava_nanbox_is_string(b)) {
|
||||
char buf_a[64], buf_b[64];
|
||||
const char *str_a, *str_b;
|
||||
if (rava_nanbox_is_string(a)) str_a = rava_nanbox_as_string(a) ? rava_nanbox_as_string(a) : "null";
|
||||
else if (rava_nanbox_is_int(a)) { snprintf(buf_a, 64, "%d", rava_nanbox_as_int(a)); str_a = buf_a; }
|
||||
else if (rava_nanbox_is_long(a)) { snprintf(buf_a, 64, "%ld", (long)rava_nanbox_as_long(a)); str_a = buf_a; }
|
||||
else if (rava_nanbox_is_double(a)) { snprintf(buf_a, 64, "%g", rava_nanbox_as_double(a)); str_a = buf_a; }
|
||||
else if (rava_nanbox_is_bool(a)) { str_a = rava_nanbox_as_bool(a) ? "true" : "false"; }
|
||||
else { str_a = "null"; }
|
||||
if (rava_nanbox_is_string(b)) str_b = rava_nanbox_as_string(b) ? rava_nanbox_as_string(b) : "null";
|
||||
else if (rava_nanbox_is_int(b)) { snprintf(buf_b, 64, "%d", rava_nanbox_as_int(b)); str_b = buf_b; }
|
||||
else if (rava_nanbox_is_long(b)) { snprintf(buf_b, 64, "%ld", (long)rava_nanbox_as_long(b)); str_b = buf_b; }
|
||||
else if (rava_nanbox_is_double(b)) { snprintf(buf_b, 64, "%g", rava_nanbox_as_double(b)); str_b = buf_b; }
|
||||
else if (rava_nanbox_is_bool(b)) { str_b = rava_nanbox_as_bool(b) ? "true" : "false"; }
|
||||
else { str_b = "null"; }
|
||||
size_t len = strlen(str_a) + strlen(str_b) + 1;
|
||||
char *result = malloc(len);
|
||||
strcpy(result, str_a);
|
||||
strcat(result, str_b);
|
||||
UF_PUSH(rava_nanbox_string(result));
|
||||
} else if (rava_nanbox_is_long(a) || rava_nanbox_is_long(b)) {
|
||||
UF_PUSH(rava_nanbox_long(rava_nanbox_to_long(a) + rava_nanbox_to_long(b)));
|
||||
} else if (rava_nanbox_is_double(a) || rava_nanbox_is_double(b)) {
|
||||
@@ -3040,6 +3066,12 @@ uf_not: {
|
||||
UF_DISPATCH();
|
||||
}
|
||||
|
||||
uf_bitnot: {
|
||||
RavaNanboxValue_t a = UF_POP();
|
||||
UF_PUSH(rava_nanbox_long(~rava_nanbox_to_long(a)));
|
||||
UF_DISPATCH();
|
||||
}
|
||||
|
||||
uf_shl: {
|
||||
RavaNanboxValue_t b = UF_POP();
|
||||
RavaNanboxValue_t a = UF_POP();
|
||||
|
||||
Reference in New Issue
Block a user