diff options
author | David Schleef <ds@bigkitten.com> | 2008-05-23 15:22:41 -0700 |
---|---|---|
committer | David Schleef <ds@bigkitten.com> | 2008-05-23 15:22:41 -0700 |
commit | 5daeffaf9ad18cc9e5c4d22fe928c284bdb4102a (patch) | |
tree | fcc3fabb5bebf309e3cdde3920526a71cf831902 | |
parent | 4f76bda40977c581691e47b2ae78334b3651c01f (diff) | |
download | liboil-5daeffaf9ad18cc9e5c4d22fe928c284bdb4102a.tar.gz |
[orc] fixes on x86-64
-rw-r--r-- | orc/orcprogram-x86.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/orc/orcprogram-x86.c b/orc/orcprogram-x86.c index bad1b51..67ddd49 100644 --- a/orc/orcprogram-x86.c +++ b/orc/orcprogram-x86.c @@ -71,9 +71,10 @@ enum { X86_MM6, X86_MM7, X86_XMM0 = ORC_VEC2_REG_BASE, + X86_XMM1 }; -#ifdef HAVE_X86_64 +#ifdef HAVE_AMD64 static int x86_64 = 1; static int x86_ptr_size = 8; static int x86_exec_ptr = X86_EDI; @@ -295,6 +296,12 @@ orc_program_x86_init (OrcProgram *program) for(i=X86_XMM0;i<X86_XMM0+16;i++){ program->valid_regs[i] = 1; } + program->save_regs[X86_EBX] = 1; + program->save_regs[X86_EBP] = 1; + program->save_regs[X86_R12] = 1; + program->save_regs[X86_R13] = 1; + program->save_regs[X86_R14] = 1; + program->save_regs[X86_R15] = 1; } else { for(i=ORC_GP_REG_BASE;i<ORC_GP_REG_BASE+8;i++){ program->valid_regs[i] = 1; @@ -305,6 +312,9 @@ orc_program_x86_init (OrcProgram *program) for(i=X86_XMM0;i<X86_XMM0+8;i++){ program->valid_regs[i] = 1; } + program->save_regs[X86_EBX] = 1; + program->save_regs[X86_EDI] = 1; + program->save_regs[X86_EBP] = 1; } for(i=X86_MM0;i<X86_MM0+8;i++){ program->valid_regs[i] = 1; |