Verified Commit 9defdb4a authored by Bernd Paysan's avatar Bernd Paysan
Browse files

Some improvements to see/disassembler

parent fd2e8b4d
Loading
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -416,7 +416,9 @@ Create fopatable
\ sse instructions
\ sse instructions


: .s/p ( -- ) 's' 'p' s? select emit ;
: .s/p ( -- ) 's' 'p' s? select emit ;
: .p/s ( -- ) 'p' 's' s? select emit ;
: .s/d ( -- ) 's' 'd' s? IF ss? ELSE length @ 0= THEN select emit ;
: .s/d ( -- ) 's' 'd' s? IF ss? ELSE length @ 0= THEN select emit ;
: .d/s ( -- ) 'd' 's' s? IF ss? ELSE length @ 0= THEN select emit ;


: .sse-suff ( -- ) .s/p .s/d ;
: .sse-suff ( -- ) .s/p .s/d ;
: .ssereg ( n -- n ) 'y' 'x' l? select emit ." mm" #.r ;
: .ssereg ( n -- n ) 'y' 'x' l? select emit ." mm" #.r ;
@@ -443,6 +445,13 @@ Create fopatable
: .cvtb ( ip -- ip' ) .sse-suff '2' emit .s/p 'i' emit tab mod@ >r?
: .cvtb ( ip -- ip' ) .sse-suff '2' emit .s/p 'i' emit tab mod@ >r?
    >r .sseaddr ., r> .ssereg
    >r .sseaddr ., r> .ssereg
    vex? IF vvvv @ .ssereg ., THEN ;
    vex? IF vvvv @ .ssereg ., THEN ;
: .cvt2 ( ip -- ip' ) .sse-suff '2' emit .s/p .d/s tab mod@ >r?
    .ssereg ., .sseaddr
    vex? IF vvvv @ .ssereg ., THEN ;
: .cvt3 ( ip -- ip' ) \ incomplete, undested!
    .sse-suff '2' emit .s/p tab mod@ >r?
    .ssereg ., .sseaddr
    vex? IF vvvv @ .ssereg ., THEN ;
: .ssec ( ip -- ip' )
: .ssec ( ip -- ip' )
    .s/d tab mod@ >r? .ssereg .,
    .s/d tab mod@ >r? .ssereg .,
    vex? IF vvvv @ .ssereg ., THEN
    vex? IF vvvv @ .ssereg ., THEN
@@ -467,6 +476,7 @@ FF 52 t, .sse rsqrt" FF 53 t, .sse rcp"
FF 54 t, .sse and"              FF 55 t, .sse andn"
FF 54 t, .sse and"              FF 55 t, .sse andn"
FF 56 t, .sse or"               FF 57 t, .sse xor"
FF 56 t, .sse or"               FF 57 t, .sse xor"
FF 58 t, .sse add"              FF 59 t, .sse mul"
FF 58 t, .sse add"              FF 59 t, .sse mul"
FF 5A t, .cvt2 cvt"             FF 5B t, .cvt3 cvt"
FF 5C t, .sse sub"              FF 5D t, .sse min"
FF 5C t, .sse sub"              FF 5D t, .sse min"
FF 5E t, .sse div"              FF 5F t, .sse max"
FF 5E t, .sse div"              FF 5F t, .sse max"
F0 80 t, .jl j"                 F0 90 t, .set set"
F0 80 t, .jl j"                 F0 90 t, .set set"
+2 −1
Original line number Original line Diff line number Diff line
@@ -3291,7 +3291,8 @@ vt: [G'] peephole-compile, gset-optimizer ;vt
Builder does>-dummy
Builder does>-dummy
Build: ;Build
Build: ;Build
by: :dodoes ;DO
by: :dodoes ;DO
vt: [G'] does, gset-optimizer ;vt
vt: [G'] does, gset-optimizer
    [G'] noop  gset-extra  ;vt
\ vtghost: dodoes-vt
\ vtghost: dodoes-vt


\ Variables and Constants                              05dec92py
\ Variables and Constants                              05dec92py
+8 −0
Original line number Original line Diff line number Diff line
@@ -832,6 +832,11 @@ c-extender !
    >body dup dup next-head 
    >body dup dup next-head 
    swap - discode
    swap - discode
    ." end-code" cr ;
    ." end-code" cr ;
: see;abicode ( xt -- )
    dup s" ;ABI-Code" .defname
    >body dup dup next-head 
    swap - discode
    ." end-code" cr ;
: seevar ( xt -- )
: seevar ( xt -- )
    s" Variable" .defname cr ;
    s" Variable" .defname cr ;
: seeuser ( xt -- )
: seeuser ( xt -- )
@@ -918,6 +923,9 @@ set-current
[THEN]
[THEN]
[IFDEF] doabicode:
[IFDEF] doabicode:
        doabicode: of seeabicode endof
        doabicode: of seeabicode endof
[THEN]
[IFDEF] do;abicode:
        do;abicode: of see;abicode endof
[THEN]
[THEN]
	over       of seecode endof \ direct threaded code words
	over       of seecode endof \ direct threaded code words
	over >body of seecode endof \ indirect threaded code words
	over >body of seecode endof \ indirect threaded code words