aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorSimon Dardis <simon.dardis@gmail.com>2022-04-07 00:31:33 +0100
committerSimon Dardis <simon.dardis@gmail.com>2022-04-07 01:02:29 +0100
commit303c180199b73eb9c2840d05c92afeb9326e2e15 (patch)
tree03993c1bf110dc9849b6e80c413877ed5419506f /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parent09c2b7c35af8c4bad39f03e9f60df8bd07323028 (diff)
downloadllvm-303c180199b73eb9c2840d05c92afeb9326e2e15.zip
llvm-303c180199b73eb9c2840d05c92afeb9326e2e15.tar.gz
llvm-303c180199b73eb9c2840d05c92afeb9326e2e15.tar.bz2
[MIPS] Initial support for MIPS-I load delay slots
LLVM so far has only supported the MIPS-II and above architectures. MIPS-II is pretty close to MIPS-I, the major difference being that "load" instructions always take one extra instruction slot to propogate to registers. This patch adds support for MIPS-I by adding hazard handling for load delay slots, alongside MIPSR6 forbidden slots and FPU slots, inserting a NOP instruction between a load and any instruction immediately following that reads the load's destination register. I also included a simple regression test. Since no existing tests target MIPS-I, those all still pass. Issue ref: https://github.com/simias/psx-sdk-rs/issues/1 I also tested by building a simple demo app with Clang and running it in an emulator. Patch by: @impiaaa Differential Revision: https://reviews.llvm.org/D122427
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
0 files changed, 0 insertions, 0 deletions