summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm/wasm-debug.cpp135
-rw-r--r--test/passes/fannkuch3.bin.txt292
-rw-r--r--test/passes/fannkuch3_manyopts.bin.txt204
-rw-r--r--test/passes/fib2.bin.txt40
4 files changed, 356 insertions, 315 deletions
diff --git a/src/wasm/wasm-debug.cpp b/src/wasm/wasm-debug.cpp
index 4181b06f2..e90dc6d48 100644
--- a/src/wasm/wasm-debug.cpp
+++ b/src/wasm/wasm-debug.cpp
@@ -473,12 +473,18 @@ struct LocationUpdater {
AddrExprMap oldExprAddrMap;
FuncAddrMap oldFuncAddrMap;
+ // Map offsets of location list entries in the debug_loc section to the index
+ // of their compile unit.
+ std::unordered_map<BinaryLocation, size_t> locToUnitMap;
+
// Map start of line tables in the debug_line section to their new locations.
- std::map<BinaryLocation, BinaryLocation> debugLineMap;
+ std::unordered_map<BinaryLocation, BinaryLocation> debugLineMap;
+
+ typedef std::pair<BinaryLocation, BinaryLocation> OldToNew;
- // Map offset of location list entries in the debug_loc section to the base
- // address of the compilation units referencing them.
- std::map<BinaryLocation, BinaryLocation> debugLocToUnitMap;
+ // Map of compile unit index => old and new base offsets (i.e., in the
+ // original binary and in the new one).
+ std::unordered_map<size_t, OldToNew> compileUnitBases;
// TODO: for memory efficiency, we may want to do this in a streaming manner,
// binary to binary, without YAML IR.
@@ -618,8 +624,14 @@ struct LocationUpdater {
return debugLineMap.at(old);
}
- BinaryLocation getLocationBaseAddress(BinaryLocation offset) const {
- return debugLocToUnitMap.at(offset);
+ // Given an offset in .debug_loc, get the old and new compile unit bases.
+ OldToNew getCompileUnitBasesForLoc(size_t offset) const {
+ auto index = locToUnitMap.at(offset);
+ auto iter = compileUnitBases.find(index);
+ if (iter != compileUnitBases.end()) {
+ return iter->second;
+ }
+ return OldToNew{0, 0};
}
};
@@ -756,7 +768,7 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE,
llvm::DWARFYAML::Entry& yamlEntry,
const llvm::DWARFAbbreviationDeclaration* abbrevDecl,
LocationUpdater& locationUpdater,
- BinaryLocation compilationUnitBaseAddress) {
+ size_t compileUnitIndex) {
auto tag = DIE.getTag();
// Pairs of low/high_pc require some special handling, as the high
// may be an offset relative to the low. First, process everything but
@@ -776,8 +788,13 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE,
tag == llvm::dwarf::DW_TAG_lexical_block ||
tag == llvm::dwarf::DW_TAG_label) {
newValue = locationUpdater.getNewExprStart(oldValue);
- } else if (tag == llvm::dwarf::DW_TAG_compile_unit ||
- tag == llvm::dwarf::DW_TAG_subprogram) {
+ } else if (tag == llvm::dwarf::DW_TAG_compile_unit) {
+ newValue = locationUpdater.getNewFuncStart(oldValue);
+ // Per the DWARF spec, "The base address of a compile unit is
+ // defined as the value of the DW_AT_low_pc attribute, if present."
+ locationUpdater.compileUnitBases[compileUnitIndex] =
+ LocationUpdater::OldToNew{oldValue, newValue};
+ } else if (tag == llvm::dwarf::DW_TAG_subprogram) {
newValue = locationUpdater.getNewFuncStart(oldValue);
} else {
Fatal() << "unknown tag with low_pc "
@@ -793,8 +810,7 @@ static void updateDIE(const llvm::DWARFDebugInfoEntry& DIE,
} else if (attr == llvm::dwarf::DW_AT_location &&
attrSpec.Form == llvm::dwarf::DW_FORM_sec_offset) {
BinaryLocation locOffset = yamlValue.Value;
- locationUpdater.debugLocToUnitMap[locOffset] =
- compilationUnitBaseAddress;
+ locationUpdater.locToUnitMap[locOffset] = compileUnitIndex;
}
});
// Next, process the high_pcs.
@@ -838,6 +854,7 @@ static void updateCompileUnits(const BinaryenDWARFInfo& info,
LocationUpdater& locationUpdater) {
// The context has the high-level information we need, and the YAML is where
// we write changes. First, iterate over the compile units.
+ size_t compileUnitIndex = 0;
iterContextAndYAML(
info.context->compile_units(),
yaml.CompileUnits,
@@ -854,15 +871,11 @@ static void updateCompileUnits(const BinaryenDWARFInfo& info,
auto abbrevDecl = DIE.getAbbreviationDeclarationPtr();
if (abbrevDecl) {
// This is relevant; look for things to update.
- BinaryLocation compilationUnitBaseAddress =
- CU->getBaseAddress() ? CU->getBaseAddress()->Address : 0;
- updateDIE(DIE,
- yamlEntry,
- abbrevDecl,
- locationUpdater,
- compilationUnitBaseAddress);
+ updateDIE(
+ DIE, yamlEntry, abbrevDecl, locationUpdater, compileUnitIndex);
}
});
+ compileUnitIndex++;
});
}
@@ -907,59 +920,87 @@ static void updateRanges(llvm::DWARFYAML::Data& yaml,
// would indicate an end or a base in .debug_loc).
static const BinaryLocation IGNOREABLE_LOCATION = 1;
+static bool isNewBaseLoc(const llvm::DWARFYAML::Loc& loc) {
+ return loc.Start == BinaryLocation(-1);
+}
+
+static bool isEndMarkerLoc(const llvm::DWARFYAML::Loc& loc) {
+ return loc.Start == 0 && loc.End == 0;
+}
+
// Update the .debug_loc section.
static void updateLoc(llvm::DWARFYAML::Data& yaml,
const LocationUpdater& locationUpdater) {
// Similar to ranges, try to update the start and end. Note that here we
// can't skip since the location description is a variable number of bytes,
// so we mark no longer valid addresses as empty.
- // Locations have an optional base.
bool atStart = true;
- BinaryLocation base = 0;
- for (size_t i = 0; i < yaml.Locs.size(); i++) {
- auto& loc = yaml.Locs[i];
+ // We need to keep positions in the .debug_loc section identical to before
+ // (or else we'd need to update their positions too) and so we need to keep
+ // base entries around (a base entry is added to every entry after it in the
+ // list). However, we may change the base's value as after moving instructions
+ // around the old base may not be smaller than all the values relative to it.
+ BinaryLocation oldBase, newBase;
+ auto& locs = yaml.Locs;
+ for (size_t i = 0; i < locs.size(); i++) {
+ auto& loc = locs[i];
if (atStart) {
- base = locationUpdater.getLocationBaseAddress(loc.CompileUnitOffset);
+ std::tie(oldBase, newBase) =
+ locationUpdater.getCompileUnitBasesForLoc(loc.CompileUnitOffset);
atStart = false;
}
+ // By default we copy values over, unless we modify them below.
BinaryLocation newStart = loc.Start, newEnd = loc.End;
- if (newStart == BinaryLocation(-1)) {
+ if (isNewBaseLoc(loc)) {
// This is a new base.
// Note that the base is not the address of an instruction, necessarily -
// it's just a number (seems like it could always be an instruction, but
// that's not what LLVM emits).
- base = newEnd;
- } else if (newStart == 0 && newEnd == 0) {
- // This is an end marker, this list is done.
- base = 0;
+ // We must look forward at everything relative to this base, so that we
+ // can emit a new proper base (as mentioned earlier, the original base may
+ // not be valid if instructions moved to a position before it - they must
+ // be positive offsets from it).
+ oldBase = newBase = newEnd;
+ BinaryLocation smallest = -1;
+ for (size_t j = i + 1; j < locs.size(); j++) {
+ auto& futureLoc = locs[j];
+ if (isNewBaseLoc(futureLoc) || isEndMarkerLoc(futureLoc)) {
+ break;
+ }
+ auto updatedStart =
+ locationUpdater.getNewStart(futureLoc.Start + oldBase);
+ // If we found a valid mapping, this is a relevant value for us. If the
+ // optimizer removed it, it's a 0, and we can ignore it here - we will
+ // emit IGNOREABLE_LOCATION for it later anyhow.
+ if (updatedStart != 0) {
+ smallest = std::min(smallest, updatedStart);
+ }
+ }
+ // If we found no valid values that will be relativized here, just use 0
+ // as the new (never-to-be-used) base, which is less confusing (otherwise
+ // the value looks like it means something).
+ if (smallest == BinaryLocation(-1)) {
+ smallest = 0;
+ }
+ newBase = newEnd = smallest;
+ } else if (isEndMarkerLoc(loc)) {
+ // This is an end marker, this list is done; reset the base.
atStart = true;
} else {
// This is a normal entry, try to find what it should be updated to. First
// de-relativize it to the base to get the absolute address, then look for
// a new address for it.
- newStart = locationUpdater.getNewStart(loc.Start + base);
- newEnd = locationUpdater.getNewEnd(loc.End + base);
+ newStart = locationUpdater.getNewStart(loc.Start + oldBase);
+ newEnd = locationUpdater.getNewEnd(loc.End + oldBase);
if (newStart == 0 || newEnd == 0) {
// This part of the loc no longer has a mapping, so we must ignore it.
newStart = newEnd = IGNOREABLE_LOCATION;
} else {
- // See if we can relativize it against the base. If things moved around
- // so that the base is no longer before the start or the end, then we
- // must skip this. That is, if we had something like
- //
- // [base] [start] [end]
- //
- // (where the X axis is the offset) and transforms led to
- //
- // [start] [base] [end]
- //
- // or such, then give up TODO: perhaps remap with a new base?
- if (newStart >= base && newEnd >= base) {
- newStart -= base;
- newEnd -= base;
- } else {
- newStart = newEnd = IGNOREABLE_LOCATION;
- }
+ // We picked a new base that ensures it is smaller than the values we
+ // will relativize to it.
+ assert(newStart >= newBase && newEnd >= newBase);
+ newStart -= newBase;
+ newEnd -= newBase;
}
// The loc start and end markers have been preserved. However, TODO
// instructions in the middle may have moved around, making the loc no
diff --git a/test/passes/fannkuch3.bin.txt b/test/passes/fannkuch3.bin.txt
index a0989808d..5c2a86d8e 100644
--- a/test/passes/fannkuch3.bin.txt
+++ b/test/passes/fannkuch3.bin.txt
@@ -2567,16 +2567,16 @@ Abbrev table for offset: 0x00000000
0x000000c3: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000001d:
- [0xffffffff, 0x00000006):
- [0x00000007, 0x00000030): DW_OP_consts +0, DW_OP_stack_value
- [0x00000046, 0x0000004b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x000000dc, 0x000000e5): DW_OP_consts +1, DW_OP_stack_value
- [0x00000121, 0x0000012b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000169, 0x00000176): DW_OP_consts +0, DW_OP_stack_value
- [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value
- [0x00000269, 0x00000272): DW_OP_consts +1, DW_OP_stack_value
- [0x000002ae, 0x000002b8): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x000002f6, 0x00000303): DW_OP_consts +0, DW_OP_stack_value)
+ [0xffffffff, 0x0000000d):
+ [0x00000000, 0x00000029): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000000d5, 0x000000de): DW_OP_consts +1, DW_OP_stack_value
+ [0x0000011a, 0x00000124): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000162, 0x0000016f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000251, 0x0000025c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000262, 0x0000026b): DW_OP_consts +1, DW_OP_stack_value
+ [0x000002a7, 0x000002b1): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x000002ef, 0x000002fc): DW_OP_consts +0, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000d6] = "i")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2584,8 +2584,8 @@ Abbrev table for offset: 0x00000000
0x000000d2: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000a5:
- [0xffffffff, 0x00000006):
- [0x0000000e, 0x00000030): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
+ [0xffffffff, 0x00000014):
+ [0x00000000, 0x00000022): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2593,8 +2593,8 @@ Abbrev table for offset: 0x00000000
0x000000e1: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000c3:
- [0xffffffff, 0x00000006):
- [0x00000017, 0x00000030): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
+ [0xffffffff, 0x0000001d):
+ [0x00000000, 0x00000019): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000013e] = "perm1")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (29)
@@ -2602,8 +2602,8 @@ Abbrev table for offset: 0x00000000
0x000000f0: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000e1:
- [0xffffffff, 0x00000006):
- [0x0000001d, 0x00000030): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
+ [0xffffffff, 0x00000023):
+ [0x00000000, 0x00000013): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000196] = "perm")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (29)
@@ -2611,8 +2611,8 @@ Abbrev table for offset: 0x00000000
0x000000ff: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000ff:
- [0xffffffff, 0x00000006):
- [0x00000023, 0x00000030): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
+ [0xffffffff, 0x00000029):
+ [0x00000000, 0x0000000d): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000144] = "count")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (29)
@@ -2620,9 +2620,9 @@ Abbrev table for offset: 0x00000000
0x0000010e: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000011d:
- [0xffffffff, 0x00000006):
- [0x000001d2, 0x000001d7): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
- [0x0000035f, 0x00000364): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
+ [0xffffffff, 0x000001d8):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0x0000018d, 0x00000192): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014a] = "r")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2630,13 +2630,13 @@ Abbrev table for offset: 0x00000000
0x0000011d: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x00000149:
- [0xffffffff, 0x00000006):
- [0x000000c3, 0x000000d6): DW_OP_consts +0, DW_OP_stack_value
- [0x000000dc, 0x000000e5): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
- [0x0000014a, 0x00000152): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value
- [0x00000269, 0x00000272): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
- [0x000002d7, 0x000002df): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
+ [0xffffffff, 0x000000c9):
+ [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000019, 0x00000022): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
+ [0x00000087, 0x0000008f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000195, 0x000001a0): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001a6, 0x000001af): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
+ [0x00000214, 0x0000021c): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000155] = "flips")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2644,9 +2644,9 @@ Abbrev table for offset: 0x00000000
0x0000012c: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000001ab:
- [0xffffffff, 0x00000006):
- [0x000000d2, 0x000000d6): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
- [0x0000025f, 0x00000263): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value)
+ [0xffffffff, 0x000000d8):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
+ [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019b] = "k")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2654,11 +2654,11 @@ Abbrev table for offset: 0x00000000
0x0000013b: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000001d7:
- [0xffffffff, 0x00000006):
- [0x000000ec, 0x000000f0): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000128, 0x0000012b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000279, 0x0000027d): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x000002b5, 0x000002b8): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x000000f2):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000001c9, 0x000001cc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019d] = "j")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2666,11 +2666,11 @@ Abbrev table for offset: 0x00000000
0x0000014a: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000021f:
- [0xffffffff, 0x00000006):
- [0x00000101, 0x0000012b): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
- [0x0000013c, 0x00000152): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x0000028e, 0x000002b8): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
- [0x000002c9, 0x000002df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x00000107):
+ [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
+ [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000018d, 0x000001b7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
+ [0x000001c8, 0x000001de): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019f] = "tmp")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2841,8 +2841,8 @@ Abbrev table for offset: 0x00000000
0x00000269: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x00000267:
- [0xffffffff, 0x0000039f):
- [0x00000012, 0x00000017): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
+ [0xffffffff, 0x000003b1):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (153)
@@ -2861,29 +2861,29 @@ Abbrev table for offset: 0x00000000
0x0000028d: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000285:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_consts +30, DW_OP_stack_value)
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_consts +30, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01c3 => {0x000001c3} "showmax")
0x00000296: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000002a2:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_lit0, DW_OP_stack_value
- [0x000002ac, 0x000002c4): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_lit0, DW_OP_stack_value
+ [0x00000287, 0x0000029f): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ce => {0x000001ce} "args")
0x0000029f: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000002cc:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_consts +0, DW_OP_stack_value
- [0x00000063, 0x00000068): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x0000006e, 0x0000008e): DW_OP_consts +0, DW_OP_stack_value
- [0x000000a4, 0x000000a9): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x000000c2, 0x000000c6): DW_OP_consts +0, DW_OP_stack_value
- [0x000000ed, 0x000000f2): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x0000013a, 0x0000014a): DW_OP_consts +0, DW_OP_stack_value
- [0x000001be, 0x000001cc): DW_OP_consts +0, DW_OP_stack_value
- [0x00000201, 0x00000215): DW_OP_consts +0, DW_OP_stack_value)
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000003e, 0x00000043): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000049, 0x00000069): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000007f, 0x00000084): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000009d, 0x000000a1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000c8, 0x000000cd): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000115, 0x00000125): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000199, 0x000001a7): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001dc, 0x000001f0): DW_OP_consts +0, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01d9 => {0x000001d9} "i")
0x000002a8: DW_TAG_variable [27]
@@ -2891,34 +2891,34 @@ Abbrev table for offset: 0x00000000
0x000002ad: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000354:
- [0xffffffff, 0x0000039f):
- [0x00000079, 0x0000008e): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x00000418):
+ [0x00000000, 0x00000015): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ef => {0x000001ef} "perm1")
0x000002b6: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000372:
- [0xffffffff, 0x0000039f):
- [0x0000007f, 0x0000008e): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
+ [0xffffffff, 0x0000041e):
+ [0x00000000, 0x0000000f): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01fa => {0x000001fa} "count")
0x000002bf: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000390:
- [0xffffffff, 0x0000039f):
- [0x000001a8, 0x000001af): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
- [0x00000273, 0x0000027a): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
+ [0xffffffff, 0x00000547):
+ [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0x000000cb, 0x000000d2): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0205 => {0x00000205} "r")
0x000002c8: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000003e8:
- [0xffffffff, 0x0000039f):
- [0x0000028e, 0x00000299): DW_OP_consts +0, DW_OP_stack_value
- [0x000002bc, 0x000002c4): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
+ [0xffffffff, 0x0000062d):
+ [0x00000000, 0x0000000b): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000002e, 0x00000036): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0210 => {0x00000210} "maxflips")
0x000002d1: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000413:
- [0xffffffff, 0x0000039f):
- [0x000002a5, 0x000002c4): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x00000644):
+ [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x021b => {0x0000021b} "flips")
0x000002da: DW_TAG_label [28]
@@ -2932,9 +2932,9 @@ Abbrev table for offset: 0x00000000
0x000002e8: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000003bc:
- [0xffffffff, 0x0000039f):
- [0x00000141, 0x0000014a): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
- [0x00000208, 0x00000215): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value)
+ [0xffffffff, 0x000004e0):
+ [0x00000000, 0x00000009): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
+ [0x000000c7, 0x000000d4): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x022e => {0x0000022e} "p0")
0x000002f1: NULL
@@ -3004,117 +3004,117 @@ Abbrev table for offset: 0x00000000
[0x00000000, 0x00000030): DW_OP_consts +0, DW_OP_stack_value
0x0000001d:
- [0xffffffff, 0x00000006):
- [0x00000007, 0x00000030): DW_OP_consts +0, DW_OP_stack_value
- [0x00000046, 0x0000004b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x000000dc, 0x000000e5): DW_OP_consts +1, DW_OP_stack_value
- [0x00000121, 0x0000012b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000169, 0x00000176): DW_OP_consts +0, DW_OP_stack_value
- [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value
- [0x00000269, 0x00000272): DW_OP_consts +1, DW_OP_stack_value
- [0x000002ae, 0x000002b8): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x000002f6, 0x00000303): DW_OP_consts +0, DW_OP_stack_value
+ [0xffffffff, 0x0000000d):
+ [0x00000000, 0x00000029): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000000d5, 0x000000de): DW_OP_consts +1, DW_OP_stack_value
+ [0x0000011a, 0x00000124): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000162, 0x0000016f): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000251, 0x0000025c): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000262, 0x0000026b): DW_OP_consts +1, DW_OP_stack_value
+ [0x000002a7, 0x000002b1): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x000002ef, 0x000002fc): DW_OP_consts +0, DW_OP_stack_value
0x000000a5:
- [0xffffffff, 0x00000006):
- [0x0000000e, 0x00000030): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0xffffffff, 0x00000014):
+ [0x00000000, 0x00000022): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
0x000000c3:
- [0xffffffff, 0x00000006):
- [0x00000017, 0x00000030): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0xffffffff, 0x0000001d):
+ [0x00000000, 0x00000019): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
0x000000e1:
- [0xffffffff, 0x00000006):
- [0x0000001d, 0x00000030): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
+ [0xffffffff, 0x00000023):
+ [0x00000000, 0x00000013): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
0x000000ff:
- [0xffffffff, 0x00000006):
- [0x00000023, 0x00000030): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0xffffffff, 0x00000029):
+ [0x00000000, 0x0000000d): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x0000011d:
- [0xffffffff, 0x00000006):
- [0x000001d2, 0x000001d7): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
- [0x0000035f, 0x00000364): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0xffffffff, 0x000001d8):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0x0000018d, 0x00000192): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
0x00000149:
- [0xffffffff, 0x00000006):
- [0x000000c3, 0x000000d6): DW_OP_consts +0, DW_OP_stack_value
- [0x000000dc, 0x000000e5): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
- [0x0000014a, 0x00000152): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000258, 0x00000263): DW_OP_consts +0, DW_OP_stack_value
- [0x00000269, 0x00000272): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
- [0x000002d7, 0x000002df): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0xffffffff, 0x000000c9):
+ [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000019, 0x00000022): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
+ [0x00000087, 0x0000008f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000195, 0x000001a0): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001a6, 0x000001af): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
+ [0x00000214, 0x0000021c): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
0x000001ab:
- [0xffffffff, 0x00000006):
- [0x000000d2, 0x000000d6): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
- [0x0000025f, 0x00000263): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value
+ [0xffffffff, 0x000000d8):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
+ [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value
0x000001d7:
- [0xffffffff, 0x00000006):
- [0x000000ec, 0x000000f0): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000128, 0x0000012b): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000279, 0x0000027d): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x000002b5, 0x000002b8): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x000000f2):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000018d, 0x00000191): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000001c9, 0x000001cc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x0000021f:
- [0xffffffff, 0x00000006):
- [0x00000101, 0x0000012b): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
- [0x0000013c, 0x00000152): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x0000028e, 0x000002b8): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
- [0x000002c9, 0x000002df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x00000107):
+ [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
+ [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000018d, 0x000001b7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
+ [0x000001c8, 0x000001de): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x00000267:
- [0xffffffff, 0x0000039f):
- [0x00000012, 0x00000017): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0xffffffff, 0x000003b1):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
0x00000285:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_consts +30, DW_OP_stack_value
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_consts +30, DW_OP_stack_value
0x000002a2:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_lit0, DW_OP_stack_value
- [0x000002ac, 0x000002c4): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_lit0, DW_OP_stack_value
+ [0x00000287, 0x0000029f): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x000002cc:
- [0xffffffff, 0x0000039f):
- [0x00000025, 0x0000002e): DW_OP_consts +0, DW_OP_stack_value
- [0x00000063, 0x00000068): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x0000006e, 0x0000008e): DW_OP_consts +0, DW_OP_stack_value
- [0x000000a4, 0x000000a9): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x000000c2, 0x000000c6): DW_OP_consts +0, DW_OP_stack_value
- [0x000000ed, 0x000000f2): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x0000013a, 0x0000014a): DW_OP_consts +0, DW_OP_stack_value
- [0x000001be, 0x000001cc): DW_OP_consts +0, DW_OP_stack_value
- [0x00000201, 0x00000215): DW_OP_consts +0, DW_OP_stack_value
+ [0xffffffff, 0x000003c4):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000003e, 0x00000043): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000049, 0x00000069): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000007f, 0x00000084): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000009d, 0x000000a1): DW_OP_consts +0, DW_OP_stack_value
+ [0x000000c8, 0x000000cd): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000115, 0x00000125): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000199, 0x000001a7): DW_OP_consts +0, DW_OP_stack_value
+ [0x000001dc, 0x000001f0): DW_OP_consts +0, DW_OP_stack_value
0x00000354:
- [0xffffffff, 0x0000039f):
- [0x00000079, 0x0000008e): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x00000418):
+ [0x00000000, 0x00000015): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x00000372:
- [0xffffffff, 0x0000039f):
- [0x0000007f, 0x0000008e): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
+ [0xffffffff, 0x0000041e):
+ [0x00000000, 0x0000000f): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
0x00000390:
- [0xffffffff, 0x0000039f):
- [0x000001a8, 0x000001af): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
- [0x00000273, 0x0000027a): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0xffffffff, 0x00000547):
+ [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0x000000cb, 0x000000d2): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x000003bc:
- [0xffffffff, 0x0000039f):
- [0x00000141, 0x0000014a): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
- [0x00000208, 0x00000215): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
+ [0xffffffff, 0x000004e0):
+ [0x00000000, 0x00000009): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
+ [0x000000c7, 0x000000d4): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
0x000003e8:
- [0xffffffff, 0x0000039f):
- [0x0000028e, 0x00000299): DW_OP_consts +0, DW_OP_stack_value
- [0x000002bc, 0x000002c4): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0xffffffff, 0x0000062d):
+ [0x00000000, 0x0000000b): DW_OP_consts +0, DW_OP_stack_value
+ [0x0000002e, 0x00000036): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
0x00000413:
- [0xffffffff, 0x0000039f):
- [0x000002a5, 0x000002c4): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x00000644):
+ [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
.debug_line contents:
debug_line[0x00000000]
diff --git a/test/passes/fannkuch3_manyopts.bin.txt b/test/passes/fannkuch3_manyopts.bin.txt
index 627fccd30..db8eb4dce 100644
--- a/test/passes/fannkuch3_manyopts.bin.txt
+++ b/test/passes/fannkuch3_manyopts.bin.txt
@@ -2558,7 +2558,7 @@ Abbrev table for offset: 0x00000000
0x000000b4: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x00000000:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000007):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014c] = "maxflips")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2567,15 +2567,15 @@ Abbrev table for offset: 0x00000000
0x000000c3: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000001d:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x0000000a):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000041, 0x00000046): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003d, 0x00000042): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value
- [0x00000110, 0x0000011a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000010c, 0x00000116): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000235, 0x00000240): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value
- [0x0000028d, 0x00000297): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000289, 0x00000293): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000d6] = "i")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2584,7 +2584,7 @@ Abbrev table for offset: 0x00000000
0x000000d2: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000a5:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000011):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2593,7 +2593,7 @@ Abbrev table for offset: 0x00000000
0x000000e1: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000c3:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x0000001a):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000013e] = "perm1")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2602,7 +2602,7 @@ Abbrev table for offset: 0x00000000
0x000000f0: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000e1:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000020):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000196] = "perm")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2611,7 +2611,7 @@ Abbrev table for offset: 0x00000000
0x000000ff: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000000ff:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000026):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000144] = "count")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
@@ -2620,9 +2620,9 @@ Abbrev table for offset: 0x00000000
0x0000010e: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000011d:
- [0xffffffff, 0x00000006):
- [0x000001bf, 0x000001c4): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
- [0x0000033c, 0x00000341): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
+ [0xffffffff, 0x000001c5):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0x0000017d, 0x00000182): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000014a] = "r")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2630,13 +2630,13 @@ Abbrev table for offset: 0x00000000
0x0000011d: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x00000149:
- [0xffffffff, 0x00000006):
- [0x000000b4, 0x000000c7): DW_OP_consts +0, DW_OP_stack_value
+ [0xffffffff, 0x000000ba):
+ [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
- [0x00000139, 0x00000141): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000085, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000185, 0x00000190): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
- [0x000002b6, 0x000002be): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
+ [0x00000202, 0x0000020a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x00000155] = "flips")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2644,9 +2644,9 @@ Abbrev table for offset: 0x00000000
0x0000012c: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000001ab:
- [0xffffffff, 0x00000006):
- [0x000000c3, 0x000000c7): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
- [0x00000240, 0x00000244): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value)
+ [0xffffffff, 0x000000c9):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
+ [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019b] = "k")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2654,11 +2654,11 @@ Abbrev table for offset: 0x00000000
0x0000013b: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x000001d7:
- [0xffffffff, 0x00000006):
- [0x000000db, 0x000000df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000117, 0x0000011a): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000258, 0x0000025c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000294, 0x00000297): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x000000e1):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000001b9, 0x000001bc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019d] = "j")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2666,11 +2666,11 @@ Abbrev table for offset: 0x00000000
0x0000014a: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x0000021f:
- [0xffffffff, 0x00000006):
- [0x000000f0, 0x0000011a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
- [0x0000012b, 0x00000141): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x0000026d, 0x00000297): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
- [0x000002a8, 0x000002be): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x000000f6):
+ [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
+ [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000017d, 0x000001a7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
+ [0x000001b8, 0x000001ce): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000019f] = "tmp")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (30)
@@ -2841,8 +2841,8 @@ Abbrev table for offset: 0x00000000
0x00000269: DW_TAG_variable [13]
DW_AT_location [DW_FORM_sec_offset] (0x00000267:
- [0xffffffff, 0x0000039f):
- [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
+ [0xffffffff, 0x00000386):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000dc] = "n")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/emscripten/tests/fannkuch.cpp")
DW_AT_decl_line [DW_FORM_data1] (153)
@@ -2861,26 +2861,26 @@ Abbrev table for offset: 0x00000000
0x0000028d: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000285:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x00000000):
[0x00000001, 0x00000001): DW_OP_consts +30, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01c3 => {0x000001c3} "showmax")
0x00000296: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000002a2:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000005fe):
[0x00000001, 0x00000001): DW_OP_lit0, DW_OP_stack_value
- [0x0000025f, 0x00000277): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
+ [0x00000000, 0x00000018): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ce => {0x000001ce} "args")
0x0000029f: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000002cc:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003d5):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000036, 0x0000003b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000075, 0x0000007a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000093, 0x00000097): DW_OP_consts +0, DW_OP_stack_value
- [0x000000be, 0x000000c3): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000005d, 0x00000061): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000088, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value)
@@ -2891,34 +2891,34 @@ Abbrev table for offset: 0x00000000
0x000002ad: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000354:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003eb):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01ef => {0x000001ef} "perm1")
0x000002b6: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000372:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003f1):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x01fa => {0x000001fa} "count")
0x000002bf: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000390:
- [0xffffffff, 0x0000039f):
- [0x0000016f, 0x00000176): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
- [0x0000022d, 0x00000234): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
+ [0xffffffff, 0x0000050e):
+ [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0x000000be, 0x000000c5): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0205 => {0x00000205} "r")
0x000002c8: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000003e8:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000005e7):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x0000026f, 0x00000277): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
+ [0x00000027, 0x0000002f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x0210 => {0x00000210} "maxflips")
0x000002d1: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x00000413:
- [0xffffffff, 0x0000039f):
- [0x00000258, 0x00000277): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x000005f7):
+ [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x021b => {0x0000021b} "flips")
0x000002da: DW_TAG_label [28]
@@ -2932,7 +2932,7 @@ Abbrev table for offset: 0x00000000
0x000002e8: DW_TAG_variable [26]
DW_AT_location [DW_FORM_sec_offset] (0x000003bc:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x00000565):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value)
DW_AT_abstract_origin [DW_FORM_ref4] (cu + 0x022e => {0x0000022e} "p0")
@@ -3000,121 +3000,121 @@ Abbrev table for offset: 0x00000000
.debug_loc contents:
0x00000000:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000007):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
0x0000001d:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x0000000a):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000041, 0x00000046): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003d, 0x00000042): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value
- [0x00000110, 0x0000011a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000010c, 0x00000116): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000235, 0x00000240): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +1, DW_OP_stack_value
- [0x0000028d, 0x00000297): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000289, 0x00000293): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
0x000000a5:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000011):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
0x000000c3:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x0000001a):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
0x000000e1:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000020):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
0x000000ff:
- [0xffffffff, 0x00000006):
+ [0xffffffff, 0x00000026):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x0000011d:
- [0xffffffff, 0x00000006):
- [0x000001bf, 0x000001c4): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
- [0x0000033c, 0x00000341): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0xffffffff, 0x000001c5):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
+ [0x0000017d, 0x00000182): DW_OP_WASM_location 0x0 +2, DW_OP_stack_value
0x00000149:
- [0xffffffff, 0x00000006):
- [0x000000b4, 0x000000c7): DW_OP_consts +0, DW_OP_stack_value
+ [0xffffffff, 0x000000ba):
+ [0x00000000, 0x00000013): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +13, DW_OP_stack_value
- [0x00000139, 0x00000141): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000239, 0x00000244): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000085, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000185, 0x00000190): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +10, DW_OP_stack_value
- [0x000002b6, 0x000002be): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000202, 0x0000020a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
0x000001ab:
- [0xffffffff, 0x00000006):
- [0x000000c3, 0x000000c7): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
- [0x00000240, 0x00000244): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value
+ [0xffffffff, 0x000000c9):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +12, DW_OP_stack_value
+ [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +16, DW_OP_stack_value
0x000001d7:
- [0xffffffff, 0x00000006):
- [0x000000db, 0x000000df): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000117, 0x0000011a): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000258, 0x0000025c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x00000294, 0x00000297): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x000000e1):
+ [0x00000000, 0x00000004): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000003c, 0x0000003f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000017d, 0x00000181): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x000001b9, 0x000001bc): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x0000021f:
- [0xffffffff, 0x00000006):
- [0x000000f0, 0x0000011a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
- [0x0000012b, 0x00000141): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
- [0x0000026d, 0x00000297): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
- [0x000002a8, 0x000002be): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x000000f6):
+ [0x00000000, 0x0000002a): DW_OP_WASM_location 0x0 +15, DW_OP_stack_value
+ [0x0000003b, 0x00000051): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0x0000017d, 0x000001a7): DW_OP_WASM_location 0x0 +14, DW_OP_stack_value
+ [0x000001b8, 0x000001ce): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x00000267:
- [0xffffffff, 0x0000039f):
- [0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0xffffffff, 0x00000386):
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
0x00000285:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x00000000):
[0x00000001, 0x00000001): DW_OP_consts +30, DW_OP_stack_value
0x000002a2:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000005fe):
[0x00000001, 0x00000001): DW_OP_lit0, DW_OP_stack_value
- [0x0000025f, 0x00000277): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0x00000000, 0x00000018): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x000002cc:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003d5):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000036, 0x0000003b): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000000, 0x00000005): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x00000075, 0x0000007a): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
- [0x00000093, 0x00000097): DW_OP_consts +0, DW_OP_stack_value
- [0x000000be, 0x000000c3): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000003f, 0x00000044): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x0000005d, 0x00000061): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000088, 0x0000008d): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
0x00000354:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003eb):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x00000372:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000003f1):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +5, DW_OP_stack_value
0x00000390:
- [0xffffffff, 0x0000039f):
- [0x0000016f, 0x00000176): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
- [0x0000022d, 0x00000234): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0xffffffff, 0x0000050e):
+ [0x00000000, 0x00000007): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
+ [0x000000be, 0x000000c5): DW_OP_WASM_location 0x0 +6, DW_OP_stack_value
0x000003bc:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x00000565):
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
[0x00000001, 0x00000001): DW_OP_WASM_location 0x0 +8, DW_OP_stack_value
0x000003e8:
- [0xffffffff, 0x0000039f):
+ [0xffffffff, 0x000005e7):
[0x00000001, 0x00000001): DW_OP_consts +0, DW_OP_stack_value
- [0x0000026f, 0x00000277): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
+ [0x00000027, 0x0000002f): DW_OP_WASM_location 0x0 +0, DW_OP_stack_value
0x00000413:
- [0xffffffff, 0x0000039f):
- [0x00000258, 0x00000277): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x000005f7):
+ [0x00000000, 0x0000001f): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
.debug_line contents:
debug_line[0x00000000]
diff --git a/test/passes/fib2.bin.txt b/test/passes/fib2.bin.txt
index 3c88fda88..2380cb146 100644
--- a/test/passes/fib2.bin.txt
+++ b/test/passes/fib2.bin.txt
@@ -404,9 +404,9 @@ Abbrev table for offset: 0x00000000
0x00000049: DW_TAG_variable [4]
DW_AT_location [DW_FORM_sec_offset] (0x00000000:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
- [0x0000001e, 0x00000033): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000017, 0x0000002c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000ac] = "a")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c")
DW_AT_decl_line [DW_FORM_data1] (2)
@@ -414,10 +414,10 @@ Abbrev table for offset: 0x00000000
0x00000058: DW_TAG_variable [4]
DW_AT_location [DW_FORM_sec_offset] (0x0000002b:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
- [0x0000001e, 0x00000023): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
- [0x00000023, 0x00000033): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000017, 0x0000001c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0x0000001c, 0x0000002c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000ae] = "b")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c")
DW_AT_decl_line [DW_FORM_data1] (2)
@@ -425,9 +425,9 @@ Abbrev table for offset: 0x00000000
0x00000067: DW_TAG_variable [4]
DW_AT_location [DW_FORM_sec_offset] (0x00000064:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
- [0x0000002e, 0x00000033): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value)
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000027, 0x0000002c): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value)
DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000b0] = "i")
DW_AT_decl_file [DW_FORM_data1] ("/usr/local/google/home/azakai/Dev/2-binaryen/fib2.c")
DW_AT_decl_line [DW_FORM_data1] (2)
@@ -466,20 +466,20 @@ Abbrev table for offset: 0x00000000
.debug_loc contents:
0x00000000:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
- [0x0000001e, 0x00000033): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000017, 0x0000002c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
0x0000002b:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +1, DW_OP_stack_value
- [0x0000001e, 0x00000023): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
- [0x00000023, 0x00000033): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +1, DW_OP_stack_value
+ [0x00000017, 0x0000001c): DW_OP_WASM_location 0x0 +4, DW_OP_stack_value
+ [0x0000001c, 0x0000002c): DW_OP_WASM_location 0x0 +1, DW_OP_stack_value
0x00000064:
- [0xffffffff, 0x00000005):
- [0x00000007, 0x00000010): DW_OP_consts +0, DW_OP_stack_value
- [0x0000002e, 0x00000033): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value
+ [0xffffffff, 0x0000000c):
+ [0x00000000, 0x00000009): DW_OP_consts +0, DW_OP_stack_value
+ [0x00000027, 0x0000002c): DW_OP_WASM_location 0x0 +3, DW_OP_stack_value
.debug_line contents:
debug_line[0x00000000]