Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								093cf428a3 
								
							 
						 
						
							
							
								
								AK: Move memory streams from LibCore  
							
							
							
						 
						
							2023-01-29 19:16:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								53ebe607f8 
								
							 
						 
						
							
							
								
								LibWasm: Implement data.drop instruction  
							
							
							
						 
						
							2023-01-28 22:57:25 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								a2f42512c2 
								
							 
						 
						
							
							
								
								LibWasm: Move memory.init code together with other memory.foo impls  
							
							... 
							
							
							
							And add a spec link while I'm at it. 
							
						 
						
							2023-01-28 22:57:25 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								330911a274 
								
							 
						 
						
							
							
								
								LibWasm: Implement memory.copy instruction  
							
							
							
						 
						
							2023-01-28 22:57:25 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sam Atkins 
								
							 
						 
						
							
							
							
							
								
							
							
								42adba5ad4 
								
							 
						 
						
							
							
								
								LibWasm: Implement memory.fill instruction  
							
							
							
						 
						
							2023-01-28 22:57:25 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Tim Schumacher 
								
							 
						 
						
							
							
							
							
								
							
							
								2552399bcd 
								
							 
						 
						
							
							
								
								LibWasm: Use Core::Stream to read values in the bytecode interpreter  
							
							
							
						 
						
							2023-01-25 17:10:05 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Linus Groh 
								
							 
						 
						
							
							
							
							
								
							
							
								6e19ab2bbc 
								
							 
						 
						
							
							
								
								AK+Everywhere: Rename String to DeprecatedString  
							
							... 
							
							
							
							We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^) 
							
						 
						
							2022-12-06 08:54:33 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								2c0716e314 
								
							 
						 
						
							
							
								
								LibWasm: Simplify the return instruction execution code a bit  
							
							
							
						 
						
							2022-04-22 21:12:47 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								846b2c8a99 
								
							 
						 
						
							
							
								
								LibWasm: Push call results back in reverse order to preserve stack order  
							
							
							
						 
						
							2022-04-22 21:12:47 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									mjz19910 
								
							 
						 
						
							
							
							
							
								
							
							
								3102d8e160 
								
							 
						 
						
							
							
								
								Everywhere: Fix many spelling errors  
							
							
							
						 
						
							2022-01-07 10:56:59 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								fecbf0e03a 
								
							 
						 
						
							
							
								
								LibWasm: Make blocks that take arguments actually work  
							
							... 
							
							
							
							Previously we were ignoring the actual parameters and setting the arity
to an incorrect value, which could cause crashes (or unexpected traps). 
							
						 
						
							2021-12-21 05:03:44 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								b5ca290605 
								
							 
						 
						
							
							
								
								LibWasm: Implement memory.init and passive mode data  
							
							
							
						 
						
							2021-12-21 05:03:44 +03:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								3680aa253d 
								
							 
						 
						
							
							
								
								LibWasm: Remove traps caught by validation  
							
							
							
						 
						
							2021-11-11 09:20:04 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6ad427993a 
								
							 
						 
						
							
							
								
								Everywhere: Behaviour => Behavior  
							
							
							
						 
						
							2021-09-07 13:53:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								2c7e2e351a 
								
							 
						 
						
							
							
								
								LibWasm: Implement fx.nearest using nearbyint() instead of round()  
							
							... 
							
							
							
							This instruction wants RoundingMode::ToEven, so let's use the correct
function. 
							
						 
						
							2021-08-30 22:47:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								04e3965b09 
								
							 
						 
						
							
							
								
								LibWasm: Use Operators::BitShiftRight for i64.shru  
							
							... 
							
							
							
							Using a left-shift operator for a right shift operation is not exactly
the most correct action :P 
							
						 
						
							2021-08-26 00:51:30 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								8b6397446e 
								
							 
						 
						
							
							
								
								LibWasm: Move some Values and Vector<Value>s instead of copying them  
							
							
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								fa2ae02564 
								
							 
						 
						
							
							
								
								LibWasm: Avoid calculating stack bounds on each wasm call  
							
							... 
							
							
							
							We only need to know the initial bounds, which we calculate by default
when the interpreter is constructed.
This cuts down on syscalls and makes wasm calls a lot cheaper. 
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								4060f18d7e 
								
							 
						 
						
							
							
								
								LibWasm: Replace memory write macros with templated functions  
							
							
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								b6381f785d 
								
							 
						 
						
							
							
								
								LibWasm: Make memory operation address calculation match the spec  
							
							... 
							
							
							
							...or rather, match what the spec _means_ to say, not what it actually
says. 
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								ad3de4648a 
								
							 
						 
						
							
							
								
								LibWasm: Replace memory read macros with templated functions  
							
							
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								563b402f04 
								
							 
						 
						
							
							
								
								LibWasm: Replace the numeric operation macros with templated functions  
							
							... 
							
							
							
							This should make debugging and profiling much better, at little to no
runtime cost.
Also moves off the operator definitions to a separate header, so it
should also improve the editing experience quite a bit. 
							
						 
						
							2021-08-12 21:03:53 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								52a2518a69 
								
							 
						 
						
							
							
								
								LibWasm: Remove a useless use of ScopeGuard  
							
							... 
							
							
							
							There are no multiple exit paths in that function, so we can just put
the ending logic right at the end of the function instead. 
							
						 
						
							2021-07-17 01:13:39 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								65cd5526cb 
								
							 
						 
						
							
							
								
								LibWasm+Everywhere: Make the instruction count limit configurable  
							
							... 
							
							
							
							...and enable it for LibWeb and test-wasm.
