public: enum Kind { // The Mem opcodes are all clustered at the beginning to // allow for a quick test within sync().
MemI32, // 32-bit integer stack value ("offs")
MemI64, // 64-bit integer stack value ("offs")
MemF32, // 32-bit floating stack value ("offs")
MemF64, // 64-bit floating stack value ("offs") #ifdef ENABLE_WASM_SIMD
MemV128, // 128-bit vector stack value ("offs") #endif
MemRef, // reftype (pointer wide) stack value ("offs")
// The Local opcodes follow the Mem opcodes for a similar // quick test within hasLocal().
LocalI32, // Local int32 var ("slot")
LocalI64, // Local int64 var ("slot")
LocalF32, // Local float32 var ("slot")
LocalF64, // Local double var ("slot") #ifdef ENABLE_WASM_SIMD
LocalV128, // Local v128 var ("slot") #endif
LocalRef, // Local reftype (pointer wide) var ("slot")
// For these two, use an out-param instead of simply returning, to // use the normal stack and not the x87 FP stack (which has effect on // NaNs with the signaling bit set).
#ifdef ENABLE_WASM_SIMD // For SIMD, do the same as for floats since we're using float registers to // hold vectors; this is just conservative. void v128val(V128* out) const {
MOZ_ASSERT(kind_ == ConstV128);
*out = v128val_;
} #endif
#ifdef DEBUG // Print a stack element (Stk) to stderr. Skip the trailing \n. Printing // of the actual contents of each stack element (see case ConstI32) can be // filled in on demand -- even printing just the element `kind_` fields can // be very useful. void showStackElem() const { switch (kind_) { case MemI32:
fprintf(stderr, "MemI32()"); break; case MemI64:
fprintf(stderr, "MemI64()"); break; case MemF32:
fprintf(stderr, "MemF32()"); break; case MemF64:
fprintf(stderr, "MemF64()"); break; # ifdef ENABLE_WASM_SIMD case MemV128:
fprintf(stderr, "MemV128()"); break; # endif case MemRef:
fprintf(stderr, "MemRef()"); break; case LocalI32:
fprintf(stderr, "LocalI32()"); break; case LocalI64:
fprintf(stderr, "LocalI64()"); break; case LocalF32:
fprintf(stderr, "LocalF32()"); break; case LocalF64:
fprintf(stderr, "LocalF64()"); break; # ifdef ENABLE_WASM_SIMD case LocalV128:
fprintf(stderr, "LocalV128()"); break; # endif case LocalRef:
fprintf(stderr, "LocalRef()"); break; case RegisterI32:
fprintf(stderr, "RegisterI32()"); break; case RegisterI64:
fprintf(stderr, "RegisterI64()"); break; case RegisterF32:
fprintf(stderr, "RegisterF32()"); break; case RegisterF64:
fprintf(stderr, "RegisterF64()"); break; # ifdef ENABLE_WASM_SIMD case RegisterV128:
fprintf(stderr, "RegisterV128()"); break; # endif case RegisterRef:
fprintf(stderr, "RegisterRef()"); break; case ConstI32:
fprintf(stderr, "ConstI32(%d)", (int)i32val_); break; case ConstI64:
fprintf(stderr, "ConstI64()"); break; case ConstF32:
fprintf(stderr, "ConstF32()"); break; case ConstF64:
fprintf(stderr, "ConstF64()"); break; # ifdef ENABLE_WASM_SIMD case ConstV128:
fprintf(stderr, "ConstV128()"); break; # endif case ConstRef:
fprintf(stderr, "ConstRef()"); break; case Unknown:
fprintf(stderr, "Unknown()"); break; default:
fprintf(stderr, "!! Stk::showStackElem !!"); break;
}
} #endif
};
using StkVector = Vector<Stk, 0, SystemAllocPolicy>;
} // namespace wasm
} // namespace js
#endif// wasm_wasm_baseline_stk_h
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-09-30)
¤
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.