| Index: src/ppc/simulator-ppc.cc | 
| diff --git a/src/ppc/simulator-ppc.cc b/src/ppc/simulator-ppc.cc | 
| index cdce60eb5980f73ffa5015b0199a3595d454e137..88cc760d2d3efe0365708934d43f6d61beecb6ce 100644 | 
| --- a/src/ppc/simulator-ppc.cc | 
| +++ b/src/ppc/simulator-ppc.cc | 
| @@ -1863,6 +1863,22 @@ bool Simulator::ExecuteExt2_10bit(Instruction* instr) { | 
| set_register(ra, count); | 
| break; | 
| } | 
| +#if V8_TARGET_ARCH_PPC64 | 
| +    case POPCNTD: { | 
| +      int rs = instr->RSValue(); | 
| +      int ra = instr->RAValue(); | 
| +      uintptr_t rs_val = get_register(rs); | 
| +      uintptr_t count = 0; | 
| +      int n = 0; | 
| +      uintptr_t bit = 0x8000000000000000UL; | 
| +      for (; n < 64; n++) { | 
| +        if (bit & rs_val) count++; | 
| +        bit >>= 1; | 
| +      } | 
| +      set_register(ra, count); | 
| +      break; | 
| +    } | 
| +#endif | 
| case SYNC: { | 
| // todo - simulate sync | 
| break; | 
|  |