OSDN Git Service

[SystemZ] Model floating-point control register
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 13 May 2019 09:47:26 +0000 (09:47 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 13 May 2019 09:47:26 +0000 (09:47 +0000)
commit12d462cd1b340e395643829dbf111940d88fcb40
treedf810fbaf5b6499e1ff2fcc79d8c5ff6bfc6f022
parent17265b988b16d58f9bf576c80a7c5eaa629ea675
[SystemZ] Model floating-point control register

This adds the FPC (floating-point control register) as a reserved
physical register and models its use by SystemZ instructions.

Note that only the current rounding modes and the IEEE exception
masks are modeled.  *Changes* of the FPC due to exceptions (in
particular the IEEE exception flags and the DXC) are not modeled.

At this point, this patch is mostly NFC, but it will prevent
scheduling of floating-point instructions across SPFC/LFPC etc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360570 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
lib/Target/SystemZ/SystemZInstrDFP.td
lib/Target/SystemZ/SystemZInstrFP.td
lib/Target/SystemZ/SystemZInstrInfo.td
lib/Target/SystemZ/SystemZInstrVector.td
lib/Target/SystemZ/SystemZRegisterInfo.cpp
lib/Target/SystemZ/SystemZRegisterInfo.td
test/CodeGen/SystemZ/RAbasic-invalid-LR-update.mir
test/CodeGen/SystemZ/clear-liverange-spillreg.mir
test/CodeGen/SystemZ/cond-move-regalloc-hints.mir
test/CodeGen/SystemZ/debuginstr-02.mir
test/CodeGen/SystemZ/fp-cmp-07.mir
test/CodeGen/SystemZ/fp-conv-17.mir