diff --git a/basis/cpu/x86/x86-tests.factor b/basis/cpu/x86/x86-tests.factor index 1786810047..5e61d3c34c 100644 --- a/basis/cpu/x86/x86-tests.factor +++ b/basis/cpu/x86/x86-tests.factor @@ -74,6 +74,11 @@ cpu x86.64? [ ] unit-test ] when +! %load-immediate +{ B{ 49 201 } } [ + [ RCX 0 %load-immediate ] B{ } make +] unit-test + ! %prologue { t } [ [ 2 cells %prologue ] B{ } make diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index 1a9af24b63..5462587280 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -61,7 +61,7 @@ M: x86 test-instruction? t ; M: x86 immediate-store? immediate-comparand? ; -M: x86 %load-immediate [ dup XOR ] [ MOV ] if-zero ; +M: x86 %load-immediate [ 32-bit-version-of dup XOR ] [ MOV ] if-zero ; M: x86 %load-reference [ swap 0 MOV rc-absolute-cell rel-literal ]