Name Description Size
AsmJS.cpp 217705
AsmJS.h 4806
GenerateBuiltinModules.py \ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef %(includeguard)s #define %(includeguard)s /* This file is generated by wasm/GenerateBuiltinModules.py. Do not edit! */ %(contents)s #endif // %(includeguard)s 5754
moz.build 1913
test.js 0
WasmAnyRef.cpp 3556
WasmAnyRef.h 15086
WasmBaselineCompile.cpp [SMDOC] WebAssembly baseline compiler (RabaldrMonkey) For now, see WasmBCClass.h for general comments about the compiler's structure. ---------------- General assumptions for 32-bit vs 64-bit code: - A 32-bit register can be extended in-place to a 64-bit register on 64-bit systems. - Code that knows that Register64 has a '.reg' member on 64-bit systems and '.high' and '.low' members on 32-bit systems, or knows the implications thereof, is #ifdef JS_PUNBOX64. All other code is #if(n)?def JS_64BIT. Coding standards are a little fluid: - In "small" code generating functions (eg emitMultiplyF64, emitQuotientI32, and surrounding functions; most functions fall into this class) where the meaning is obvious: Old school: - if there is a single source + destination register, it is called 'r' - if there is one source and a different destination, they are called 'rs' and 'rd' - if there is one source + destination register and another source register they are called 'r' and 'rs' - if there are two source registers and a destination register they are called 'rs0', 'rs1', and 'rd'. The new thing: - what is called 'r' in the old-school naming scheme is increasingly called 'rsd' in source+dest cases. - Generic temp registers are named /temp[0-9]?/ not /tmp[0-9]?/. - Registers can be named non-generically for their function ('rp' for the 'pointer' register and 'rv' for the 'value' register are typical) and those names may or may not have an 'r' prefix. - "Larger" code generating functions make their own rules. 410605
WasmBaselineCompile.h 3148
WasmBCClass-inl.h 5200
WasmBCClass.h 76310
WasmBCCodegen-inl.h 15400
WasmBCDefs.h 5229
WasmBCFrame.cpp 19008
WasmBCFrame.h 52366
WasmBCMemory.cpp 94839
WasmBCRegDefs-inl.h 3974
WasmBCRegDefs.h 23690
WasmBCRegMgmt-inl.h 11907
WasmBCStk.h 9198
WasmBCStkMgmt-inl.h 32325
WasmBinary.cpp 9352
WasmBinary.h 28064
WasmBinaryTypes.h wasm_WasmBinaryTypes_h 3697
WasmBuiltinModule.cpp reportOOM 16204
WasmBuiltinModule.h 5719
WasmBuiltinModule.yaml 14517
WasmBuiltins.cpp 87082
WasmBuiltins.h 12198
WasmCode.cpp 55202
WasmCode.h 46217
WasmCodegenConstants.h 3483
WasmCodegenTypes.cpp 15092
WasmCodegenTypes.h 60568
WasmCompile.cpp 44161
WasmCompile.h 4667
WasmCompileArgs.h 17888
WasmConstants.h 31758
WasmContext.cpp 1923
WasmContext.h 2791
WasmDebug.cpp 17670
WasmDebug.h [SMDOC] Wasm debug traps There is a single debug-trap handler for the process, WasmHandleDebugTrap in WasmBuiltins.cpp. That function is invoked through the Debug Trap Stub, of which there is one per module, generated by GenerateDebugStub in WasmStubs.cpp. When any function in an instance needs to debug-trap for any reason (enter frame, leave frame, breakpoint, or single-stepping) then a pointer to the Debug Trap Stub is installed in the Instance. Debug-enabled code will look for this pointer and call it if (1) it is not null and (2) subject to filtering as follows. WasmHandleDebugTrap may therefore be called very frequently when any function in the instance is being debugged, and must filter the trap against the tables in the DebugState. It can make use of the return address for the call, which identifies the site uniquely. In order to greatly reduce the frequency of calls to the Debug Trap Stub, an array of flag bits, one per function, is attached to the instance. The code at the breakable point calls a stub at the end of the function (the Per Function Debug Stub) to check whether the bit is set for the function. If it is not set, the per-function stub can return to its caller immediately; if the bit is set, the per-function stub will jump to the installed (per-module) Debug Trap Stub. See also [SMDOC] "Wasm debug traps -- code details" 7675
WasmDebugFrame.cpp static 5958
WasmDebugFrame.h 7316
WasmDump.cpp includeInitExpr= 28339
WasmDump.h 10527
WasmException.h 1642
WasmExprType.h 9575
WasmFeatures.cpp 11705
WasmFeatures.h 4271
WasmFrame.h 18942
WasmFrameIter.cpp 77655
WasmFrameIter.h 13132
WasmGC.cpp 12897
WasmGC.h 23413
WasmGcObject-inl.h static 13422
WasmGcObject.cpp static 19025
WasmGcObject.h 23204
WasmGenerator.cpp limitedSize= 52648
WasmGenerator.h 13582
WasmHeuristics.h 14558
WasmInitExpr.cpp 20395
WasmInitExpr.h 4273
WasmInstance-inl.h 880
WasmInstance.cpp 159162
WasmInstance.h 29746
WasmInstanceData.h 13683
WasmIonCompile.cpp 363490
WasmIonCompile.h 1902
WasmJS.cpp [SMDOC] WebAssembly code rules (evolving) TlsContext.get() is only to be invoked from functions that have been invoked _directly_ by generated code as cold(!) Builtin calls, from code that is only used by signal handlers, or from helper functions that have been called _directly_ from a simulator. All other code shall pass in a JSContext* to functions that need it, or an Instance* or Instance* since the context is available through them. Code that uses TlsContext.get() shall annotate each such call with the reason why the call is OK. 178281
WasmJS.h 20234
WasmLog.cpp 2644
WasmLog.h 1361
WasmMemory.cpp 18149
WasmMemory.h 10904
WasmMetadata.cpp 11466
WasmMetadata.h 19686
WasmModule.cpp 35952
WasmModule.h 8436
WasmModuleTypes.cpp static 5695
WasmModuleTypes.h 29251
WasmOpIter.cpp 63819
WasmOpIter.h 133443
WasmPI.cpp 82386
WasmPI.h 10257
WasmProcess.cpp = nullptr 6986
WasmProcess.h 2365
WasmRealm.cpp 4329
WasmRealm.h 2770
WasmSerialize.cpp 53714
WasmSerialize.h 11812
WasmShareable.h 3897
WasmSignalHandlers.cpp 36878
WasmSignalHandlers.h 2802
WasmStaticTypeDefs.cpp 2021
WasmStaticTypeDefs.h 1379
WasmStubs.cpp 130652
WasmStubs.h 11650
WasmSummarizeInsn.cpp 62261
WasmSummarizeInsn.h wasm_WasmSummarizeInsn_h 1382
WasmTable.cpp static 13927
WasmTable.h 5338
WasmTypeDecls.h 3229
WasmTypeDef.cpp 19950
WasmTypeDef.h 52674
WasmUtility.h 2392
WasmValidate.cpp 136871
WasmValidate.h 8302
WasmValType.cpp 12220
WasmValType.h 31809
WasmValue.cpp 27522
WasmValue.h 16916