Skip to content

Change SignalHandlers.h to SignalHandlers.hpp#42

Merged
sunfishcode merged 1 commit intobytecodealliance:masterfrom
buckle2000:master
Jan 15, 2019
Merged

Change SignalHandlers.h to SignalHandlers.hpp#42
sunfishcode merged 1 commit intobytecodealliance:masterfrom
buckle2000:master

Conversation

@buckle2000
Copy link
Copy Markdown
Contributor

Closes #41

@sunfishcode
Copy link
Copy Markdown
Member

The change looks good, thanks! That said, it's not obvious to me why this fixes #41, since <stdbool.h> is a C header file which ought to be available to C code.

@sunfishcode sunfishcode merged commit 01ed463 into bytecodealliance:master Jan 15, 2019
kubkon pushed a commit that referenced this pull request Nov 7, 2019
* Implement fd_filestat_get for all platforms

* Remove an old comment

* Remove panics from the syscall wrappers

* Return WASI error type

* Reuse Metadata if possible to save syscalls.

* Refactor the change for two separate fd_filestat_get_impl

* Refactor error handling
grishasobol pushed a commit to grishasobol/wasmtime that referenced this pull request Nov 29, 2021
* Initial implementation

* Not use grow as it is makes debug builds very slow

* Use Pages::BYTE_SIZE for LINEAR_MEMORY_PAGE_SIZE

* Tidy docs.

* Use memory_units from git.
howjmay pushed a commit to howjmay/wasmtime that referenced this pull request Jan 24, 2022
The global map for storing `*Func` objects previously stored `*Store`,
but that creates a reference cycle between the Rust and the Go heaps
which can't be cleaned up. Instead this commit updates the logic to
instead use a "thread local" variable to temporarily store the current
freelist during a call and moves the storage outside of the global
variables. This should allow everything to get garbage collected as
usual.

Closes bytecodealliance#42
pchickey pushed a commit to pchickey/wasmtime that referenced this pull request May 16, 2023
This gets us another step closer to running the Wasmtime tests.
dhil added a commit to dhil/wasmtime that referenced this pull request Jul 13, 2023
This patch improves upon bytecodealliance#42. In addition it renames the flag, so to build a compiler & runtime without linearity checking one has to supply the following:

```shell
$ cargo build --features=default,unsafe_disable_continuation_linearity_check
```
dhil added a commit to dhil/wasmtime that referenced this pull request Jul 13, 2023
This patch improves upon bytecodealliance#42. In addition it renames the flag, so to build a compiler & runtime without linearity checking one has to supply the following:

```shell
$ cargo build --features=default,unsafe_disable_continuation_linearity_check
```
dhil added a commit to dhil/wasmtime that referenced this pull request Jul 13, 2023
bytecodealliance#47)

* Improve compile option for disabling the continuation linearity check.

This patch improves upon bytecodealliance#42. In addition it renames the flag, so to build a compiler & runtime without linearity checking one has to supply the following:

```shell
$ cargo build --features=default,unsafe_disable_continuation_linearity_check
```
dhil added a commit to dhil/wasmtime that referenced this pull request Nov 3, 2023
…odealliance#42)

This patch is a follow up on PR bytecodealliance#35. It partially addresses issue
presence of stack switching as older frame pointers are not guaranteed
to be greater than the current frame pointer (e.g. tracing across
stack boundaries).
alexcrichton pushed a commit that referenced this pull request Oct 9, 2025
Allow to map host directory as arbitary guest path
philipc added a commit to philipc/wasmtime that referenced this pull request Mar 14, 2026
If we emit a value label alias for an instruction that isn't lowered,
then that signals that the value has been optimised out. However, since
it is an alias we know that the value also exists in an earlier vreg, so
we should skip the alias and use that instead.

This situation occurs often for memory indexes on AArch64. We translate
memory stores into instructions such as:

    v8 = iconst.i32 42
    v9 = uextend.i64 v6
    v10 = load.i64 notrap aligned readonly can_move checked v0+56
    v11 = iadd v10, v9
    v12 = iconst.i64 20
    v13 = iadd v11, v12  ; v12 = 20
    store little heap v8, v13  ; v8 = 42

