From 51185a88a63762c5347b729e26ab9540c34201da Mon Sep 17 00:00:00 2001 From: Andrei Alexandrescu Date: Sun, 17 May 2015 13:28:03 -0700 Subject: [PATCH] Merge pull request #4666 from WalterBright/fix14587 fix Issue 14587 - generated 64 bit code for switch jump tables is wrong --- src/backend/cod3.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/backend/cod3.c b/src/backend/cod3.c index a7bc15188adb..db72be41b99a 100644 --- a/src/backend/cod3.c +++ b/src/backend/cod3.c @@ -1393,6 +1393,8 @@ void doswitch(block *b) if (vmax - vmin != REGMASK) /* if there is a maximum */ { /* CMP reg,vmax-vmin */ c = genc2(c,0x81,modregrm(3,7,reg),vmax-vmin); + if (I64) + code_orrex(c, REX_W); genjmp(c,JA,FLblock,list_block(b->Bsucc)); /* JA default */ } if (I64)