From b307c6dac309bde5c572c682ba41f268702b8d6a Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 2 Sep 2009 07:28:40 -0500 Subject: [PATCH 1/3] Fix tree shaker again, gah --- basis/tools/deploy/shaker/strip-struct-arrays.factor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/basis/tools/deploy/shaker/strip-struct-arrays.factor b/basis/tools/deploy/shaker/strip-struct-arrays.factor index b83adc401a..022b5f1de9 100644 --- a/basis/tools/deploy/shaker/strip-struct-arrays.factor +++ b/basis/tools/deploy/shaker/strip-struct-arrays.factor @@ -1,5 +1,5 @@ -USING: kernel stack-checker.transforms struct-arrays.private ; -IN: struct-arrays +USING: kernel stack-checker.transforms ; +IN: struct-arrays.private : struct-element-constructor ( c-type -- word ) "Struct array usages must be compiled" throw ; From 962d560c1073428c54ac34e6bea5a5f38437dd9a Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 2 Sep 2009 11:06:08 -0500 Subject: [PATCH 2/3] get rid of useless mm->xmm instructions in cpu.x86.assembler, add MOVHLPS and MOVLHPS --- basis/cpu/x86/assembler/assembler.factor | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/basis/cpu/x86/assembler/assembler.factor b/basis/cpu/x86/assembler/assembler.factor index b2de0cc6e4..ba729f3db5 100644 --- a/basis/cpu/x86/assembler/assembler.factor +++ b/basis/cpu/x86/assembler/assembler.factor @@ -420,16 +420,14 @@ PRIVATE> : MOVUPD ( dest src -- ) HEX: 10 HEX: 66 2-operand-sse ; : MOVSD ( dest src -- ) HEX: 10 HEX: f2 2-operand-sse ; : MOVSS ( dest src -- ) HEX: 10 HEX: f3 2-operand-sse ; -: MOVLPS ( dest src -- ) HEX: 12 f 2-operand-sse ; -: MOVLPD ( dest src -- ) HEX: 12 HEX: 66 2-operand-sse ; +: MOVHLPS ( dest src -- ) HEX: 12 f 2-operand-sse ; : MOVDDUP ( dest src -- ) HEX: 12 HEX: f2 2-operand-rm-sse ; : MOVSLDUP ( dest src -- ) HEX: 12 HEX: f3 2-operand-rm-sse ; : UNPCKLPS ( dest src -- ) HEX: 14 f 2-operand-rm-sse ; : UNPCKLPD ( dest src -- ) HEX: 14 HEX: 66 2-operand-rm-sse ; : UNPCKHPS ( dest src -- ) HEX: 15 f 2-operand-rm-sse ; : UNPCKHPD ( dest src -- ) HEX: 15 HEX: 66 2-operand-rm-sse ; -: MOVHPS ( dest src -- ) HEX: 16 f 2-operand-sse ; -: MOVHPD ( dest src -- ) HEX: 16 HEX: 66 2-operand-sse ; +: MOVLHPS ( dest src -- ) HEX: 16 f 2-operand-sse ; : MOVSHDUP ( dest src -- ) HEX: 16 HEX: f3 2-operand-rm-sse ; : PREFETCHNTA ( mem -- ) { BIN: 000 f { HEX: 0f HEX: 18 } } 1-operand ; From 102df64ec7f1d3efa66cbe0295e195b9426e8f22 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Wed, 2 Sep 2009 12:58:35 -0500 Subject: [PATCH 3/3] i suck at reading tech docs--those were m64 instructions, not mm instructions --- basis/cpu/x86/assembler/assembler.factor | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/basis/cpu/x86/assembler/assembler.factor b/basis/cpu/x86/assembler/assembler.factor index ba729f3db5..ead1c8a695 100644 --- a/basis/cpu/x86/assembler/assembler.factor +++ b/basis/cpu/x86/assembler/assembler.factor @@ -420,16 +420,21 @@ PRIVATE> : MOVUPD ( dest src -- ) HEX: 10 HEX: 66 2-operand-sse ; : MOVSD ( dest src -- ) HEX: 10 HEX: f2 2-operand-sse ; : MOVSS ( dest src -- ) HEX: 10 HEX: f3 2-operand-sse ; -: MOVHLPS ( dest src -- ) HEX: 12 f 2-operand-sse ; +: MOVLPS ( dest src -- ) HEX: 12 f 2-operand-sse ; +: MOVLPD ( dest src -- ) HEX: 12 HEX: 66 2-operand-sse ; : MOVDDUP ( dest src -- ) HEX: 12 HEX: f2 2-operand-rm-sse ; : MOVSLDUP ( dest src -- ) HEX: 12 HEX: f3 2-operand-rm-sse ; : UNPCKLPS ( dest src -- ) HEX: 14 f 2-operand-rm-sse ; : UNPCKLPD ( dest src -- ) HEX: 14 HEX: 66 2-operand-rm-sse ; : UNPCKHPS ( dest src -- ) HEX: 15 f 2-operand-rm-sse ; : UNPCKHPD ( dest src -- ) HEX: 15 HEX: 66 2-operand-rm-sse ; -: MOVLHPS ( dest src -- ) HEX: 16 f 2-operand-sse ; +: MOVHPS ( dest src -- ) HEX: 16 f 2-operand-sse ; +: MOVHPD ( dest src -- ) HEX: 16 HEX: 66 2-operand-sse ; : MOVSHDUP ( dest src -- ) HEX: 16 HEX: f3 2-operand-rm-sse ; +ALIAS: MOVHLPS MOVLPS +ALIAS: MOVLHPS MOVHPS + : PREFETCHNTA ( mem -- ) { BIN: 000 f { HEX: 0f HEX: 18 } } 1-operand ; : PREFETCHT0 ( mem -- ) { BIN: 001 f { HEX: 0f HEX: 18 } } 1-operand ; : PREFETCHT1 ( mem -- ) { BIN: 010 f { HEX: 0f HEX: 18 } } 1-operand ;