From 7d24459bb8a21bf4920386d93df1cf83a8ef3ae0 Mon Sep 17 00:00:00 2001 From: Slava Pestov <slava@slava-pestovs-macbook-pro.local> Date: Wed, 31 Mar 2010 20:47:13 -0400 Subject: [PATCH] cpu.x86.assembler: add segment override prefixes --- basis/cpu/x86/assembler/assembler-tests.factor | 2 ++ basis/cpu/x86/assembler/assembler.factor | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/basis/cpu/x86/assembler/assembler-tests.factor b/basis/cpu/x86/assembler/assembler-tests.factor index 531110da7b..0a6ae5a484 100644 --- a/basis/cpu/x86/assembler/assembler-tests.factor +++ b/basis/cpu/x86/assembler/assembler-tests.factor @@ -164,3 +164,5 @@ IN: cpu.x86.assembler.tests [ { 15 183 195 } ] [ [ EAX BX MOVZX ] { } make ] unit-test +[ { 100 199 5 0 0 0 0 123 0 0 0 } ] [ [ 0 [] FS 123 MOV ] { } make ] unit-test + diff --git a/basis/cpu/x86/assembler/assembler.factor b/basis/cpu/x86/assembler/assembler.factor index b075b121a5..32eeaaad1d 100644 --- a/basis/cpu/x86/assembler/assembler.factor +++ b/basis/cpu/x86/assembler/assembler.factor @@ -188,6 +188,13 @@ M: register displacement, drop ; PRIVATE> +! Segment override prefixes +: CS ( -- ) HEX: 2e , ; +: ES ( -- ) HEX: 26 , ; +: SS ( -- ) HEX: 36 , ; +: FS ( -- ) HEX: 64 , ; +: GS ( -- ) HEX: 65 , ; + ! Moving stuff GENERIC: PUSH ( op -- ) M: register PUSH f HEX: 50 short-operand ;