mirror of
https://github.com/fluencelabs/wasmer
synced 2025-06-19 20:01:20 +00:00
Remove commented-out code that I added so as to not lose its history in git. Apply trivial cleanups and reformat.
Remove expected test failure entries that are fixed so far.
This commit is contained in:
@ -2823,116 +2823,11 @@ impl FunctionCodeGenerator<CodegenError> for X64FunctionCode {
|
||||
&mut self.machine,
|
||||
&mut self.value_stack,
|
||||
|a, src1, src2, dst| {
|
||||
/*
|
||||
// TODO: we don't have access to 'machine' here.
|
||||
//let tmp1 = self.machine.acquire_temp_gpr().unwrap();
|
||||
//let tmp2 = self.machine.acquire_temp_gpr().unwrap();
|
||||
let tmp1 = GPR::RAX;
|
||||
let tmp2 = GPR::RDX;
|
||||
a.emit_mov(Size::S32, Location::XMM(src1), Location::GPR(tmp1));
|
||||
match src2 {
|
||||
XMMOrMemory::XMM(x) => {
|
||||
a.emit_mov(Size::S32, Location::XMM(x), Location::GPR(tmp2))
|
||||
}
|
||||
XMMOrMemory::Memory(base, disp) => {
|
||||
a.emit_mov(Size::S32, Location::Memory(base, disp), Location::GPR(tmp2))
|
||||
}
|
||||
};
|
||||
let (tmp_xmm, _release_tmp_xmm) = if dst != src1 && XMMOrMemory::XMM(dst) != src2
|
||||
{
|
||||
(dst, false)
|
||||
} else {
|
||||
// TODO: we don't have access to 'machine' here.
|
||||
//(self.machine.acquire_temp_xmm().unwrap(), true)
|
||||
if src1 == XMM::XMM0 {
|
||||
if src2 == XMMOrMemory::XMM(XMM::XMM1) {
|
||||
(XMM::XMM2, false)
|
||||
} else {
|
||||
(XMM::XMM1, false)
|
||||
}
|
||||
} else {
|
||||
(XMM::XMM0, false)
|
||||
}
|
||||
};
|
||||
match src2 {
|
||||
XMMOrMemory::XMM(x) => {
|
||||
a.emit_mov(Size::S64, Location::XMM(x), Location::XMM(tmp_xmm))
|
||||
}
|
||||
XMMOrMemory::Memory(base, disp) => a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Memory(base, disp),
|
||||
Location::XMM(tmp_xmm),
|
||||
),
|
||||
};
|
||||
a.emit_ucomiss(XMMOrMemory::XMM(src1), tmp_xmm);
|
||||
let do_vminss = a.get_label();
|
||||
a.emit_jmp(Condition::NotEqual, do_vminss);
|
||||
a.emit_jmp(Condition::ParityEven, do_vminss);
|
||||
a.emit_cmp(Size::S32, Location::GPR(tmp1), Location::GPR(tmp2));
|
||||
a.emit_jmp(Condition::Equal, do_vminss);
|
||||
static NEG_ZERO: u128 = 0x80000000;
|
||||
match src2 {
|
||||
XMMOrMemory::XMM(x) => {
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Imm64((&NEG_ZERO as *const u128) as u64),
|
||||
Location::GPR(tmp2),
|
||||
);
|
||||
a.emit_mov(Size::S64, Location::Memory(tmp2, 0), Location::XMM(x));
|
||||
}
|
||||
XMMOrMemory::Memory(base, disp) => {
|
||||
let neg_zero_base = if base == tmp2 { tmp1 } else { tmp2 };
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Imm64((&NEG_ZERO as *const u128) as u64),
|
||||
Location::GPR(neg_zero_base),
|
||||
);
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Memory(neg_zero_base, 0),
|
||||
Location::Memory(base, disp),
|
||||
);
|
||||
}
|
||||
};
|
||||
a.emit_label(do_vminss);
|
||||
a.emit_vminss(src1, src2, dst);
|
||||
// TODO: we don't have access to 'machine' here.
|
||||
//if release_tmp_xmm { self.machine.release_temp_xmm(tmp_xmm) }
|
||||
*/
|
||||
let tmp_xmm1 = /*if dst != src1 && XMMOrMemory::XMM(dst) != src2
|
||||
{
|
||||
dst
|
||||
} else {
|
||||
// TODO: we don't have access to 'machine' here.
|
||||
//(self.machine.acquire_temp_xmm().unwrap(), true)
|
||||
if src1 == XMM::XMM0 {
|
||||
if src2 == XMMOrMemory::XMM(XMM::XMM1) {
|
||||
XMM::XMM2
|
||||
} else {
|
||||
XMM::XMM1
|
||||
}
|
||||
} else {
|
||||
XMM::XMM0
|
||||
}
|
||||
};*/ XMM::XMM6;
|
||||
let tmp_xmm2 = XMM::XMM7; // TODO: pick value safely.
|
||||
let tmp_xmm3 = XMM::XMM5; // TODO: pick value safely.
|
||||
/*
|
||||
let src2 = match src2 {
|
||||
XMMOrMemory::XMM(x) => x,
|
||||
XMMOrMemory::Memory(_, _) => panic!(),
|
||||
};
|
||||
a.emit_vminss(src1, XMMOrMemory::XMM(src2), src2);
|
||||
a.emit_vcmpunordss(src1, XMMOrMemory::XMM(src1), tmp_xmm);
|
||||
a.emit_vblendvps(src1, src2, XMMOrMemory::XMM(src1), tmp_xmm);
|
||||
a.emit_vcmpordss(src1, XMMOrMemory::XMM(src1), src2);
|
||||
let canonical_nan_base = GPR::RDX;
|
||||
static CANONICAL_NAN: u128 = 0x7FC0_0000;
|
||||
a.emit_mov(Size::S64, Location::Imm64((&CANONICAL_NAN as *const u128) as u64), Location::GPR(canonical_nan_base));
|
||||
a.emit_mov(Size::S64, Location::Memory(canonical_nan_base, 0), Location::XMM(tmp_xmm));
|
||||
a.emit_vblendvps(src1, tmp_xmm, XMMOrMemory::XMM(src1), src2);
|
||||
a.emit_mov(Size::S64, Location::XMM(src2), Location::XMM(dst));
|
||||
*/
|
||||
// TODO: pick values safely.
|
||||
let tmp_xmm1 = XMM::XMM7;
|
||||
let tmp_xmm2 = XMM::XMM6;
|
||||
let tmp_xmm3 = XMM::XMM5;
|
||||
|
||||
static NEG_ZERO: u128 = 0x8000_0000;
|
||||
static CANONICAL_NAN: u128 = 0x7FC0_0000;
|
||||
let loc2 = match src2 {
|
||||
@ -2940,7 +2835,6 @@ impl FunctionCodeGenerator<CodegenError> for X64FunctionCode {
|
||||
XMMOrMemory::Memory(base, disp) => Location::Memory(base, disp),
|
||||
};
|
||||
let spare_base = GPR::RDX;
|
||||
//a.emit_ud2();
|
||||
a.emit_mov(Size::S32, Location::XMM(src1), Location::GPR(GPR::RAX));
|
||||
a.emit_mov(Size::S32, loc2, Location::GPR(GPR::RDX));
|
||||
a.emit_cmp(Size::S32, Location::GPR(GPR::RDX), Location::GPR(GPR::RAX));
|
||||
@ -2956,15 +2850,31 @@ impl FunctionCodeGenerator<CodegenError> for X64FunctionCode {
|
||||
a.emit_jmp(Condition::None, label2);
|
||||
a.emit_label(label1);
|
||||
// load float -0.0
|
||||
a.emit_mov(Size::S64, Location::Imm64((&NEG_ZERO as *const u128) as u64), Location::GPR(spare_base));
|
||||
a.emit_mov(Size::S64, Location::Memory(spare_base, 0), Location::XMM(tmp_xmm2));
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Imm64((&NEG_ZERO as *const u128) as u64),
|
||||
Location::GPR(spare_base),
|
||||
);
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Memory(spare_base, 0),
|
||||
Location::XMM(tmp_xmm2),
|
||||
);
|
||||
a.emit_label(label2);
|
||||
a.emit_vcmpeqss(src1, XMMOrMemory::XMM(src2), tmp_xmm3);
|
||||
a.emit_vblendvps(tmp_xmm3, XMMOrMemory::XMM(tmp_xmm2), tmp_xmm1, tmp_xmm1);
|
||||
a.emit_vcmpunordss(src1, XMMOrMemory::XMM(src2), src1);
|
||||
// load float canonical nan
|
||||
a.emit_mov(Size::S64, Location::Imm64((&CANONICAL_NAN as *const u128) as u64), Location::GPR(spare_base));
|
||||
a.emit_mov(Size::S64, Location::Memory(spare_base, 0), Location::XMM(src2));
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Imm64((&CANONICAL_NAN as *const u128) as u64),
|
||||
Location::GPR(spare_base),
|
||||
);
|
||||
a.emit_mov(
|
||||
Size::S64,
|
||||
Location::Memory(spare_base, 0),
|
||||
Location::XMM(src2),
|
||||
);
|
||||
a.emit_vblendvps(src1, XMMOrMemory::XMM(src2), tmp_xmm1, src1);
|
||||
a.emit_vmovaps(XMMOrMemory::XMM(src1), XMMOrMemory::XMM(dst));
|
||||
},
|
||||
|
@ -26,8 +26,6 @@ pub enum Condition {
|
||||
Equal,
|
||||
NotEqual,
|
||||
Signed,
|
||||
ParityEven,
|
||||
ParityOdd,
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd)]
|
||||
@ -614,8 +612,6 @@ impl Emitter for Assembler {
|
||||
Condition::Equal => jmp_op!(je, self, label),
|
||||
Condition::NotEqual => jmp_op!(jne, self, label),
|
||||
Condition::Signed => jmp_op!(js, self, label),
|
||||
Condition::ParityEven => jmp_op!(jp, self, label),
|
||||
Condition::ParityOdd => jmp_op!(jnp, self, label),
|
||||
}
|
||||
}
|
||||
fn emit_jmp_location(&mut self, loc: Location) {
|
||||
@ -639,8 +635,6 @@ impl Emitter for Assembler {
|
||||
Condition::Equal => trap_op!(je, self),
|
||||
Condition::NotEqual => trap_op!(jne, self),
|
||||
Condition::Signed => trap_op!(js, self),
|
||||
Condition::ParityEven => trap_op!(jp, self),
|
||||
Condition::ParityOdd => trap_op!(jnp, self),
|
||||
}
|
||||
}
|
||||
fn emit_set(&mut self, condition: Condition, dst: GPR) {
|
||||
@ -963,9 +957,15 @@ impl Emitter for Assembler {
|
||||
|
||||
fn emit_vmovaps(&mut self, src: XMMOrMemory, dst: XMMOrMemory) {
|
||||
match (src, dst) {
|
||||
(XMMOrMemory::XMM(src), XMMOrMemory::XMM(dst)) => dynasm!(self ; movaps Rx(dst as u8), Rx(src as u8)),
|
||||
(XMMOrMemory::Memory(base, disp), XMMOrMemory::XMM(dst)) => dynasm!(self ; movaps Rx(dst as u8), [Rq(base as u8) + disp]),
|
||||
(XMMOrMemory::XMM(src), XMMOrMemory::Memory(base, disp)) => dynasm!(self ; movaps [Rq(base as u8) + disp], Rx(src as u8)),
|
||||
(XMMOrMemory::XMM(src), XMMOrMemory::XMM(dst)) => {
|
||||
dynasm!(self ; movaps Rx(dst as u8), Rx(src as u8))
|
||||
}
|
||||
(XMMOrMemory::Memory(base, disp), XMMOrMemory::XMM(dst)) => {
|
||||
dynasm!(self ; movaps Rx(dst as u8), [Rq(base as u8) + disp])
|
||||
}
|
||||
(XMMOrMemory::XMM(src), XMMOrMemory::Memory(base, disp)) => {
|
||||
dynasm!(self ; movaps [Rq(base as u8) + disp], Rx(src as u8))
|
||||
}
|
||||
_ => panic!("singlepass can't emit VMOVAPS {:?} {:?}", src, dst),
|
||||
};
|
||||
}
|
||||
@ -1034,8 +1034,12 @@ impl Emitter for Assembler {
|
||||
|
||||
fn emit_vblendvps(&mut self, src1: XMM, src2: XMMOrMemory, mask: XMM, dst: XMM) {
|
||||
match src2 {
|
||||
XMMOrMemory::XMM(src2) => dynasm!(self ; vblendvps Rx(dst as u8), Rx(mask as u8), Rx(src2 as u8), Rx(src1 as u8)),
|
||||
XMMOrMemory::Memory(base, disp) => dynasm!(self ; vblendvps Rx(dst as u8), Rx(mask as u8), [Rq(base as u8) + disp], Rx(src1 as u8)),
|
||||
XMMOrMemory::XMM(src2) => {
|
||||
dynasm!(self ; vblendvps Rx(dst as u8), Rx(mask as u8), Rx(src2 as u8), Rx(src1 as u8))
|
||||
}
|
||||
XMMOrMemory::Memory(base, disp) => {
|
||||
dynasm!(self ; vblendvps Rx(dst as u8), Rx(mask as u8), [Rq(base as u8) + disp], Rx(src1 as u8))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -465,110 +465,6 @@ singlepass:fail:conversions.wast:240 # AssertTrap - expected trap, got Runtime:E
|
||||
singlepass:fail:conversions.wast:241 # AssertTrap - expected trap, got Runtime:Error unknown error
|
||||
singlepass:fail:conversions.wast:242 # AssertTrap - expected trap, got Runtime:Error unknown error
|
||||
singlepass:fail:elem.wast:353 # AssertTrap - expected trap, got Runtime:Error unknown error
|
||||
singlepass:fail:f32.wast:1652 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1654 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1656 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1658 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1692 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1694 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1696 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1698 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1732 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1734 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1736 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1738 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1772 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1774 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1776 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1778 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1812 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1814 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1816 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1818 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1852 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1854 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1856 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1858 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1892 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1894 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1896 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1898 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1932 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1934 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1936 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1938 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:1939 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.0)
|
||||
singlepass:fail:f32.wast:1940 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.0)
|
||||
singlepass:fail:f32.wast:1941 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.0)
|
||||
singlepass:fail:f32.wast:1942 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.0)
|
||||
singlepass:fail:f32.wast:1943 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.0)
|
||||
singlepass:fail:f32.wast:1944 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.0)
|
||||
singlepass:fail:f32.wast:1945 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.0)
|
||||
singlepass:fail:f32.wast:1946 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.0)
|
||||
singlepass:fail:f32.wast:1947 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1948 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1949 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1950 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1951 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1952 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1953 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1954 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.000000000000000000000000000000000000000000001)
|
||||
singlepass:fail:f32.wast:1955 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1956 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1957 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1958 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1959 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1960 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1961 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1962 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.000000000000000000000000000000000000011754944)
|
||||
singlepass:fail:f32.wast:1963 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.5)
|
||||
singlepass:fail:f32.wast:1964 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.5)
|
||||
singlepass:fail:f32.wast:1965 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.5)
|
||||
singlepass:fail:f32.wast:1966 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.5)
|
||||
singlepass:fail:f32.wast:1967 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-0.5)
|
||||
singlepass:fail:f32.wast:1968 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-0.5)
|
||||
singlepass:fail:f32.wast:1969 # "AssertReturnCanonicalNan" - value is not canonical nan F32(0.5)
|
||||
singlepass:fail:f32.wast:1970 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(0.5)
|
||||
singlepass:fail:f32.wast:1971 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-1.0)
|
||||
singlepass:fail:f32.wast:1972 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-1.0)
|
||||
singlepass:fail:f32.wast:1973 # "AssertReturnCanonicalNan" - value is not canonical nan F32(1.0)
|
||||
singlepass:fail:f32.wast:1974 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(1.0)
|
||||
singlepass:fail:f32.wast:1975 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-1.0)
|
||||
singlepass:fail:f32.wast:1976 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-1.0)
|
||||
singlepass:fail:f32.wast:1977 # "AssertReturnCanonicalNan" - value is not canonical nan F32(1.0)
|
||||
singlepass:fail:f32.wast:1978 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(1.0)
|
||||
singlepass:fail:f32.wast:1979 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-6.2831855)
|
||||
singlepass:fail:f32.wast:1980 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-6.2831855)
|
||||
singlepass:fail:f32.wast:1981 # "AssertReturnCanonicalNan" - value is not canonical nan F32(6.2831855)
|
||||
singlepass:fail:f32.wast:1982 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(6.2831855)
|
||||
singlepass:fail:f32.wast:1983 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-6.2831855)
|
||||
singlepass:fail:f32.wast:1984 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-6.2831855)
|
||||
singlepass:fail:f32.wast:1985 # "AssertReturnCanonicalNan" - value is not canonical nan F32(6.2831855)
|
||||
singlepass:fail:f32.wast:1986 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(6.2831855)
|
||||
singlepass:fail:f32.wast:1987 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1988 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1989 # "AssertReturnCanonicalNan" - value is not canonical nan F32(340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1990 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1991 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1992 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1993 # "AssertReturnCanonicalNan" - value is not canonical nan F32(340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1994 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(340282350000000000000000000000000000000.0)
|
||||
singlepass:fail:f32.wast:1995 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-inf)
|
||||
singlepass:fail:f32.wast:1996 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-inf)
|
||||
singlepass:fail:f32.wast:1997 # "AssertReturnCanonicalNan" - value is not canonical nan F32(inf)
|
||||
singlepass:fail:f32.wast:1998 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(inf)
|
||||
singlepass:fail:f32.wast:1999 # "AssertReturnCanonicalNan" - value is not canonical nan F32(-inf)
|
||||
singlepass:fail:f32.wast:2000 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(-inf)
|
||||
singlepass:fail:f32.wast:2001 # "AssertReturnCanonicalNan" - value is not canonical nan F32(inf)
|
||||
singlepass:fail:f32.wast:2002 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(inf)
|
||||
singlepass:fail:f32.wast:2005 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2006 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2009 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2010 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2013 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2014 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2017 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2018 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2021 # AssertReturn - result F32(2147483648) ("0x80000000") does not match expected F32(0) ("0x0")
|
||||
singlepass:fail:f32.wast:2052 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
singlepass:fail:f32.wast:2054 # "AssertReturnArithmeticNan" - value is not arithmetic nan F32(NaN)
|
||||
|
Reference in New Issue
Block a user