mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
0187151352
For reasons which are unclear, but possibly due to lack of any known use cases when the code was written, LUL on i686/x86_64-linux only accepts CFA (canonical frame address) expressions of the form SP+offset or FP+offset. However, on Fedora 25 x86_64 and Ubuntu 16.10 x86_64, at least one address range per object uses a Dwarf expression for the CFA, for example: 00000018 000000000024 0000001c FDE cie=00000000 pc=0000000031e0..0000000031f0 DW_CFA_def_cfa_offset: 16 DW_CFA_advance_loc: 6 to 00000000000031e6 DW_CFA_def_cfa_offset: 24 DW_CFA_advance_loc: 10 to 00000000000031f0 DW_CFA_def_cfa_expression( DW_OP_breg7 (rsp): 8; DW_OP_breg16 (rip): 0; DW_OP_lit15; DW_OP_and; DW_OP_lit11; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus) producing the following complaint from LUL: can't summarise: SVMA=0x31f0: rule for DW_REG_CFA: invalid |how|, expr=LExpr(PFXEXPR,0,0) Given that LUL is capable of handling such a CFA expression, it seems artificial to stop it doing so. This patch changes Summariser::Rule() so as to allow such expressions. |
||
---|---|---|
.. | ||
bloatview | ||
coverity | ||
docs | ||
fuzzing | ||
jprof | ||
leak-gauge | ||
lint | ||
memory-profiler | ||
mercurial | ||
power | ||
profiler | ||
quitter | ||
rb | ||
rewriting | ||
update-packaging | ||
mach_commands.py | ||
moz.build |