Welcome! Log In Create A New Profile

Advanced

[njs] Slight improvements to njs_vmcode_interpreter().

Valentin Bartenev
July 28, 2019 08:58AM
details: https://hg.nginx.org/njs/rev/07989e97b198
branches:
changeset: 1080:07989e97b198
user: Valentin Bartenev <vbart@nginx.com>
date: Sun Jul 28 15:00:40 2019 +0300
description:
Slight improvements to njs_vmcode_interpreter().

No functional changes.

diffstat:

njs/njs_vmcode.c | 26 +++++++++-----------------
1 files changed, 9 insertions(+), 17 deletions(-)

diffs (74 lines):

diff -r 258b1e34ca0f -r 07989e97b198 njs/njs_vmcode.c
--- a/njs/njs_vmcode.c Sun Jul 28 13:19:03 2019 +0300
+++ b/njs/njs_vmcode.c Sun Jul 28 15:00:40 2019 +0300
@@ -379,13 +379,7 @@ next:
|| (!isnan(exponent)
&& !isinf(exponent)));

- if (valid) {
- num = pow(num, exponent);
-
- } else {
- num = NAN;
- }
-
+ num = valid ? pow(num, exponent) : NAN;
break;

case NJS_VMCODE_DIVISION:
@@ -399,19 +393,19 @@ next:
case NJS_VMCODE_BITWISE_AND:
case NJS_VMCODE_BITWISE_OR:
case NJS_VMCODE_BITWISE_XOR:
- i32 = njs_number_to_int32(num);
+ i32 = njs_number_to_int32(njs_number(value2));

switch (op) {
case NJS_VMCODE_BITWISE_AND:
- i32 = i32 & njs_number_to_int32(njs_number(value2));
+ i32 &= njs_number_to_int32(num);
break;

case NJS_VMCODE_BITWISE_OR:
- i32 = i32 | njs_number_to_int32(njs_number(value2));
+ i32 |= njs_number_to_int32(num);
break;

case NJS_VMCODE_BITWISE_XOR:
- i32 = i32 ^ njs_number_to_int32(njs_number(value2));
+ i32 ^= njs_number_to_int32(num);
break;
}

@@ -419,7 +413,7 @@ next:
goto next;

default:
- u32 = njs_number_to_uint32(njs_number(value2));
+ u32 = njs_number_to_uint32(njs_number(value2)) & 0x1f;

switch (op) {
case NJS_VMCODE_LEFT_SHIFT:
@@ -427,19 +421,17 @@ next:
i32 = njs_number_to_int32(num);

if (op == NJS_VMCODE_LEFT_SHIFT) {
- i32 <<= u32 & 0x1f;
+ i32 <<= u32;
} else {
- i32 >>= u32 & 0x1f;
+ i32 >>= u32;
}

njs_set_int32(retval, i32);
-
break;

default: /* NJS_VMCODE_UNSIGNED_RIGHT_SHIFT */
njs_set_uint32(retval,
- njs_number_to_uint32(num)
- >> (u32 & 0x1f));
+ njs_number_to_uint32(num) >> u32);
}

goto next;
_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[njs] Slight improvements to njs_vmcode_interpreter().

Valentin Bartenev 235 July 28, 2019 08:58AM



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

Online Users

Guests: 160
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