Welcome! Log In Create A New Profile

Advanced

[njs] Added njs_set_int32() and njs_set_uint32() intrinsics.

Dmitry Volyntsev
July 19, 2019 04:30PM
details: https://hg.nginx.org/njs/rev/8b977c78885f
branches:
changeset: 1062:8b977c78885f
user: Dmitry Volyntsev <xeioex@nginx.com>
date: Fri Jul 19 22:05:34 2019 +0300
description:
Added njs_set_int32() and njs_set_uint32() intrinsics.

diffstat:

njs/njs_value.h | 18 ++++++++++++++++++
njs/njs_vm.c | 14 +++++++-------
2 files changed, 25 insertions(+), 7 deletions(-)

diffs (94 lines):

diff -r 540f03725df2 -r 8b977c78885f njs/njs_value.h
--- a/njs/njs_value.h Tue Jul 16 22:44:16 2019 -0400
+++ b/njs/njs_value.h Fri Jul 19 22:05:34 2019 +0300
@@ -621,6 +621,24 @@ njs_set_number(njs_value_t *value, doubl


nxt_inline void
+njs_set_int32(njs_value_t *value, int32_t num)
+{
+ value->data.u.number = num;
+ value->type = NJS_NUMBER;
+ value->data.truth = (num != 0);
+}
+
+
+nxt_inline void
+njs_set_uint32(njs_value_t *value, uint32_t num)
+{
+ value->data.u.number = num;
+ value->type = NJS_NUMBER;
+ value->data.truth = (num != 0);
+}
+
+
+nxt_inline void
njs_set_data(njs_value_t *value, void *data)
{
value->data.u.data = data;
diff -r 540f03725df2 -r 8b977c78885f njs/njs_vm.c
--- a/njs/njs_vm.c Tue Jul 16 22:44:16 2019 -0400
+++ b/njs/njs_vm.c Fri Jul 19 22:05:34 2019 +0300
@@ -1375,7 +1375,7 @@ njs_vmcode_left_shift(njs_vm_t *vm, njs_

num1 = njs_number_to_int32(njs_number(val1));
num2 = njs_number_to_uint32(njs_number(val2));
- njs_set_number(&vm->retval, num1 << (num2 & 0x1f));
+ njs_set_int32(&vm->retval, num1 << (num2 & 0x1f));

return sizeof(njs_vmcode_3addr_t);
}
@@ -1409,7 +1409,7 @@ njs_vmcode_right_shift(njs_vm_t *vm, njs

num1 = njs_number_to_int32(njs_number(val1));
num2 = njs_number_to_uint32(njs_number(val2));
- njs_set_number(&vm->retval, num1 >> (num2 & 0x1f));
+ njs_set_int32(&vm->retval, num1 >> (num2 & 0x1f));

return sizeof(njs_vmcode_3addr_t);
}
@@ -1443,7 +1443,7 @@ njs_vmcode_unsigned_right_shift(njs_vm_t

num1 = njs_number_to_uint32(njs_number(val1));
num2 = njs_number_to_uint32(njs_number(val2));
- njs_set_number(&vm->retval, num1 >> (num2 & 0x1f));
+ njs_set_uint32(&vm->retval, num1 >> (num2 & 0x1f));

return sizeof(njs_vmcode_3addr_t);
}
@@ -1505,7 +1505,7 @@ njs_vmcode_bitwise_not(njs_vm_t *vm, njs
value = &numeric;
}

- njs_set_number(&vm->retval, ~njs_number_to_integer(njs_number(value)));
+ njs_set_int32(&vm->retval, ~njs_number_to_integer(njs_number(value)));

return sizeof(njs_vmcode_2addr_t);
}
@@ -1538,7 +1538,7 @@ njs_vmcode_bitwise_and(njs_vm_t *vm, njs

num1 = njs_number_to_integer(njs_number(val1));
num2 = njs_number_to_integer(njs_number(val2));
- njs_set_number(&vm->retval, num1 & num2);
+ njs_set_int32(&vm->retval, num1 & num2);

return sizeof(njs_vmcode_3addr_t);
}
@@ -1571,7 +1571,7 @@ njs_vmcode_bitwise_xor(njs_vm_t *vm, njs

num1 = njs_number_to_integer(njs_number(val1));
num2 = njs_number_to_integer(njs_number(val2));
- njs_set_number(&vm->retval, num1 ^ num2);
+ njs_set_int32(&vm->retval, num1 ^ num2);

return sizeof(njs_vmcode_3addr_t);
}
@@ -1604,7 +1604,7 @@ njs_vmcode_bitwise_or(njs_vm_t *vm, njs_

num1 = njs_number_to_integer(njs_number(val1));
num2 = njs_number_to_integer(njs_number(val2));
- njs_set_number(&vm->retval, num1 | num2);
+ njs_set_int32(&vm->retval, num1 | num2);

return sizeof(njs_vmcode_3addr_t);
}
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Added njs_set_int32() and njs_set_uint32() intrinsics.

Dmitry Volyntsev 201 July 19, 2019 04:30PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 131
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready