diff options
| author | Ajax <commial@gmail.com> | 2015-11-10 14:58:49 +0100 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2015-11-10 14:58:49 +0100 |
| commit | 206d16bad7f4a98b1be30ac9db0c4798e363c550 (patch) | |
| tree | 8867491a556c01d2659c2ab6ba8804100a9188ac /miasm2/jitter/vm_mngr.c | |
| parent | 4807c50299bdaa0b62c5a4b56400c3aacc7f6195 (diff) | |
| download | miasm-206d16bad7f4a98b1be30ac9db0c4798e363c550.tar.gz miasm-206d16bad7f4a98b1be30ac9db0c4798e363c550.zip | |
x86/TCC: add `fxam`
Diffstat (limited to 'miasm2/jitter/vm_mngr.c')
| -rw-r--r-- | miasm2/jitter/vm_mngr.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/miasm2/jitter/vm_mngr.c b/miasm2/jitter/vm_mngr.c index d0171c17..a2c29127 100644 --- a/miasm2/jitter/vm_mngr.c +++ b/miasm2/jitter/vm_mngr.c @@ -1277,6 +1277,65 @@ unsigned int fcom_c3(double a, double b) return 0; } +unsigned int fxam_c0(double a) +{ + switch(fpclassify(a)) { + case FP_NAN: + return 1; + case FP_NORMAL: + return 0; + case FP_INFINITE: + return 1; + case FP_ZERO: + return 0; + case FP_SUBNORMAL: + return 0; + default: + // ClassEmpty + // ClassUnsupported + return 0; + } +} + +unsigned int fxam_c2(double a) +{ + switch(fpclassify(a)) { + case FP_NAN: + return 0; + case FP_NORMAL: + return 1; + case FP_INFINITE: + return 1; + case FP_ZERO: + return 0; + case FP_SUBNORMAL: + return 1; + default: + // ClassEmpty + // ClassUnsupported + return 0; + } +} + +unsigned int fxam_c3(double a) +{ + switch(fpclassify(a)) { + case FP_NAN: + return 0; + case FP_NORMAL: + return 0; + case FP_INFINITE: + return 0; + case FP_ZERO: + return 1; + case FP_SUBNORMAL: + return 1; + default: + // ClassEmpty + // ClassUnsupported + return 0; + } +} unsigned int double_to_mem_32(double d) { |