summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/WebAssembly/call-pic.ll6
-rw-r--r--llvm/test/CodeGen/WebAssembly/load-store-pic.ll8
-rw-r--r--llvm/test/MC/WebAssembly/reloc-pic.s93
3 files changed, 98 insertions, 9 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/call-pic.ll b/llvm/test/CodeGen/WebAssembly/call-pic.ll
index 7fd93c65b77..b50f96d6d72 100644
--- a/llvm/test/CodeGen/WebAssembly/call-pic.ll
+++ b/llvm/test/CodeGen/WebAssembly/call-pic.ll
@@ -5,14 +5,14 @@ target triple = "wasm32-unknown-unknown"
declare i32 @foo()
declare i32 @bar()
-declare hidden i32 @hidden_function();
+declare hidden i32 @hidden_function()
@indirect_func = global i32 ()* @foo
define void @call_indirect_func() {
; CHECK-LABEL: call_indirect_func:
; CHECK: global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
-; CHECK-NEXT: i32.const $push[[L1:[0-9]+]]=, indirect_func{{$}}
+; CHECK-NEXT: i32.const $push[[L1:[0-9]+]]=, indirect_func@MBREL{{$}}
; CHECK-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; CHECK-NEXT: i32.load $push[[L3:[0-9]+]]=, 0($pop[[L2]]){{$}}
; CHECK-NEXT: i32.call_indirect $push[[L4:[0-9]+]]=, $pop[[L3]]{{$}}
@@ -43,7 +43,7 @@ define i8* @get_function_address() {
define i8* @get_function_address_hidden() {
; CHECK-LABEL: get_function_address_hidden:
; CHECK: global.get $push[[L0:[0-9]+]]=, __table_base{{$}}
-; CHECK-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_function{{$}}
+; CHECK-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_function@TBREL{{$}}
; CHECK-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; CHECK-NEXT: return $pop[[L2]]{{$}}
; CHECK-NEXT: end_function{{$}}
diff --git a/llvm/test/CodeGen/WebAssembly/load-store-pic.ll b/llvm/test/CodeGen/WebAssembly/load-store-pic.ll
index bb449cadca8..2f7f34ddf6f 100644
--- a/llvm/test/CodeGen/WebAssembly/load-store-pic.ll
+++ b/llvm/test/CodeGen/WebAssembly/load-store-pic.ll
@@ -21,7 +21,7 @@ declare i32 @foo();
define i32 @load_hidden_global() {
; CHECK-LABEL: load_hidden_global:
; PIC: global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
-; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global{{$}}
+; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global@MBREL{{$}}
; PIC-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT: i32.load $push[[L3:[0-9]+]]=, 0($pop[[L2]]){{$}}
@@ -36,7 +36,7 @@ define i32 @load_hidden_global() {
define i32 @load_hidden_global_offset() {
; CHECK-LABEL: load_hidden_global_offset:
; PIC: global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
-; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global_array{{$}}
+; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global_array@MBREL{{$}}
; PIC-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1:[0-9]+]]{{$}}
; PIC-NEXT: i32.const $push[[L3:[0-9]+]]=, 20{{$}}
; PIC-NEXT: i32.add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]{{$}}
@@ -56,7 +56,7 @@ define i32 @load_hidden_global_offset() {
define void @store_hidden_global(i32 %n) {
; CHECK-LABEL: store_hidden_global:
; PIC: global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
-; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global{{$}}
+; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global@MBREL{{$}}
; PIC-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT: i32.store 0($pop[[L2]]), $0{{$}}
@@ -71,7 +71,7 @@ define void @store_hidden_global(i32 %n) {
define void @store_hidden_global_offset(i32 %n) {
; CHECK-LABEL: store_hidden_global_offset:
; PIC: global.get $push[[L0:[0-9]+]]=, __memory_base{{$}}
-; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global_array{{$}}
+; PIC-NEXT: i32.const $push[[L1:[0-9]+]]=, hidden_global_array@MBREL{{$}}
; PIC-NEXT: i32.add $push[[L2:[0-9]+]]=, $pop[[L0]], $pop[[L1]]{{$}}
; PIC-NEXT: i32.const $push[[L3:[0-9]+]]=, 20{{$}}
; PIC-NEXT: i32.add $push[[L4:[0-9]+]]=, $pop[[L2]], $pop[[L3]]{{$}}
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