CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
130 lines
4.2 KiB
ArmAsm
130 lines
4.2 KiB
ArmAsm
# RUN: llvm-mc -mattr=+reference-types,+exception-handling -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
|
|
# RUN: wasm-ld --export-dynamic -o %t.wasm %t.o
|
|
# RUN: llvm-objdump -d %t.wasm | FileCheck %s
|
|
# RUN: wasm-ld --export-dynamic -O2 -o %t-opt.wasm %t.o
|
|
# RUN: llvm-objdump -d %t-opt.wasm | FileCheck %s
|
|
# RUN: not wasm-ld --compress-relocations -o %t-compressed.wasm %t.o 2>&1 | FileCheck %s -check-prefix=ERROR
|
|
# RUN: wasm-ld --export-dynamic --strip-debug --compress-relocations -o %t-compressed.wasm %t.o
|
|
# RUN: llvm-objdump -d %t-compressed.wasm | FileCheck %s -check-prefix=COMPRESS
|
|
|
|
.globl _start
|
|
_start:
|
|
.functype _start () -> ()
|
|
end_function
|
|
|
|
.globl func_ret_i64
|
|
func_ret_i64:
|
|
.functype func_ret_i64 () -> (i64)
|
|
i64.const 1
|
|
end_function
|
|
|
|
.globl func_ret_i32
|
|
func_ret_i32:
|
|
.functype func_ret_i32 () -> (i32)
|
|
i32.const 2
|
|
end_function
|
|
|
|
i32_global:
|
|
.globaltype i32_global, i32
|
|
|
|
i32_tag:
|
|
.tagtype i32_tag i32
|
|
|
|
.globl test_memory_and_indirect_call_relocs
|
|
test_memory_and_indirect_call_relocs:
|
|
.functype test_memory_and_indirect_call_relocs () -> ()
|
|
i32.const indirect_func_ret_i64 # R_WASM_MEMORY_ADDR_SLEB
|
|
i32.load 0
|
|
call_indirect () -> (i64) # R_WASM_TYPE_INDEX_LEB, R_WASM_TABLE_NUMBER_LEB
|
|
drop
|
|
i32.const 0
|
|
i32.load indirect_func_ret_i32 # R_WASM_MEMORY_ADDR_LEB
|
|
call_indirect () -> (i32)
|
|
drop
|
|
i32.const func_ret_i64 # R_WASM_TABLE_INDEX_SLEB
|
|
call_indirect () -> (i64)
|
|
drop
|
|
end_function
|
|
|
|
# CHECK: test_memory_and_indirect_call_relocs
|
|
# CHECK: 41 90 80 84 80 00 i32.const 65552
|
|
# CHECK: 11 80 80 80 80 00 80 80 80 80 00 call_indirect 0
|
|
# CHECK: 28 02 94 80 84 80 00 i32.load 65556
|
|
# CHECK: 11 81 80 80 80 00 80 80 80 80 00 call_indirect 1
|
|
# CHECK: 41 81 80 80 80 00 i32.const 1
|
|
# CHECK: 11 80 80 80 80 00 80 80 80 80 00 call_indirect 0
|
|
# COMPRESS: test_memory_and_indirect_call_relocs
|
|
# COMPRESS: 41 90 80 04 i32.const 65552
|
|
# COMPRESS: 11 00 00 call_indirect 0
|
|
# COMPRESS: 28 02 94 80 04 i32.load 65556
|
|
# COMPRESS: 11 01 00 call_indirect 1
|
|
# COMPRESS: 41 01 i32.const 1
|
|
# COMPRESS: 11 00 00 call_indirect 0
|
|
|
|
.globl test_simple_index_relocs
|
|
test_simple_index_relocs:
|
|
.functype test_simple_index_relocs () -> ()
|
|
call func_ret_i32 # R_WASM_FUNCTION_INDEX_LEB
|
|
global.set i32_global # R_WASM_GLOBAL_INDEX_LEB
|
|
i32.const 0
|
|
throw i32_tag # R_WASM_TAG_INDEX_LEB
|
|
end_function
|
|
|
|
# CHECK: test_simple_index_relocs
|
|
# CHECK: 10 82 80 80 80 00 call 2
|
|
# CHECK: 24 81 80 80 80 00 global.set 1
|
|
# CHECK: 08 80 80 80 80 00 throw 0
|
|
# COMPRESS: test_simple_index_relocs
|
|
# COMPRESS: 10 02 call 2
|
|
# COMPRESS: 24 01 global.set 1
|
|
# COMPRESS: 08 00 throw 0
|
|
|
|
.globl test_relative_relocs
|
|
test_relative_relocs:
|
|
.functype test_relative_relocs () -> ()
|
|
i32.const indirect_func_ret_i64@MBREL # R_WASM_MEMORY_ADDR_REL_SLEB
|
|
drop
|
|
i32.const func_ret_i32@TBREL # R_WASM_TABLE_INDEX_REL_SLEB
|
|
drop
|
|
i32.const i32_tls_data@TLSREL # R_WASM_MEMORY_ADDR_TLS_SLEB
|
|
drop
|
|
end_function
|
|
|
|
# CHECK: test_relative_relocs
|
|
# CHECK: 41 90 80 84 80 00 i32.const 65552
|
|
# CHECK: 41 81 80 80 80 00 i32.const 1
|
|
# CHECK: 41 83 80 80 80 00 i32.const 3
|
|
# COMPRESS: test_relative_relocs
|
|
# COMPRESS: 41 90 80 04 i32.const 65552
|
|
# COMPRESS: 41 01 i32.const 1
|
|
# COMPRESS: 41 03 i32.const 3
|
|
|
|
# ERROR: wasm-ld: error: --compress-relocations is incompatible with output debug information. Please pass --strip-debug or --strip-all
|
|
|
|
.section .tdata,"T",@
|
|
.int8 0
|
|
.int8 0
|
|
.int8 0
|
|
i32_tls_data:
|
|
.int32 65
|
|
.size i32_tls_data, 4
|
|
|
|
.section .data,"",@
|
|
.p2align 4
|
|
indirect_func_ret_i64:
|
|
.int32 func_ret_i64
|
|
.size indirect_func_ret_i64, 4
|
|
|
|
indirect_func_ret_i32:
|
|
.int32 func_ret_i32
|
|
.size indirect_func_ret_i32, 4
|
|
|
|
.section .custom_section.target_features,"",@
|
|
.int8 2
|
|
.int8 43
|
|
.int8 7
|
|
.ascii "atomics"
|
|
.int8 43
|
|
.int8 11
|
|
.ascii "bulk-memory"
|