Note that `wasm` will not be limited by this. 
							
						 
						
							2021-07-17 01:13:39 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								23b48f8fe1 
								
							 
						 
						
							
							
								
								Revert "LibWasm: Some more performance stuff ( #8812 )"  
							
							... 
							
							
							
							This reverts commit 35394dbfaa 
							
						 
						
							2021-07-17 01:11:28 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								35394dbfaa 
								
							 
						 
						
							
							
								
								LibWasm: Some more performance stuff ( #8812 )  
							
							... 
							
							
							
							* wasm: Don't try to print the function results if it traps
* LibWasm: Inline some very hot functions
These are mostly pretty small functions too, and they were about ~10%
of runtime.
* LibWasm+Everywhere: Make the instruction count limit configurable
...and enable it for LibWeb and test-wasm.
Note that `wasm` will not be limited by this.
* LibWasm: Remove a useless use of ScopeGuard
There are no multiple exit paths in that function, so we can just put
the ending logic right at the end of the function instead. 
							
						 
						
							2021-07-17 01:04:37 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andrew Kaster 
								
							 
						 
						
							
							
							
							
								
							
							
								2af591267c 
								
							 
						 
						
							
							
								
								LibWasm: Adjust signed integer operations to avoid UB  
							
							... 
							
							
							
							Perform signed integer shifts, addition, subtraction, and rotations
using their corresponding unsigned type. Additionally, mod the right
hand side of shifts and rotations by the bit width of the integer per
the spec. This seems strange, but the spec is clear on the desired
wrapping behavior of arithmetic operations. 
							
						 
						
							2021-07-12 18:42:45 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								65355c388b 
								
							 
						 
						
							
							
								
								LibWasm: Use AK::StackInfo to track stack size  
							
							... 
							
							
							
							This way, we can make sure that it doesn't overflow when ASAN is
enabled. 
							
						 
						
							2021-07-12 18:42:45 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								06ffc0c4db 
								
							 
						 
						
							
							
								
								LibWasm: Don't create useless temporary strings for trap reasons  
							
							... 
							
							
							
							These strings are only used when execution traps, so there's no reason
to create actual strings until that happens; instead switch to using
StringViews. 
							
						 
						
							2021-07-06 17:55:00 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								5636f8143d 
								
							 
						 
						
							
							
								
								LibWasm: Allow overflow in normal 64-bit arithmetic instructions  
							
							
							
						 
						
							2021-07-06 17:55:00 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								d2212a1f51 
								
							 
						 
						
							
							
								
								LibWasm: Jump to the default label in br_table with negative values  
							
							... 
							
							
							
							Also adds a forgotten Wasm::Printer implementation for printing table
branch arguments. 
							
						 
						
							2021-07-06 17:55:00 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								4bdb0ad132 
								
							 
						 
						
							
							
								
								LibWasm: Guard stack accesses with checks  
							
							... 
							
							
							
							If the stack is empty, let's just trap. 
							
						 
						
							2021-07-06 17:55:00 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Idan Horowitz 
								
							 
						 
						
							
							
							
							
								
							
							
								301c1a3a58 
								
							 
						 
						
							
							
								
								Everywhere: Fix incorrect usages of AK::Checked  
							
							... 
							
							
							
							Specifically, explicitly specify the checked type, use the resulting
value instead of doing the same calculation twice, and break down
calculations to discrete operations to ensure no intermediary overflows
are missed. 
							
						 
						
							2021-07-04 20:08:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								b538e15548 
								
							 
						 
						
							
							
								
								LibWasm: Give traps a reason and display it when needed  
							
							... 
							
							
							
							This makes debugging wasm code a bit easier, as we now know what fails
instead of just "too bad, something went wrong". 
							
						 
						
							2021-07-02 04:53:01 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								c4b82ace74 
								
							 
						 
						
							
							
								
								LibWasm: Limit the call stack depth and the number of executed insts  
							
							... 
							
							
							
							These limits are described in the spec, and we're supposed to stop
execution at some point.
The limits are arbitrarily chosen. 
							
						 
						
							2021-06-22 00:26:25 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								9971d13844 
								
							 
						 
						
							
							
								
								LibWasm: Trap if a non-Value is used as a Value  
							
							... 
							
							
							
							Otherwise we'd just crash, which is not a good thing 
							
						 
						
							2021-06-22 00:26:25 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								45710d0724 
								
							 
						 
						
							
							
								
								LibWasm: Implement saturating float truncation instructions  
							
							... 
							
							
							
							With these, the only remaining unimplemented instructions are the
following:
- memory.init
- data.drop
- memory.copy
- memory.fill
- table.init
- elem.drop
- table.copy
- table.grow
- table.size
- table.fill 
							
						 
						
							2021-06-09 23:05:32 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								3a44011cd4 
								
							 
						 
						
							
							
								
								LibWasm: Implement sign extension instructions  
							
							
							
						 
						
							2021-06-09 23:05:32 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Ali Mohammad Pur 
								
							 
						 
						
							
							
							
							
								
							
							
								a4c4dd928b 
								
							 
						 
						
							
							
								
								LibWasm: Implement spec-compliant float min/max ops  
							
							
							
						 
						
							2021-06-09 23:05:32 +04:30 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Sahan Fernando 
								
							 
						 
						
							
							
							
							
								
							
							
								d02e7b3811 
								
							 
						 
						
							
							
								
								LibWasm: Move Wasm::BytecodeInterpreter into its own header  
							
							
							
						 
						
							2021-06-05 14:31:54 +04:30