-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
LibWasm: Switch to wasm-tools for test gen and update to latest spectest #7014
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Hello! One or more of the commit messages in this PR do not match the Ladybird code submission policy, please check the |
2cc0c70 to
74fccfb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First glance from my end, will likely take another look at somepoint
| Vector<Value, ArgumentsStaticSize> args = move(arguments); | ||
| return configuration.call(interpreter, address, args); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so this is now explicitly not reusing the allocation, and previously was, or am I missing something
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't pass a reference with different inline capacities, I think the move ctor just yoinks the allocation if its big enough anyway.
| @@ -105,12 +105,18 @@ constexpr static u32 default_sources_and_destination = (to_underlying(Dispatch:: | |||
| template<u64 opcode> | |||
| struct InstructionHandler { }; | |||
|
|
|||
| struct __attribute__((packed)) ShortenedIPAndAddresses { | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you sure the packed is needed?
as it would be quite odd for a simple type to be sized like u32 and still have u64 like alignment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
or does that affect the calling convention
(mainly making sure as packing can be a footgun when accidentally handing out references)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GCC was splitting the struct up and undoing the fix without it, I got annoyed and just slapped packed there to make it stop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a union would likely also work, but that probably not really nicer
5eb10d8 to
40a8d9e
Compare
|
Hmm, looks like this regressed a bunch of benchmarks, drafting until I figure that out. |
AK/DoublyLinkedList.h
Outdated
| static_assert( | ||
| requires { T(value); }, "Conversion operator is missing."); | ||
| auto* node = make_node(forward<U>(value)); | ||
| requires { T(forward<Args>(args)...); }, "Initializer is missing."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here I guess
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also technically an empend now
and kinda weird that the non-try append doesnt have the check relying on the one here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's...true, will "fix".
| @@ -105,12 +105,18 @@ constexpr static u32 default_sources_and_destination = (to_underlying(Dispatch:: | |||
| template<u64 opcode> | |||
| struct InstructionHandler { }; | |||
|
|
|||
| struct __attribute__((packed)) ShortenedIPAndAddresses { | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a union would likely also work, but that probably not really nicer
|
I think I'll make this PR only about the test generation and fixes, the performance stuff will have to stay in the oven a bit more. |
We'll be using wasm-tools for Wasm testsuite generation in the next few commits.
Previously we were reading the arguments in an incorrect order, and placing the result in the wrong slot. This also removes the hacky implementation of accumulative relaxed dot, and just implements it directly as a new operator.
The instruction would be rejected for _much_ smaller values, but we shouldn't try to calculate (u64)1<<x with x>64.
9c13a44 to
50156ad
Compare
No description provided.