diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-19 03:23:40 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-19 03:23:40 +0800 |
| commit | 3cc064e41f6913b176fbfb2d6e65d049f611b1d4 (patch) | |
| tree | 6fbbc1cffe53c3bae079ea7c5dc277dd1b03719a /backend/lib/Target/RISCV | |
| parent | 0e514100a702c8c7dbbfc5bbdc789fea3189f915 (diff) | |
| download | rcc-project-3cc064e41f6913b176fbfb2d6e65d049f611b1d4.tar.gz rcc-project-3cc064e41f6913b176fbfb2d6e65d049f611b1d4.tar.xz | |
[RISCV][GlobalISel] Generate frame index selection
Diffstat (limited to 'backend/lib/Target/RISCV')
| -rw-r--r-- | backend/lib/Target/RISCV/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | backend/lib/Target/RISCV/RISCVGISelAddressing.rccdesc | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/backend/lib/Target/RISCV/CMakeLists.txt b/backend/lib/Target/RISCV/CMakeLists.txt index 48f3263..3972a92 100644 --- a/backend/lib/Target/RISCV/CMakeLists.txt +++ b/backend/lib/Target/RISCV/CMakeLists.txt @@ -15,6 +15,7 @@ set( "${CMAKE_CURRENT_SOURCE_DIR}/RISCVInstrInfoZb.rccdesc" "${CMAKE_CURRENT_SOURCE_DIR}/RISCVInstrInfoPseudo.rccdesc" "${CMAKE_CURRENT_SOURCE_DIR}/RISCVGISelInteger.rccdesc" + "${CMAKE_CURRENT_SOURCE_DIR}/RISCVGISelAddressing.rccdesc" "${CMAKE_CURRENT_SOURCE_DIR}/RISCVGISelControlFlow.rccdesc" "${CMAKE_CURRENT_SOURCE_DIR}/RISCVGISelShift.rccdesc" "${CMAKE_CURRENT_SOURCE_DIR}/RISCVGISelFloating.rccdesc" diff --git a/backend/lib/Target/RISCV/RISCVGISelAddressing.rccdesc b/backend/lib/Target/RISCV/RISCVGISelAddressing.rccdesc new file mode 100644 index 0000000..f69ab81 --- /dev/null +++ b/backend/lib/Target/RISCV/RISCVGISelAddressing.rccdesc @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +selection_rules: + - + id: select_g_frame_index + priority: 100 + match: + opcode: G_FRAME_INDEX + result_type: { kind: pointer, bits: 64 } + operand_banks: + - { index: 0, bank: GPR } + apply: + instructions: + - opcode: ADDI + root: true + operands: [{ operand: 0 }, { operand: 1 }, { immediate: 0 }] |
