factor/basis/cpu/x86
Slava Pestov 45a2105449 cpu.x86.assembler: IMUL2 instruction was busted for immediate operands
When given a register and an immediate, it would generate imul imm,dst,dst however the 64-bit prefix was generated wrong and if dst was an extended register only the first operand would be an extended register. To fix this, change IMUL2 to not work on immediates anymore, and added a new IMUL3 that takes a destination register, source register, and immediate. Also, change compiler.cfg.two-operand to not two-operandize %mul-imm, since this isn't needed anymore.
This fixes the sporadic benchmark.tuple-arrays crash on 64-bit machines.
2009-06-08 21:15:52 -05:00
..
32 Fix 32-bit bootstrap 2009-06-03 03:23:55 -05:00
64 GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
assembler cpu.x86.assembler: IMUL2 instruction was busted for immediate operands 2009-06-08 21:15:52 -05:00
features cpu.x86.features: add RDTSC support. This is a new vocabulary with words: sse2? instruction-counter count-instructions 2009-05-31 15:02:14 -05:00
authors.txt Create basis vocab root 2008-07-28 22:03:13 -05:00
bootstrap.factor Fix x86-64 backend 2009-05-07 16:58:18 -05:00
summary.txt Create basis vocab root 2008-07-28 22:03:13 -05:00
tags.txt Add unportable tag 2008-11-06 09:29:21 -06:00
x86.factor cpu.x86.assembler: IMUL2 instruction was busted for immediate operands 2009-06-08 21:15:52 -05:00