Here, v6 is a memory index (which has a label) and v9 is an alias of the
memory index added by cast_index_to_pointer_ty(). This is lowered to:

     40c:       52800540        mov     w0, #0x2a                       // bytecodealliance#42
     410:       f9401c41        ldr     x1, [x2, bytecodealliance#56]
     414:       91005021        add     x1, x1, #0x14
     418:       b8384820        str     w0, [x1, w24, uxtw]

The uextend has been folded into the str, so v9 has been optimized
out. But v6 is still present in w24, so the debuginfo should use that
instead.

This fixes the following tests for AArch64:

    native_debug::lldb::dwarf_cold_block
    native_debug::lldb::dwarf_fib_wasm
    native_debug::lldb::dwarf_fib_wasm_dwarf5
    native_debug::lldb::dwarf_fib_wasm_split4
    native_debug::lldb::dwarf_fission
    native_debug::lldb::dwarf_fraction_norm
    native_debug::lldb::dwarf_imported_memory
    native_debug::lldb::dwarf_shared_memory
    native_debug::lldb::dwarf_simple
    native_debug::lldb::dwarf_spilled_frame_base
philipc added a commit to philipc/wasmtime that referenced this pull request Mar 14, 2026
If we emit a value label alias for an instruction that isn't lowered,
then that signals that the value has been optimised out. However, since
it is an alias we know that the value also exists in an earlier vreg, so
we should skip the alias and use that instead.

This situation occurs often for memory indexes on AArch64. We translate
memory stores into instructions such as:

    v8 = iconst.i32 42
    v9 = uextend.i64 v6
    v10 = load.i64 notrap aligned readonly can_move checked v0+56
    v11 = iadd v10, v9
    v12 = iconst.i64 20
    v13 = iadd v11, v12  ; v12 = 20
    store little heap v8, v13  ; v8 = 42

Here, v6 is a memory index (which has a label) and v9 is an
extension of the memory index (which has a label alias, added by
cast_index_to_pointer_ty()). This is lowered to:

     40c:       52800540        mov     w0, #0x2a                       // bytecodealliance#42
     410:       f9401c41        ldr     x1, [x2, bytecodealliance#56]
     414:       91005021        add     x1, x1, #0x14
     418:       b8384820        str     w0, [x1, w24, uxtw]

The uextend has been folded into the str, so v9 has been optimised
out. But v6 is still present in w24, so the debuginfo should use that
instead.

This fixes the following tests for AArch64:

    native_debug::lldb::dwarf_cold_block
    native_debug::lldb::dwarf_fib_wasm
    native_debug::lldb::dwarf_fib_wasm_dwarf5
    native_debug::lldb::dwarf_fib_wasm_split4
    native_debug::lldb::dwarf_fission
    native_debug::lldb::dwarf_fraction_norm
    native_debug::lldb::dwarf_imported_memory
    native_debug::lldb::dwarf_shared_memory
    native_debug::lldb::dwarf_simple
    native_debug::lldb::dwarf_spilled_frame_base
github-merge-queue bot pushed a commit that referenced this pull request Mar 16, 2026
If we emit a value label alias for an instruction that isn't lowered,
then that signals that the value has been optimised out. However, since
it is an alias we know that the value also exists in an earlier vreg, so
we should skip the alias and use that instead.

This situation occurs often for memory indexes on AArch64. We translate
memory stores into instructions such as:

    v8 = iconst.i32 42
    v9 = uextend.i64 v6
    v10 = load.i64 notrap aligned readonly can_move checked v0+56
    v11 = iadd v10, v9
    v12 = iconst.i64 20
    v13 = iadd v11, v12  ; v12 = 20
    store little heap v8, v13  ; v8 = 42

Here, v6 is a memory index (which has a label) and v9 is an
extension of the memory index (which has a label alias, added by
cast_index_to_pointer_ty()). This is lowered to:

     40c:       52800540        mov     w0, #0x2a                       // #42
     410:       f9401c41        ldr     x1, [x2, #56]
     414:       91005021        add     x1, x1, #0x14
     418:       b8384820        str     w0, [x1, w24, uxtw]

The uextend has been folded into the str, so v9 has been optimised
out. But v6 is still present in w24, so the debuginfo should use that
instead.

This fixes the following tests for AArch64:

    native_debug::lldb::dwarf_cold_block
    native_debug::lldb::dwarf_fib_wasm
    native_debug::lldb::dwarf_fib_wasm_dwarf5
    native_debug::lldb::dwarf_fib_wasm_split4
    native_debug::lldb::dwarf_fission
    native_debug::lldb::dwarf_fraction_norm
    native_debug::lldb::dwarf_imported_memory
    native_debug::lldb::dwarf_shared_memory
    native_debug::lldb::dwarf_simple
    native_debug::lldb::dwarf_spilled_frame_base
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants