summaryrefslogtreecommitdiff
path: root/ortho/mcode/ortho_code-x86.ads
diff options
context:
space:
mode:
authorgingold2009-08-13 03:59:39 +0000
committergingold2009-08-13 03:59:39 +0000
commitd1fddff66ad93c7efe5761a94029fa300d35aa4b (patch)
treefa4807be06a130234ad01e9df9e48dbd5ec4115f /ortho/mcode/ortho_code-x86.ads
parent755b49ce34a14ff78d6065b1627248b1b9fac06b (diff)
downloadghdl-d1fddff66ad93c7efe5761a94029fa300d35aa4b.tar.gz
ghdl-d1fddff66ad93c7efe5761a94029fa300d35aa4b.tar.bz2
ghdl-d1fddff66ad93c7efe5761a94029fa300d35aa4b.zip
Preliminary work for LLVM.
Preliminary work for SSE.
Diffstat (limited to 'ortho/mcode/ortho_code-x86.ads')
-rw-r--r--ortho/mcode/ortho_code-x86.ads23
1 files changed, 23 insertions, 0 deletions
diff --git a/ortho/mcode/ortho_code-x86.ads b/ortho/mcode/ortho_code-x86.ads
index 235f1c1..24be1eb 100644
--- a/ortho/mcode/ortho_code-x86.ads
+++ b/ortho/mcode/ortho_code-x86.ads
@@ -113,6 +113,29 @@ package Ortho_Code.X86 is
subtype Regs_R64 is O_Reg range R_Edx_Eax .. R_Esi_Edi;
+ R_Any_Xmm : constant O_Reg := 79;
+
+ R_Xmm0 : constant O_Reg := 80;
+ R_Xmm1 : constant O_Reg := R_Xmm0 + 1;
+ R_Xmm2 : constant O_Reg := R_Xmm0 + 2;
+ R_Xmm3 : constant O_Reg := R_Xmm0 + 3;
+ R_Xmm4 : constant O_Reg := R_Xmm0 + 4;
+ R_Xmm5 : constant O_Reg := R_Xmm0 + 5;
+ R_Xmm6 : constant O_Reg := R_Xmm0 + 6;
+ R_Xmm7 : constant O_Reg := R_Xmm0 + 7;
+ R_Xmm8 : constant O_Reg := R_Xmm0 + 8;
+ R_Xmm9 : constant O_Reg := R_Xmm0 + 9;
+ R_Xmm10 : constant O_Reg := R_Xmm0 + 10;
+ R_Xmm11 : constant O_Reg := R_Xmm0 + 11;
+ R_Xmm12 : constant O_Reg := R_Xmm0 + 12;
+ R_Xmm13 : constant O_Reg := R_Xmm0 + 13;
+ R_Xmm14 : constant O_Reg := R_Xmm0 + 14;
+ R_Xmm15 : constant O_Reg := R_Xmm0 + 15;
+
+ subtype Regs_X86_64_Xmm is O_Reg range R_Xmm0 .. R_Xmm15;
+ subtype Regs_X86_Xmm is O_Reg range R_Xmm0 .. R_Xmm7;
+ subtype Regs_Xmm is O_Reg range R_Xmm0 .. R_Xmm15;
+
function Get_R64_High (Reg : Regs_R64) return Regs_R32;
function Get_R64_Low (Reg : Regs_R64) return Regs_R32;