aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/Blackfin/README.txt
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2009-08-02 17:39:17 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2009-08-02 17:39:17 +0000
commit63cc527fbce3d1e4b47b687c404b1777fa15ffe5 (patch)
tree0cd6b5fa5f13421e7b72aff823868b7c7a2072a6 /lib/Target/Blackfin/README.txt
parent73b7bb7b07fdf63f699698d4027dd981fd46ce80 (diff)
downloadexternal_llvm-63cc527fbce3d1e4b47b687c404b1777fa15ffe5.zip
external_llvm-63cc527fbce3d1e4b47b687c404b1777fa15ffe5.tar.gz
external_llvm-63cc527fbce3d1e4b47b687c404b1777fa15ffe5.tar.bz2
Inline assembly support for Blackfin.
We use the same constraints as GCC, including those that are slightly insane for inline assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77899 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Blackfin/README.txt')
-rw-r--r--lib/Target/Blackfin/README.txt50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/Target/Blackfin/README.txt b/lib/Target/Blackfin/README.txt
index 4631c12..67c1e51 100644
--- a/lib/Target/Blackfin/README.txt
+++ b/lib/Target/Blackfin/README.txt
@@ -41,6 +41,56 @@ should keep track of:
It's a hack combining two instructions by concatenation.
* Inline Assembly
+
+These are the GCC constraints from bfin/constraints.md:
+
+| Code | Register class | LLVM |
+|-------+-------------------------------------------+------|
+| a | P | C |
+| d | D | C |
+| z | Call clobbered P (P0, P1, P2) | X |
+| D | EvenD | X |
+| W | OddD | X |
+| e | Accu | C |
+| A | A0 | S |
+| B | A1 | S |
+| b | I | C |
+| v | B | C |
+| f | M | C |
+| c | Circular I, B, L | X |
+| C | JustCC | S |
+| t | LoopTop | X |
+| u | LoopBottom | X |
+| k | LoopCount | X |
+| x | GR | C |
+| y | RET*, ASTAT, SEQSTAT, USP | X |
+| w | ALL | C |
+| Z | The FD-PIC GOT pointer (P3) | S |
+| Y | The FD-PIC function pointer register (P1) | S |
+| q0-q7 | R0-R7 individually | |
+| qA | P0 | |
+|-------+-------------------------------------------+------|
+| Code | Constant | |
+|-------+-------------------------------------------+------|
+| J | 1<<N, N<32 | |
+| Ks3 | imm3 | |
+| Ku3 | uimm3 | |
+| Ks4 | imm4 | |
+| Ku4 | uimm4 | |
+| Ks5 | imm5 | |
+| Ku5 | uimm5 | |
+| Ks7 | imm7 | |
+| KN7 | -imm7 | |
+| Ksh | imm16 | |
+| Kuh | uimm16 | |
+| L | ~(1<<N) | |
+| M1 | 0xff | |
+| M2 | 0xffff | |
+| P0-P4 | 0-4 | |
+| PA | Macflag, not M | |
+| PB | Macflag, only M | |
+| Q | Symbol | |
+
** TODO Support all register classes
* DAG combiner
** Create test case for each Illegal SETCC case