summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/WebAssembly
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-04-04 17:43:50 +0000
committerSam Clegg <sbc@chromium.org>2019-04-04 17:43:50 +0000
commit2a7cac932bbca5492e5a42d9dac33e0cb76d0f83 (patch)
tree64e21da525922e0a2d7fc39421ecd1d879f963d6 /llvm/test/MC/WebAssembly
parent98e3954fe9d6ab74888c8757284136134330e475 (diff)
downloadbcm5719-llvm-2a7cac932bbca5492e5a42d9dac33e0cb76d0f83.tar.gz
bcm5719-llvm-2a7cac932bbca5492e5a42d9dac33e0cb76d0f83.zip
[WebAssembly] Add new explicit relocation types for PIC relocations
See https://github.com/WebAssembly/tool-conventions/pull/106 Differential Revision: https://reviews.llvm.org/D59907 llvm-svn: 357710
Diffstat (limited to 'llvm/test/MC/WebAssembly')
-rw-r--r--llvm/test/MC/WebAssembly/reloc-pic.s93
1 files changed, 91 insertions, 2 deletions
diff --git a/llvm/test/MC/WebAssembly/reloc-pic.s b/llvm/test/MC/WebAssembly/reloc-pic.s
index 49aaa858aec..249cd1fb89a 100644
--- a/llvm/test/MC/WebAssembly/reloc-pic.s
+++ b/llvm/test/MC/WebAssembly/reloc-pic.s
@@ -16,6 +16,32 @@ load_default_func:
i32.load 0
end_function
+load_hidden_data:
+ .functype load_hidden_data () -> (i32)
+ global.get __memory_base
+ i32.const .L.hidden_data@MBREL
+ i32.add
+ end_function
+
+load_hidden_func:
+ .functype load_hidden_func () -> (i32)
+ global.get __table_base
+ i32.const hidden_func@TBREL
+ i32.add
+ end_function
+
+hidden_func:
+ .functype hidden_func () -> (i32)
+ i32.const 0
+ end_function
+
+.section .rodata.hidden_data,"",@
+.L.hidden_data:
+ .int8 100
+ .size .L.hidden_data, 1
+
+#.hidden hidden_func
+#.hidden hidden_data
.size default_data, 4
.functype default_func () -> (i32)
@@ -34,7 +60,7 @@ load_default_func:
# CHECK-NEXT: Field: __linear_memory
# CHECK-NEXT: Kind: MEMORY
# CHECK-NEXT: Memory:
-# CHECK-NEXT: Initial: 0x00000000
+# CHECK-NEXT: Initial: 0x00000001
# CHECK-NEXT: - Module: env
# CHECK-NEXT: Field: __indirect_function_table
# CHECK-NEXT: Kind: TABLE
@@ -57,7 +83,7 @@ load_default_func:
# CHECK-NEXT: GlobalType: I32
# CHECK-NEXT: GlobalMutable: true
# CHECK-NEXT: - Type: FUNCTION
-# CHECK-NEXT: FunctionTypes: [ 0, 0 ]
+# CHECK-NEXT: FunctionTypes: [ 0, 0, 0, 0, 0 ]
# CHECK-NEXT: - Type: CODE
# CHECK-NEXT: Relocations:
# CHECK-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB
@@ -66,6 +92,18 @@ load_default_func:
# CHECK-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB
# CHECK-NEXT: Index: 3
# CHECK-NEXT: Offset: 0x00000010
+# CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_LEB
+# CHECK-NEXT: Index: 5
+# CHECK-NEXT: Offset: 0x0000001C
+# CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_REL_SLEB
+# CHECK-NEXT: Index: 6
+# CHECK-NEXT: Offset: 0x00000022
+# CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_LEB
+# CHECK-NEXT: Index: 8
+# CHECK-NEXT: Offset: 0x0000002C
+# CHECK-NEXT: - Type: R_WASM_TABLE_INDEX_REL_SLEB
+# CHECK-NEXT: Index: 9
+# CHECK-NEXT: Offset: 0x00000032
# CHECK-NEXT: Functions:
# CHECK-NEXT: - Index: 1
# CHECK-NEXT: Locals: []
@@ -73,6 +111,23 @@ load_default_func:
# CHECK-NEXT: - Index: 2
# CHECK-NEXT: Locals: []
# CHECK-NEXT: Body: 2381808080002800000B
+# CHECK-NEXT: - Index: 3
+# CHECK-NEXT: Locals: []
+# CHECK-NEXT: Body: 2380808080004180808080006A0B
+# CHECK-NEXT: - Index: 4
+# CHECK-NEXT: Locals: []
+# CHECK-NEXT: Body: 2380808080004180808080006A0B
+# CHECK-NEXT: - Index: 5
+# CHECK-NEXT: Locals: []
+# CHECK-NEXT: Body: 41000B
+# CHECK-NEXT: - Type: DATA
+# CHECK-NEXT: Segments:
+# CHECK-NEXT: - SectionOffset: 6
+# CHECK-NEXT: InitFlags: 0
+# CHECK-NEXT: Offset:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 0
+# CHECK-NEXT: Content: '64'
# CHECK-NEXT: - Type: CUSTOM
# CHECK-NEXT: Name: linking
# CHECK-NEXT: Version: 2
@@ -96,4 +151,38 @@ load_default_func:
# CHECK-NEXT: Name: default_func
# CHECK-NEXT: Flags: [ UNDEFINED ]
# CHECK-NEXT: Function: 0
+# CHECK-NEXT: - Index: 4
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: Name: load_hidden_data
+# CHECK-NEXT: Flags: [ BINDING_LOCAL ]
+# CHECK-NEXT: Function: 3
+# CHECK-NEXT: - Index: 5
+# CHECK-NEXT: Kind: DATA
+# CHECK-NEXT: Name: __memory_base
+# CHECK-NEXT: Flags: [ UNDEFINED ]
+# CHECK-NEXT: - Index: 6
+# CHECK-NEXT: Kind: DATA
+# CHECK-NEXT: Name: .L.hidden_data
+# CHECK-NEXT: Flags: [ BINDING_LOCAL ]
+# CHECK-NEXT: Segment: 0
+# CHECK-NEXT: Size: 1
+# CHECK-NEXT: - Index: 7
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: Name: load_hidden_func
+# CHECK-NEXT: Flags: [ BINDING_LOCAL ]
+# CHECK-NEXT: Function: 4
+# CHECK-NEXT: - Index: 8
+# CHECK-NEXT: Kind: DATA
+# CHECK-NEXT: Name: __table_base
+# CHECK-NEXT: Flags: [ UNDEFINED ]
+# CHECK-NEXT: - Index: 9
+# CHECK-NEXT: Kind: FUNCTION
+# CHECK-NEXT: Name: hidden_func
+# CHECK-NEXT: Flags: [ BINDING_LOCAL ]
+# CHECK-NEXT: Function: 5
+# CHECK-NEXT: SegmentInfo:
+# CHECK-NEXT: - Index: 0
+# CHECK-NEXT: Name: .rodata.hidden_data
+# CHECK-NEXT: Alignment: 0
+# CHECK-NEXT: Flags: [ ]
# CHECK-NEXT: ...
OpenPOWER on IntegriCloud