summaryrefslogtreecommitdiff
path: root/lib/Target/CellSPU/README.txt
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2009-01-21 04:58:48 +0000
committerScott Michel <scottm@aero.org>2009-01-21 04:58:48 +0000
commitd1e8d9c0a5dc821b6b52f7872181edeeec5df7ba (patch)
tree9a7cce0982522a10489d3dddc01c871af0d220a3 /lib/Target/CellSPU/README.txt
parentbb326bbe88d0b243d5d9d224308eb0c028d4d4af (diff)
downloadllvm-d1e8d9c0a5dc821b6b52f7872181edeeec5df7ba.tar.gz
llvm-d1e8d9c0a5dc821b6b52f7872181edeeec5df7ba.tar.bz2
llvm-d1e8d9c0a5dc821b6b52f7872181edeeec5df7ba.tar.xz
CellSPU:
- Ensure that (operation) legalization emits proper FDIV libcall when needed. - Fix various bugs encountered during llvm-spu-gcc build, along with various cleanups. - Start supporting double precision comparisons for remaining libgcc2 build. Discovered interesting DAGCombiner feature, which is currently solved via custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner insists on inserting one anyway.) - Update README. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62664 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/CellSPU/README.txt')
-rw-r--r--lib/Target/CellSPU/README.txt37
1 files changed, 30 insertions, 7 deletions
diff --git a/lib/Target/CellSPU/README.txt b/lib/Target/CellSPU/README.txt
index 083867ff78..4783dd5d24 100644
--- a/lib/Target/CellSPU/README.txt
+++ b/lib/Target/CellSPU/README.txt
@@ -8,7 +8,7 @@ Department in The Aerospace Corporation:
- Mark Thomas (floating point instructions)
- Michael AuYeung (intrinsics)
- Chandler Carruth (LLVM expertise)
-- Nehal Desai (debugging, RoadRunner SPU expertise)
+- Nehal Desai (debugging, i32 operations, RoadRunner SPU expertise)
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
@@ -36,7 +36,7 @@ to add 'spu' to configure's --enable-targets option, e.g.:
TODO:
* Create a machine pass for performing dual-pipeline scheduling specifically
- for CellSPU, handle inserting branch prediction instructions.
+ for CellSPU, and insert branch prediction instructions as needed.
* i32 instructions:
@@ -48,20 +48,43 @@ TODO:
* sign and zero extension: done
* addition: done
* subtraction: needed
- * multiplication: work-in-progress
+ * multiplication: done
* i128 support:
- * zero extension: done
+ * zero extension, any extension: done
* sign extension: needed
* arithmetic operators (add, sub, mul, div): needed
+ * logical operations (and, or, shl, srl, sra, xor, nor, nand): needed
-* Double floating point support
+ * or: done
- This was started. "What's missing?" to be filled in.
+* f64 support
+
+ * Comparison operators:
+ SETOEQ unimplemented
+ SETOGT unimplemented
+ SETOGE unimplemented
+ SETOLT unimplemented
+ SETOLE unimplemented
+ SETONE unimplemented
+ SETO done (lowered)
+ SETUO done (lowered)
+ SETUEQ unimplemented
+ SETUGT unimplemented
+ SETUGE unimplemented
+ SETULT unimplemented
+ SETULE unimplemented
+ SETUNE unimplemented
+
+* LLVM vector suport
+
+ * VSETCC needs to be implemented. It's pretty straightforward to code, but
+ needs implementation.
* Intrinsics
- Lots of progress. "What's missing/incomplete?" to be filled in.
+ * spu.h instrinsics added but not tested. Need to have an operational
+ llvm-spu-gcc in order to write a unit test harness.
===-------------------------------------------------------------------------===