about summary refs log tree commit diff stats
path: root/miasm2/jitter/vm_mngr.c
diff options
context:
space:
mode:
authorAjax <commial@gmail.com>2015-11-10 17:48:34 +0100
committerAjax <commial@gmail.com>2015-11-10 17:48:34 +0100
commitc093394ac0b7b4384cf8ee5514d47cc420aee447 (patch)
tree9011deba57d5b629bfdc196c85e0a1e8bb49774b /miasm2/jitter/vm_mngr.c
parentf7a3aa042192a38ecbd37842a8808783f4b15dba (diff)
downloadmiasm-c093394ac0b7b4384cf8ee5514d47cc420aee447.tar.gz
miasm-c093394ac0b7b4384cf8ee5514d47cc420aee447.zip
x86/TCC: handle NaN case in `fcom`
Diffstat (limited to 'miasm2/jitter/vm_mngr.c')
-rw-r--r--miasm2/jitter/vm_mngr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c
index ee7a2826..6b248bcb 100644
--- a/miasm2/jitter/vm_mngr.c
+++ b/miasm2/jitter/vm_mngr.c
@@ -1312,6 +1312,8 @@ double fpatan(double a, double b)
 
 unsigned int fcom_c0(double a, double b)
 {
+	if (isnan(a) || isnan(b))
+		return 1;
 	if (a>=b)
 		return 0;
 	return 1;
@@ -1323,10 +1325,14 @@ unsigned int fcom_c1(double a, double b)
 }
 unsigned int fcom_c2(double a, double b)
 {
+	if (isnan(a) || isnan(b))
+		return 1;
 	return 0;
 }
 unsigned int fcom_c3(double a, double b)
 {
+	if (isnan(a) || isnan(b))
+		return 1;
 	if (a==b)
 		return 1;
 	return 0;