From 62e73da6124758c2e8c2a75defac2da092a93941 Mon Sep 17 00:00:00 2001 From: Shinichiro Hamaji Date: Sun, 15 Mar 2009 14:50:38 +0900 Subject: A uint64 bug fix on x86-64 64bit unsigned literal was handled as 32bit integer. Added a unittest to catch this. --- x86_64-gen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'x86_64-gen.c') diff --git a/x86_64-gen.c b/x86_64-gen.c index 2435d4d..cfaf84c 100644 --- a/x86_64-gen.c +++ b/x86_64-gen.c @@ -312,7 +312,7 @@ void load(int r, SValue *sv) gen_modrm(r, fr, sv->sym, fc); } else { if (v == VT_CONST) { - if ((ft & VT_TYPE) == VT_LLONG) { + if ((ft & VT_BTYPE) == VT_LLONG) { o(0x48); o(0xb8 + REG_VALUE(r)); /* mov $xx, r */ gen_addr64(fr, sv->sym, sv->c.ull); -- cgit v1.3.1