summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/CellSPU/SPUISelLowering.h
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2008-01-29 02:16:57 +0000
committerScott Michel <scottm@aero.org>2008-01-29 02:16:57 +0000
commitceae3bbf4dd5e3a6fc7e52fbce10d75abbc70af2 (patch)
tree6287354d3a75e32e1cdd9c350bdb979c08ab2c14 /llvm/lib/Target/CellSPU/SPUISelLowering.h
parentce0740e1f509afab57c0adffbdbb7db5ac244547 (diff)
downloadbcm5719-llvm-ceae3bbf4dd5e3a6fc7e52fbce10d75abbc70af2.tar.gz
bcm5719-llvm-ceae3bbf4dd5e3a6fc7e52fbce10d75abbc70af2.zip
Overhaul Cell SPU's addressing mode internals so that there are now
only two addressing mode nodes, SPUaform and SPUindirect (vice the three previous ones, SPUaform, SPUdform and SPUxform). This improves code somewhat because we now avoid using reg+reg addressing when it can be avoided. It also simplifies the address selection logic, which was the main point for doing this. Also, for various global variables that would be loaded using SPU's A-form addressing, prefer D-form offs[reg] addressing, keeping the base in a register if the variable is used more than once. llvm-svn: 46483
Diffstat (limited to 'llvm/lib/Target/CellSPU/SPUISelLowering.h')
-rw-r--r--llvm/lib/Target/CellSPU/SPUISelLowering.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUISelLowering.h b/llvm/lib/Target/CellSPU/SPUISelLowering.h
index d9e4e7ed4ed..916f2c931fc 100644
--- a/llvm/lib/Target/CellSPU/SPUISelLowering.h
+++ b/llvm/lib/Target/CellSPU/SPUISelLowering.h
@@ -32,8 +32,7 @@ namespace llvm {
Lo, ///< Low address component (lower 16)
PCRelAddr, ///< Program counter relative address
AFormAddr, ///< A-form address (local store)
- DFormAddr, ///< D-Form address "imm($r)"
- XFormAddr, ///< X-Form address "$r($r)"
+ IndirectAddr, ///< D-Form "imm($r)" and X-form "$r($r)"
LDRESULT, ///< Load result (value, chain)
CALL, ///< CALL instruction
OpenPOWER on IntegriCloud