mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-05 00:48:08 +00:00
[WebAssembly] Instruction renaming
Summary: Associated with D56338. Reviewers: aheejin, aardappel Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D56339 llvm-svn: 350610
This commit is contained in:
parent
6a87ddac9a
commit
25ff893712
@ -25,7 +25,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 0 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -60,7 +60,7 @@ define void @call_ptr(i64 (i64)* %arg) {
|
||||
; CHECK-NEXT: FunctionTypes: [ 3, 0, 3, 1, 3, 4 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000003
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
# CHECK: - Type: TABLE
|
||||
# CHECK-NEXT: Tables:
|
||||
# CHECK-NEXT: - ElemType: ANYFUNC
|
||||
# CHECK-NEXT: - ElemType: FUNCREF
|
||||
# CHECK-NEXT: Limits:
|
||||
# CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
# CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -10,7 +10,7 @@
|
||||
# CHECK-NEXT: Field: __indirect_function_table
|
||||
# CHECK-NEXT: Kind: TABLE
|
||||
# CHECK-NEXT: Table:
|
||||
# CHECK-NEXT: ElemType: ANYFUNC
|
||||
# CHECK-NEXT: ElemType: FUNCREF
|
||||
# CHECK-NEXT: Limits:
|
||||
# CHECK-NEXT: Initial: 0x00000001
|
||||
|
||||
|
@ -36,7 +36,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 1, 0 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -20,7 +20,7 @@
|
||||
; CHECK-NEXT: 1, 1, 1 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000007
|
||||
@ -253,7 +253,7 @@
|
||||
; RELOC-NEXT: 0, 0 ]
|
||||
; RELOC-NEXT: - Type: TABLE
|
||||
; RELOC-NEXT: Tables:
|
||||
; RELOC-NEXT: - ElemType: ANYFUNC
|
||||
; RELOC-NEXT: - ElemType: FUNCREF
|
||||
; RELOC-NEXT: Limits:
|
||||
; RELOC-NEXT: Flags: [ HAS_MAX ]
|
||||
; RELOC-NEXT: Initial: 0x00000007
|
||||
|
@ -63,7 +63,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 2, 1, 1 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000004
|
||||
|
@ -42,7 +42,7 @@ declare void @func_external()
|
||||
; CHECK-NEXT: Field: __indirect_function_table
|
||||
; CHECK-NEXT: Kind: TABLE
|
||||
; CHECK-NEXT: Table:
|
||||
; CHECK-NEXT: ElemType: ANYFUNC
|
||||
; CHECK-NEXT: ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Initial: 0x00000002
|
||||
; CHECK-NEXT: - Module: env
|
||||
@ -66,7 +66,7 @@ declare void @func_external()
|
||||
; CHECK: - Type: ELEM
|
||||
; CHECK-NEXT: Segments:
|
||||
; CHECK-NEXT: - Offset:
|
||||
; CHECK-NEXT: Opcode: GET_GLOBAL
|
||||
; CHECK-NEXT: Opcode: GLOBAL_GET
|
||||
; CHECK-NEXT: Index: 2
|
||||
; CHECK-NEXT: Functions: [ 2, 0 ]
|
||||
|
||||
@ -77,6 +77,6 @@ declare void @func_external()
|
||||
; CHECK-NEXT: - SectionOffset: 6
|
||||
; CHECK-NEXT: MemoryIndex: 0
|
||||
; CHECK-NEXT: Offset:
|
||||
; CHECK-NEXT: Opcode: GET_GLOBAL
|
||||
; CHECK-NEXT: Opcode: GLOBAL_GET
|
||||
; CHECK-NEXT: Index: 1
|
||||
; CHECK-NEXT: Content: '0000000001000000'
|
||||
|
@ -31,7 +31,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -45,7 +45,7 @@ define i32 @callWeakFuncs() {
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 0, 0, 1, 2 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -35,7 +35,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 1, 0, 1, 1, 1, 1, 1 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000003
|
||||
|
@ -32,7 +32,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 0, 1, 1, 1, 1, 1 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000002
|
||||
@ -170,7 +170,7 @@ entry:
|
||||
; RELOC-NEXT: FunctionTypes: [ 0, 1, 1, 1, 1, 1 ]
|
||||
; RELOC-NEXT: - Type: TABLE
|
||||
; RELOC-NEXT: Tables:
|
||||
; RELOC-NEXT: - ElemType: ANYFUNC
|
||||
; RELOC-NEXT: - ElemType: FUNCREF
|
||||
; RELOC-NEXT: Limits:
|
||||
; RELOC-NEXT: Flags: [ HAS_MAX ]
|
||||
; RELOC-NEXT: Initial: 0x00000002
|
||||
|
@ -32,7 +32,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 0, 1, 1, 1 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000002
|
||||
|
@ -43,7 +43,7 @@ entry:
|
||||
; CHECK-NEXT: FunctionTypes: [ 0, 1, 1, 0 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: - ElemType: FUNCREF
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: [ HAS_MAX ]
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
|
@ -142,7 +142,7 @@ DataSection::DataSection(ArrayRef<OutputSegment *> Segments)
|
||||
if (Config->Pic) {
|
||||
assert(Segments.size() <= 1 &&
|
||||
"Currenly only a single data segment is supported in PIC mode");
|
||||
InitExpr.Opcode = WASM_OPCODE_GET_GLOBAL;
|
||||
InitExpr.Opcode = WASM_OPCODE_GLOBAL_GET;
|
||||
InitExpr.Value.Global = WasmSym::MemoryBase->getGlobalIndex();
|
||||
} else {
|
||||
InitExpr.Opcode = WASM_OPCODE_I32_CONST;
|
||||
|
@ -175,7 +175,7 @@ void Writer::createImportSection() {
|
||||
Import.Module = "env";
|
||||
Import.Field = kFunctionTableName;
|
||||
Import.Kind = WASM_EXTERNAL_TABLE;
|
||||
Import.Table.ElemType = WASM_TYPE_ANYFUNC;
|
||||
Import.Table.ElemType = WASM_TYPE_FUNCREF;
|
||||
Import.Table.Limits = {0, TableSize, 0};
|
||||
writeImport(OS, Import);
|
||||
}
|
||||
@ -304,7 +304,7 @@ void Writer::createTableSection() {
|
||||
|
||||
writeUleb128(OS, 1, "table count");
|
||||
WasmLimits Limits = {WASM_LIMITS_FLAG_HAS_MAX, TableSize, TableSize};
|
||||
writeTableType(OS, WasmTable{WASM_TYPE_ANYFUNC, Limits});
|
||||
writeTableType(OS, WasmTable{WASM_TYPE_FUNCREF, Limits});
|
||||
}
|
||||
|
||||
void Writer::createExportSection() {
|
||||
@ -364,7 +364,7 @@ void Writer::createElemSection() {
|
||||
writeUleb128(OS, 0, "table index");
|
||||
WasmInitExpr InitExpr;
|
||||
if (Config->Pic) {
|
||||
InitExpr.Opcode = WASM_OPCODE_GET_GLOBAL;
|
||||
InitExpr.Opcode = WASM_OPCODE_GLOBAL_GET;
|
||||
InitExpr.Value.Global = WasmSym::TableBase->getGlobalIndex();
|
||||
} else {
|
||||
InitExpr.Opcode = WASM_OPCODE_I32_CONST;
|
||||
|
@ -83,7 +83,7 @@ void wasm::writeInitExpr(raw_ostream &OS, const WasmInitExpr &InitExpr) {
|
||||
case WASM_OPCODE_I64_CONST:
|
||||
writeSleb128(OS, InitExpr.Value.Int64, "literal (i64)");
|
||||
break;
|
||||
case WASM_OPCODE_GET_GLOBAL:
|
||||
case WASM_OPCODE_GLOBAL_GET:
|
||||
writeUleb128(OS, InitExpr.Value.Global, "literal (global index)");
|
||||
break;
|
||||
default:
|
||||
@ -120,7 +120,7 @@ void wasm::writeEvent(raw_ostream &OS, const WasmEvent &Event) {
|
||||
}
|
||||
|
||||
void wasm::writeTableType(raw_ostream &OS, const llvm::wasm::WasmTable &Type) {
|
||||
writeU8(OS, WASM_TYPE_ANYFUNC, "table type");
|
||||
writeU8(OS, WASM_TYPE_FUNCREF, "table type");
|
||||
writeLimits(OS, Type.Limits);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user