Bug 1429034: Add WasmAtomicExchangeHeap to GetObject for alias analysis; r=lth

MozReview-Commit-ID: 6zVtGJJLUjU

--HG--
extra : rebase_source : d03394a7b802ec16f94694f840e21e15732ecb63
extra : histedit_source : fa491355c1a5c623b0ccf471da5e4fc904a7059a
This commit is contained in:
Benjamin Bouvier 2018-01-09 14:34:02 +01:00
Родитель a02911a2b6
Коммит f0969b8242
2 изменённых файлов: 14 добавлений и 0 удалений

Просмотреть файл

@ -570,3 +570,16 @@ for (let addr of [1,2,3,5,6,7]) {
(atomic.wake (get_local 0) (i32.const 1))))`).exports.f(addr), (atomic.wake (get_local 0) (i32.const 1))))`).exports.f(addr),
RuntimeError, unaligned); RuntimeError, unaligned);
} }
// Ensure alias analysis works even if atomic and non-atomic accesses are
// mixed.
assertErrorMessage(() => wasmEvalText(`(module
(memory 0 1 shared)
(func (export "main")
i32.const 1
i32.const 2816
i32.atomic.rmw16_u.xchg align=2
i32.load16_s offset=83 align=1
drop
)
)`).exports.main(), RuntimeError, unaligned);

Просмотреть файл

@ -144,6 +144,7 @@ GetObject(const MDefinition* ins)
case MDefinition::Opcode::WasmStore: case MDefinition::Opcode::WasmStore:
case MDefinition::Opcode::WasmCompareExchangeHeap: case MDefinition::Opcode::WasmCompareExchangeHeap:
case MDefinition::Opcode::WasmAtomicBinopHeap: case MDefinition::Opcode::WasmAtomicBinopHeap:
case MDefinition::Opcode::WasmAtomicExchangeHeap:
case MDefinition::Opcode::WasmLoadGlobalVar: case MDefinition::Opcode::WasmLoadGlobalVar:
case MDefinition::Opcode::WasmStoreGlobalVar: case MDefinition::Opcode::WasmStoreGlobalVar:
case MDefinition::Opcode::ArrayJoin: case MDefinition::Opcode::ArrayJoin: