Get the AMD64 back-end show on the road.
git-svn-id: svn://svn.valgrind.org/vex/trunk@810 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/main/vex_main.c b/priv/main/vex_main.c
index 3c99420..01567a0 100644
--- a/priv/main/vex_main.c
+++ b/priv/main/vex_main.c
@@ -46,6 +46,7 @@
#include "ir/iropt.h"
#include "host-x86/hdefs.h"
+#include "host-amd64/hdefs.h"
#include "guest-x86/gdefs.h"
#include "guest-amd64/gdefs.h"
@@ -265,6 +266,23 @@
|| subarch_host == VexSubArchX86_sse2);
break;
+ case VexArchAMD64:
+ getAllocableRegs_AMD64 ( &n_available_real_regs,
+ &available_real_regs );
+ isMove = (Bool(*)(HInstr*,HReg*,HReg*)) isMove_AMD64Instr;
+ getRegUsage = (void(*)(HRegUsage*,HInstr*)) getRegUsage_AMD64Instr;
+ mapRegs = (void(*)(HRegRemap*,HInstr*)) mapRegs_AMD64Instr;
+ genSpill = (HInstr*(*)(HReg,Int)) genSpill_AMD64;
+ genReload = (HInstr*(*)(HReg,Int)) genReload_AMD64;
+ ppInstr = (void(*)(HInstr*)) ppAMD64Instr;
+ ppReg = (void(*)(HReg)) ppHRegAMD64;
+ iselBB = iselBB_AMD64;
+ emit = (Int(*)(UChar*,Int,HInstr*)) emit_AMD64Instr;
+ host_is_bigendian = False;
+ host_word_type = Ity_I64;
+ vassert(subarch_host == VexSubArch_NONE);
+ break;
+
default:
vpanic("LibVEX_Translate: unsupported target insn set");
}
@@ -433,6 +451,8 @@
vex_printf("\n");
}
+ if (0) { *host_bytes_used = 0; return VexTransOK; }
+
if (vex_traceflags & VEX_TRACE_VCODE)
vex_printf("\n------------------------"
" Instruction selection "