// This file checks folding rules for wasm {and,or,xor}{32,64} on x64 via Ion. // See also binop-x64-ion-codegen.js, which is similar.
// These tests check that a folding has happened. The function is also run // and the result value checked. Note, many of the functions ignore one or // both of their parameters. // // In many cases the expected code contains an unnecessary move via a // temporary, generally e/rcx, for example: // // mov %rdi, %rcx // mov %rcx, %rax // // where rdi is the first arg reg (on Linux) and rax is the retval reg. This // is documented in bug 1701164. If/when that gets fixed, we will presumably // have to redo the expected-outputs here. // // The situation is complicated further because many of the expected outputs // here depend on one of the two argument registers, but they are different in // the ELF ABI (rdi, rsi) and the Win64 ABI (rcx, rdx). For the latter case, // the abovementioned spurious move from the first arg reg into rcx // disappears. Hence there is some fudging using wildcards in register names, // and `no_prefix`, to make the tests pass with both ABIs.
function test(ty, wasm_insn, must_appear, param0, param1, expected_result,
options = {}) {
let t =
`(module
(func (export "f") (param ${ty}) (param ${ty}) (result ${ty})
${wasm_insn}
))`;
options.instanceBox = {value: null};
codegenTestX64_adhoc(t, "f", must_appear, options);
let ins = options.instanceBox.value;
assertEq(ins.exports.f(param0, param1), expected_result);
}
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.11Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.