• jacob.bramley@arm.com's avatar
    A64: Fix a few simulation inaccuracies. · cf43195d
    jacob.bramley@arm.com authored
      - Return the correct NaN when an invalid operation generates a NaN.
      - When one or more operands are NaN, handle them as the processor
        would, prioritising signalling NaNs and making them quiet.
      - Fix fmadd and related instructions:
         - Fnmadd is fma(-n, m, -a), not -fma(n, m, a).
         - Some common libc implementations incorrectly implement fma for
           zero results, so work around these cases.
      - Replace some unreliable tests.
    
    This patch also adds support for Default-NaN mode, since once all the
    other work was done, it only required a couple of lines of code.
    Default-NaN mode was used for an optimisation in ARM, and it should now
    be possible to apply the same optimisation to A64.
    
    BUG=
    R=jochen@chromium.org
    
    Review URL: https://codereview.chromium.org/199083005
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    cf43195d
Name
Last commit
Last update
..
OWNERS Loading commit data...
cctest.cc Loading commit data...
cctest.gyp Loading commit data...
cctest.h Loading commit data...
cctest.status Loading commit data...
gay-fixed.cc Loading commit data...
gay-fixed.h Loading commit data...
gay-precision.cc Loading commit data...
gay-precision.h Loading commit data...
gay-shortest.cc Loading commit data...
gay-shortest.h Loading commit data...
log-eq-of-logging-and-traversal.js Loading commit data...
print-extension.cc Loading commit data...
print-extension.h Loading commit data...
profiler-extension.cc Loading commit data...
profiler-extension.h Loading commit data...
test-accessors.cc Loading commit data...
test-alloc.cc Loading commit data...
test-api.cc Loading commit data...
test-assembler-a64.cc Loading commit data...
test-assembler-arm.cc Loading commit data...
test-assembler-ia32.cc Loading commit data...
test-assembler-mips.cc Loading commit data...
test-assembler-x64.cc Loading commit data...
test-ast.cc Loading commit data...
test-atomicops.cc Loading commit data...
test-bignum-dtoa.cc Loading commit data...
test-bignum.cc Loading commit data...
test-circular-queue.cc Loading commit data...
test-code-stubs-a64.cc Loading commit data...
test-code-stubs-arm.cc Loading commit data...
test-code-stubs-ia32.cc Loading commit data...
test-code-stubs-mips.cc Loading commit data...
test-code-stubs-x64.cc Loading commit data...
test-code-stubs.cc Loading commit data...
test-code-stubs.h Loading commit data...
test-compiler.cc Loading commit data...
test-condition-variable.cc Loading commit data...
test-constantpool.cc Loading commit data...
test-conversions.cc Loading commit data...
test-cpu-ia32.cc Loading commit data...
test-cpu-profiler.cc Loading commit data...
test-cpu-x64.cc Loading commit data...
test-cpu.cc Loading commit data...
test-dataflow.cc Loading commit data...
test-date.cc Loading commit data...
test-debug.cc Loading commit data...
test-declarative-accessors.cc Loading commit data...
test-decls.cc Loading commit data...
test-deoptimization.cc Loading commit data...
test-dictionary.cc Loading commit data...
test-disasm-a64.cc Loading commit data...
test-disasm-arm.cc Loading commit data...
test-disasm-ia32.cc Loading commit data...
test-disasm-mips.cc Loading commit data...
test-disasm-x64.cc Loading commit data...
test-diy-fp.cc Loading commit data...
test-double.cc Loading commit data...
test-dtoa.cc Loading commit data...
test-fast-dtoa.cc Loading commit data...
test-fixed-dtoa.cc Loading commit data...
test-flags.cc Loading commit data...
test-func-name-inference.cc Loading commit data...
test-fuzz-a64.cc Loading commit data...
test-global-handles.cc Loading commit data...
test-global-object.cc Loading commit data...
test-hashing.cc Loading commit data...
test-hashmap.cc Loading commit data...
test-heap-profiler.cc Loading commit data...
test-heap.cc Loading commit data...
test-javascript-a64.cc Loading commit data...
test-js-a64-variables.cc Loading commit data...
test-libplatform-task-queue.cc Loading commit data...
test-libplatform-worker-thread.cc Loading commit data...
test-libplatform.h Loading commit data...
test-list.cc Loading commit data...
test-liveedit.cc Loading commit data...
test-lockers.cc Loading commit data...
test-log-stack-tracer.cc Loading commit data...
test-log.cc Loading commit data...
test-macro-assembler-arm.cc Loading commit data...
test-macro-assembler-ia32.cc Loading commit data...
test-macro-assembler-mips.cc Loading commit data...
test-macro-assembler-x64.cc Loading commit data...
test-mark-compact.cc Loading commit data...
test-mementos.cc Loading commit data...
test-microtask-delivery.cc Loading commit data...
test-mutex.cc Loading commit data...
test-object-observe.cc Loading commit data...
test-parsing.cc Loading commit data...
test-platform-linux.cc Loading commit data...
test-platform-macos.cc Loading commit data...
test-platform-tls.cc Loading commit data...
test-platform-win32.cc Loading commit data...
test-platform.cc Loading commit data...
test-profile-generator.cc Loading commit data...
test-random-number-generator.cc Loading commit data...
test-regexp.cc Loading commit data...
test-reloc-info.cc Loading commit data...
test-representation.cc Loading commit data...
test-semaphore.cc Loading commit data...
test-serialize.cc Loading commit data...
test-socket.cc Loading commit data...
test-spaces.cc Loading commit data...
test-strings.cc Loading commit data...
test-strtod.cc Loading commit data...
test-symbols.cc Loading commit data...
test-thread-termination.cc Loading commit data...
test-threads.cc Loading commit data...
test-time.cc Loading commit data...
test-types.cc Loading commit data...
test-unbound-queue.cc Loading commit data...
test-unique.cc Loading commit data...
test-utils-a64.cc Loading commit data...
test-utils-a64.h Loading commit data...
test-utils.cc Loading commit data...
test-version.cc Loading commit data...
test-weakmaps.cc Loading commit data...
test-weaksets.cc Loading commit data...
test-weaktypedarrays.cc Loading commit data...
testcfg.py Loading commit data...
trace-extension.cc Loading commit data...
trace-extension.h Loading commit data...