diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /src/pdk/peeph.def | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'src/pdk/peeph.def')
| -rw-r--r-- | src/pdk/peeph.def | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/pdk/peeph.def b/src/pdk/peeph.def new file mode 100644 index 0000000..bac385a --- /dev/null +++ b/src/pdk/peeph.def @@ -0,0 +1,56 @@ +// peeph.def - PDK peephole rules + +replace restart { + mov %1, %2 +} by { + ; peephole 0 removed dead load into %1 from %2. +} if notUsed(%1) + +replace restart { + mov %1, a + mov a, %1 +} by { + mov %1, a + ; peephole 1 removed redundant load from %1 into a. +} if notVolatile(%1) + + +replace restart { + mov a, #%1 + ret +} by { + ; peephole 2 moved load to ret. + ret #%1 +} + +replace restart { + xch a, %1 + xch a, %1 +} by { + ; peephole 3 removed redundant double exchange between a and %1. +} if notVolatile(%1) + +replace restart { + mov a, #0x00 + slc a + and a, #0x01 +} by { + mov a, #0x00 + slc a + ; peephole 4 removed redundant and. +} + +replace restart { +%1: +} by { + ; peephole j0 removed unused label %1. +} if labelRefCount(%1 0) + +replace restart { + ret %1 + ret +} by { + ret %1 + ; peephole j1 removed redundant ret after ret k. +} + |
