use radix literals
parent
e738c7206c
commit
943596575a
|
@ -20,37 +20,37 @@ STRUCT: endian-struct
|
|||
{ l be64 } ;
|
||||
|
||||
CONSTANT: endian-bytes-0f B{
|
||||
HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: ff
|
||||
0x0 0xff
|
||||
0x0 0xff
|
||||
0x0 0xff
|
||||
0x0 0xff
|
||||
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0xff
|
||||
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: ff
|
||||
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff
|
||||
0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xff
|
||||
}
|
||||
|
||||
CONSTANT: endian-bytes-f0 B{
|
||||
HEX: ff HEX: 0
|
||||
HEX: ff HEX: 0
|
||||
HEX: ff HEX: 0
|
||||
HEX: ff HEX: 0
|
||||
0xff 0x0
|
||||
0xff 0x0
|
||||
0xff 0x0
|
||||
0xff 0x0
|
||||
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0
|
||||
0xff 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0
|
||||
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0
|
||||
HEX: ff HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0 HEX: 0
|
||||
0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
}
|
||||
|
||||
: endian-test-struct-0f ( -- obj )
|
||||
|
@ -59,36 +59,36 @@ CONSTANT: endian-bytes-f0 B{
|
|||
: endian-test-struct-f0 ( -- obj )
|
||||
endian-bytes-f0 endian-struct memory>struct ;
|
||||
|
||||
[ HEX: ff00 ] [ endian-test-struct-0f a>> ] unit-test
|
||||
[ 0xff00 ] [ endian-test-struct-0f a>> ] unit-test
|
||||
[ -256 ] [ endian-test-struct-0f b>> ] unit-test
|
||||
[ HEX: 00ff ] [ endian-test-struct-0f c>> ] unit-test
|
||||
[ HEX: 00ff ] [ endian-test-struct-0f d>> ] unit-test
|
||||
[ 0x00ff ] [ endian-test-struct-0f c>> ] unit-test
|
||||
[ 0x00ff ] [ endian-test-struct-0f d>> ] unit-test
|
||||
|
||||
[ HEX: ff000000 ] [ endian-test-struct-0f e>> ] unit-test
|
||||
[ 0xff000000 ] [ endian-test-struct-0f e>> ] unit-test
|
||||
[ -16777216 ] [ endian-test-struct-0f f>> ] unit-test
|
||||
[ HEX: 000000ff ] [ endian-test-struct-0f g>> ] unit-test
|
||||
[ HEX: 000000ff ] [ endian-test-struct-0f h>> ] unit-test
|
||||
[ 0x000000ff ] [ endian-test-struct-0f g>> ] unit-test
|
||||
[ 0x000000ff ] [ endian-test-struct-0f h>> ] unit-test
|
||||
|
||||
[ HEX: ff00000000000000 ] [ endian-test-struct-0f i>> ] unit-test
|
||||
[ 0xff00000000000000 ] [ endian-test-struct-0f i>> ] unit-test
|
||||
[ -72057594037927936 ] [ endian-test-struct-0f j>> ] unit-test
|
||||
[ HEX: 00000000000000ff ] [ endian-test-struct-0f k>> ] unit-test
|
||||
[ HEX: 00000000000000ff ] [ endian-test-struct-0f l>> ] unit-test
|
||||
[ 0x00000000000000ff ] [ endian-test-struct-0f k>> ] unit-test
|
||||
[ 0x00000000000000ff ] [ endian-test-struct-0f l>> ] unit-test
|
||||
|
||||
|
||||
[ HEX: ff00 ] [ endian-test-struct-f0 c>> ] unit-test
|
||||
[ 0xff00 ] [ endian-test-struct-f0 c>> ] unit-test
|
||||
[ -256 ] [ endian-test-struct-f0 d>> ] unit-test
|
||||
[ HEX: 00ff ] [ endian-test-struct-f0 a>> ] unit-test
|
||||
[ HEX: 00ff ] [ endian-test-struct-f0 b>> ] unit-test
|
||||
[ 0x00ff ] [ endian-test-struct-f0 a>> ] unit-test
|
||||
[ 0x00ff ] [ endian-test-struct-f0 b>> ] unit-test
|
||||
|
||||
[ HEX: ff000000 ] [ endian-test-struct-f0 g>> ] unit-test
|
||||
[ 0xff000000 ] [ endian-test-struct-f0 g>> ] unit-test
|
||||
[ -16777216 ] [ endian-test-struct-f0 h>> ] unit-test
|
||||
[ HEX: 000000ff ] [ endian-test-struct-f0 e>> ] unit-test
|
||||
[ HEX: 000000ff ] [ endian-test-struct-f0 f>> ] unit-test
|
||||
[ 0x000000ff ] [ endian-test-struct-f0 e>> ] unit-test
|
||||
[ 0x000000ff ] [ endian-test-struct-f0 f>> ] unit-test
|
||||
|
||||
[ HEX: ff00000000000000 ] [ endian-test-struct-f0 k>> ] unit-test
|
||||
[ 0xff00000000000000 ] [ endian-test-struct-f0 k>> ] unit-test
|
||||
[ -72057594037927936 ] [ endian-test-struct-f0 l>> ] unit-test
|
||||
[ HEX: 00000000000000ff ] [ endian-test-struct-f0 i>> ] unit-test
|
||||
[ HEX: 00000000000000ff ] [ endian-test-struct-f0 j>> ] unit-test
|
||||
[ 0x00000000000000ff ] [ endian-test-struct-f0 i>> ] unit-test
|
||||
[ 0x00000000000000ff ] [ endian-test-struct-f0 j>> ] unit-test
|
||||
|
||||
[ t ]
|
||||
[ endian-test-struct-0f binary [ write ] with-byte-writer endian-bytes-0f = ] unit-test
|
||||
|
|
|
@ -24,7 +24,7 @@ MACRO: byte-reverse ( n signed? -- quot )
|
|||
[
|
||||
dup iota [
|
||||
[ 1 + - -8 * ] [ nip 8 * ] 2bi
|
||||
'[ _ shift HEX: ff bitand _ shift ]
|
||||
'[ _ shift 0xff bitand _ shift ]
|
||||
] with map
|
||||
] [ 1 - [ bitor ] n*quot ] bi
|
||||
] [
|
||||
|
|
|
@ -10,13 +10,13 @@ IN: ascii
|
|||
: LETTER? ( ch -- ? ) CHAR: A CHAR: Z between? ; inline
|
||||
: digit? ( ch -- ? ) CHAR: 0 CHAR: 9 between? ; inline
|
||||
: printable? ( ch -- ? ) CHAR: \s CHAR: ~ between? ; inline
|
||||
: control? ( ch -- ? ) { [ 0 HEX: 1F between? ] [ HEX: 7F = ] } 1|| ; inline
|
||||
: control? ( ch -- ? ) { [ 0 0x1F between? ] [ 0x7F = ] } 1|| ; inline
|
||||
: quotable? ( ch -- ? ) { [ printable? ] [ "\"\\" member? not ] } 1&& ; inline
|
||||
: Letter? ( ch -- ? ) { [ letter? ] [ LETTER? ] } 1|| ; inline
|
||||
: alpha? ( ch -- ? ) { [ Letter? ] [ digit? ] } 1|| ; inline
|
||||
: ch>lower ( ch -- lower ) dup LETTER? [ HEX: 20 + ] when ; inline
|
||||
: ch>lower ( ch -- lower ) dup LETTER? [ 0x20 + ] when ; inline
|
||||
: >lower ( str -- lower ) [ ch>lower ] map ;
|
||||
: ch>upper ( ch -- upper ) dup letter? [ HEX: 20 - ] when ; inline
|
||||
: ch>upper ( ch -- upper ) dup letter? [ 0x20 - ] when ; inline
|
||||
: >upper ( str -- upper ) [ ch>upper ] map ;
|
||||
|
||||
HINTS: >lower string ;
|
||||
|
|
|
@ -44,7 +44,7 @@ SYMBOL: column
|
|||
|
||||
: encode3 ( seq -- )
|
||||
be> 4 iota <reversed> [
|
||||
-6 * shift HEX: 3f bitand ch>base64 write1-lines
|
||||
-6 * shift 0x3f bitand ch>base64 write1-lines
|
||||
] with each ; inline
|
||||
|
||||
: encode-pad ( seq n -- )
|
||||
|
|
|
@ -67,12 +67,12 @@ IN: bit-arrays.tests
|
|||
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
|
||||
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
|
||||
} ] [
|
||||
HEX: ffffffffffffffffffffffffffffffff integer>bit-array
|
||||
0xffffffffffffffffffffffffffffffff integer>bit-array
|
||||
] unit-test
|
||||
|
||||
[ 14 ] [ ?{ f t t t } bit-array>integer ] unit-test
|
||||
[ 0 ] [ ?{ } bit-array>integer ] unit-test
|
||||
[ HEX: ffffffffffffffffffffffffffffffff ] [ ?{
|
||||
[ 0xffffffffffffffffffffffffffffffff ] [ ?{
|
||||
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
|
||||
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
|
||||
t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t
|
||||
|
@ -83,6 +83,6 @@ IN: bit-arrays.tests
|
|||
|
||||
[ 1 ] [ ?{ f t f t } byte-length ] unit-test
|
||||
|
||||
[ HEX: a ] [ ?{ f t f t } bit-array>integer ] unit-test
|
||||
[ 0xa ] [ ?{ f t f t } bit-array>integer ] unit-test
|
||||
|
||||
[ HEX: 100 ] [ ?{ f f f f f f f f t } bit-array>integer ] unit-test
|
||||
[ 0x100 ] [ ?{ f f f f f f f f t } bit-array>integer ] unit-test
|
||||
|
|
|
@ -5,44 +5,44 @@ grouping compression.lzw multiline byte-arrays io.encodings.binary
|
|||
io.streams.byte-array ;
|
||||
IN: bitstreams.tests
|
||||
|
||||
[ BIN: 1111111111 ]
|
||||
[ 0b1111111111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
10 swap peek
|
||||
] unit-test
|
||||
|
||||
[ BIN: 111111111 ]
|
||||
[ 0b111111111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
9 swap peek
|
||||
] unit-test
|
||||
|
||||
[ BIN: 11111111 ]
|
||||
[ 0b11111111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
8 swap peek
|
||||
] unit-test
|
||||
|
||||
[ BIN: 1111111 ]
|
||||
[ 0b1111111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
7 swap peek
|
||||
] unit-test
|
||||
|
||||
[ BIN: 111111 ]
|
||||
[ 0b111111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
6 swap peek
|
||||
] unit-test
|
||||
|
||||
[ BIN: 11111 ]
|
||||
[ 0b11111 ]
|
||||
[
|
||||
B{ HEX: 0f HEX: ff HEX: ff HEX: ff } <msb0-bit-reader>
|
||||
B{ 0x0f 0xff 0xff 0xff } <msb0-bit-reader>
|
||||
2 >>byte-pos 6 >>bit-pos
|
||||
5 swap peek
|
||||
] unit-test
|
||||
|
|
|
@ -87,7 +87,7 @@ SYMBOL: objects
|
|||
|
||||
! Constants
|
||||
|
||||
CONSTANT: image-magic HEX: 0f0e0d0c
|
||||
CONSTANT: image-magic 0x0f0e0d0c
|
||||
CONSTANT: image-version 4
|
||||
|
||||
CONSTANT: data-base 1024
|
||||
|
|
|
@ -77,9 +77,9 @@ ENUM: cairo_status_t
|
|||
CAIRO_STATUS_INVALID_WEIGHT ;
|
||||
|
||||
ENUM: cairo_content_t
|
||||
{ CAIRO_CONTENT_COLOR HEX: 1000 }
|
||||
{ CAIRO_CONTENT_ALPHA HEX: 2000 }
|
||||
{ CAIRO_CONTENT_COLOR_ALPHA HEX: 3000 } ;
|
||||
{ CAIRO_CONTENT_COLOR 0x1000 }
|
||||
{ CAIRO_CONTENT_ALPHA 0x2000 }
|
||||
{ CAIRO_CONTENT_COLOR_ALPHA 0x3000 } ;
|
||||
|
||||
CALLBACK: cairo_status_t
|
||||
cairo_write_func_t ( void* closure, uchar* data, uint length ) ;
|
||||
|
@ -385,7 +385,7 @@ FUNCTION: void
|
|||
cairo_text_cluster_free ( cairo_text_cluster_t* clusters ) ;
|
||||
|
||||
ENUM: cairo_text_cluster_flags_t
|
||||
{ CAIRO_TEXT_CLUSTER_FLAG_BACKWARD HEX: 00000001 } ;
|
||||
{ CAIRO_TEXT_CLUSTER_FLAG_BACKWARD 0x00000001 } ;
|
||||
|
||||
STRUCT: cairo_text_extents_t
|
||||
{ x_bearing double }
|
||||
|
|
|
@ -14,8 +14,8 @@ SYMBOL: bytes-read
|
|||
|
||||
: pad-last-block ( str big-endian? length -- str )
|
||||
[
|
||||
[ % ] 2dip HEX: 80 ,
|
||||
[ HEX: 3f bitand calculate-pad-length <byte-array> % ]
|
||||
[ % ] 2dip 0x80 ,
|
||||
[ 0x3f bitand calculate-pad-length <byte-array> % ]
|
||||
[ 3 shift 8 rot [ >be ] [ >le ] if % ] bi
|
||||
] B{ } make 64 group ;
|
||||
|
||||
|
|
|
@ -3,25 +3,25 @@ IN: checksums.fnv1.tests
|
|||
|
||||
! A few test vectors taken from http://www.isthe.com/chongo/src/fnv/test_fnv.c
|
||||
|
||||
[ HEX: 811c9dc5 ] [ "" fnv1-32 checksum-bytes ] unit-test
|
||||
[ HEX: 811c9dc5 ] [ "" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ HEX: cbf29ce484222325 ] [ "" fnv1-64 checksum-bytes ] unit-test
|
||||
[ HEX: cbf29ce484222325 ] [ "" fnv1a-64 checksum-bytes ] unit-test
|
||||
[ 0x811c9dc5 ] [ "" fnv1-32 checksum-bytes ] unit-test
|
||||
[ 0x811c9dc5 ] [ "" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ 0xcbf29ce484222325 ] [ "" fnv1-64 checksum-bytes ] unit-test
|
||||
[ 0xcbf29ce484222325 ] [ "" fnv1a-64 checksum-bytes ] unit-test
|
||||
|
||||
[ HEX: 050c5d7e ] [ "a" fnv1-32 checksum-bytes ] unit-test
|
||||
[ HEX: e40c292c ] [ "a" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ HEX: af63bd4c8601b7be ] [ "a" fnv1-64 checksum-bytes ] unit-test
|
||||
[ HEX: af63dc4c8601ec8c ] [ "a" fnv1a-64 checksum-bytes ] unit-test
|
||||
[ 0x050c5d7e ] [ "a" fnv1-32 checksum-bytes ] unit-test
|
||||
[ 0xe40c292c ] [ "a" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ 0xaf63bd4c8601b7be ] [ "a" fnv1-64 checksum-bytes ] unit-test
|
||||
[ 0xaf63dc4c8601ec8c ] [ "a" fnv1a-64 checksum-bytes ] unit-test
|
||||
|
||||
[ HEX: 050c5d7d ] [ "b" fnv1-32 checksum-bytes ] unit-test
|
||||
[ HEX: e70c2de5 ] [ "b" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ HEX: af63bd4c8601b7bd ] [ "b" fnv1-64 checksum-bytes ] unit-test
|
||||
[ HEX: af63df4c8601f1a5 ] [ "b" fnv1a-64 checksum-bytes ] unit-test
|
||||
[ 0x050c5d7d ] [ "b" fnv1-32 checksum-bytes ] unit-test
|
||||
[ 0xe70c2de5 ] [ "b" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ 0xaf63bd4c8601b7bd ] [ "b" fnv1-64 checksum-bytes ] unit-test
|
||||
[ 0xaf63df4c8601f1a5 ] [ "b" fnv1a-64 checksum-bytes ] unit-test
|
||||
|
||||
[ HEX: 31f0b262 ] [ "foobar" fnv1-32 checksum-bytes ] unit-test
|
||||
[ HEX: bf9cf968 ] [ "foobar" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ HEX: 340d8765a4dda9c2 ] [ "foobar" fnv1-64 checksum-bytes ] unit-test
|
||||
[ HEX: 85944171f73967e8 ] [ "foobar" fnv1a-64 checksum-bytes ] unit-test
|
||||
[ 0x31f0b262 ] [ "foobar" fnv1-32 checksum-bytes ] unit-test
|
||||
[ 0xbf9cf968 ] [ "foobar" fnv1a-32 checksum-bytes ] unit-test
|
||||
[ 0x340d8765a4dda9c2 ] [ "foobar" fnv1-64 checksum-bytes ] unit-test
|
||||
[ 0x85944171f73967e8 ] [ "foobar" fnv1a-64 checksum-bytes ] unit-test
|
||||
|
||||
! I couldn't find any test vectors for 128, 256, 512, or 1024 versions of FNV1 hashes.
|
||||
! So, just to check that your maths works the same as my maths, here's a few samples computed on my laptop.
|
||||
|
|
|
@ -24,19 +24,19 @@ CONSTANT: fnv1-256-prime 374144419156711147060143317175368453031918731002211
|
|||
CONSTANT: fnv1-512-prime 35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759
|
||||
CONSTANT: fnv1-1024-prime 5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573
|
||||
|
||||
CONSTANT: fnv1-32-mod HEX: ffffffff
|
||||
CONSTANT: fnv1-64-mod HEX: ffffffffffffffff
|
||||
CONSTANT: fnv1-128-mod HEX: ffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-256-mod HEX: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-512-mod HEX: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-1024-mod HEX: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-32-mod 0xffffffff
|
||||
CONSTANT: fnv1-64-mod 0xffffffffffffffff
|
||||
CONSTANT: fnv1-128-mod 0xffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-256-mod 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-512-mod 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
CONSTANT: fnv1-1024-mod 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
|
||||
CONSTANT: fnv1-32-basis HEX: 811c9dc5
|
||||
CONSTANT: fnv1-64-basis HEX: cbf29ce484222325
|
||||
CONSTANT: fnv1-128-basis HEX: 6c62272e07bb014262b821756295c58d
|
||||
CONSTANT: fnv1-256-basis HEX: dd268dbcaac550362d98c384c4e576ccc8b1536847b6bbb31023b4c8caee0535
|
||||
CONSTANT: fnv1-512-basis HEX: b86db0b1171f4416dca1e50f309990acac87d059c90000000000000000000d21e948f68a34c192f62ea79bc942dbe7ce182036415f56e34bac982aac4afe9fd9
|
||||
CONSTANT: fnv1-1024-basis HEX: 5f7a76758ecc4d32e56d5a591028b74b29fc4223fdada16c3bf34eda3674da9a21d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6d7eb6e73802734510a555f256cc005ae556bde8cc9c6a93b21aff4b16c71ee90b3
|
||||
CONSTANT: fnv1-32-basis 0x811c9dc5
|
||||
CONSTANT: fnv1-64-basis 0xcbf29ce484222325
|
||||
CONSTANT: fnv1-128-basis 0x6c62272e07bb014262b821756295c58d
|
||||
CONSTANT: fnv1-256-basis 0xdd268dbcaac550362d98c384c4e576ccc8b1536847b6bbb31023b4c8caee0535
|
||||
CONSTANT: fnv1-512-basis 0xb86db0b1171f4416dca1e50f309990acac87d059c90000000000000000000d21e948f68a34c192f62ea79bc942dbe7ce182036415f56e34bac982aac4afe9fd9
|
||||
CONSTANT: fnv1-1024-basis 0x5f7a76758ecc4d32e56d5a591028b74b29fc4223fdada16c3bf34eda3674da9a21d9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c6d7eb6e73802734510a555f256cc005ae556bde8cc9c6a93b21aff4b16c71ee90b3
|
||||
|
||||
M: fnv1-32 checksum-bytes ( bytes checksum -- value )
|
||||
drop
|
||||
|
|
|
@ -15,8 +15,8 @@ IN: checksums.hmac.tests
|
|||
"V\u0000be4R\u00001d\u000014L\u000088\u0000db\u0000b8\u0000c73\u0000f0\u0000e8\u0000b3\u0000f6"
|
||||
]
|
||||
[
|
||||
50 HEX: dd <repetition>
|
||||
16 HEX: aa <string> md5 hmac-bytes >string
|
||||
50 0xdd <repetition>
|
||||
16 0xaa <string> md5 hmac-bytes >string
|
||||
] unit-test
|
||||
|
||||
[
|
||||
|
@ -34,12 +34,12 @@ IN: checksums.hmac.tests
|
|||
[
|
||||
"\u0000d70YM\u000016~5\u0000d5\u000095o\u0000d8\0=\r\u0000b3\u0000d3\u0000f4m\u0000c7\u0000bb"
|
||||
] [
|
||||
50 HEX: dd <repetition>
|
||||
16 HEX: aa <string> sha1 hmac-bytes >string
|
||||
50 0xdd <repetition>
|
||||
16 0xaa <string> sha1 hmac-bytes >string
|
||||
] unit-test
|
||||
|
||||
[ "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7" ]
|
||||
[ "Hi There" 20 HEX: b <string> sha-256 hmac-bytes hex-string ] unit-test
|
||||
[ "Hi There" 20 0xb <string> sha-256 hmac-bytes hex-string ] unit-test
|
||||
|
||||
[ "167f928588c5cc2eef8e3093caa0e87c9ff566a14794aa61648d81621a2a40c6" ]
|
||||
[
|
||||
|
|
|
@ -9,9 +9,9 @@ IN: checksums.hmac
|
|||
|
||||
: seq-bitxor ( seq seq -- seq ) [ bitxor ] 2map ;
|
||||
|
||||
: opad ( checksum-state -- seq ) block-size>> HEX: 5c <array> ;
|
||||
: opad ( checksum-state -- seq ) block-size>> 0x5c <array> ;
|
||||
|
||||
: ipad ( checksum-state -- seq ) block-size>> HEX: 36 <array> ;
|
||||
: ipad ( checksum-state -- seq ) block-size>> 0x36 <array> ;
|
||||
|
||||
:: init-key ( checksum key checksum-state -- o i )
|
||||
checksum-state block-size>> key length <
|
||||
|
|
|
@ -12,10 +12,10 @@ IN: checksums
|
|||
|
||||
: test-data ( -- bytes )
|
||||
B{
|
||||
HEX: 00 HEX: 01
|
||||
HEX: f2 HEX: 03
|
||||
HEX: f4 HEX: f5
|
||||
HEX: f6 HEX: f7
|
||||
0x00 0x01
|
||||
0xf2 0x03
|
||||
0xf4 0xf5
|
||||
0xf6 0xf7
|
||||
} ;
|
||||
|
||||
[ B{ 34 13 } ] [ test-data internet checksum-bytes ] unit-test
|
||||
|
|
|
@ -11,6 +11,6 @@ INSTANCE: internet checksum
|
|||
|
||||
M: internet checksum-bytes
|
||||
drop 0 swap 2 <sliced-groups> [ le> + ] each
|
||||
[ -16 shift ] [ HEX: ffff bitand ] bi +
|
||||
[ -16 shift ] [ 0xffff bitand ] bi +
|
||||
[ -16 shift ] keep + bitnot 2 >le ;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ TUPLE: md5-state < checksum-state state old-state ;
|
|||
: <md5-state> ( -- md5 )
|
||||
md5-state new-checksum-state
|
||||
64 >>block-size
|
||||
uint-array{ HEX: 67452301 HEX: efcdab89 HEX: 98badcfe HEX: 10325476 }
|
||||
uint-array{ 0x67452301 0xefcdab89 0x98badcfe 0x10325476 }
|
||||
[ clone >>state ] [ >>old-state ] bi ;
|
||||
|
||||
M: md5 initialize-checksum-state drop <md5-state> ;
|
||||
|
|
|
@ -20,19 +20,19 @@ TUPLE: sha1-state < checksum-state K H W word-size ;
|
|||
|
||||
CONSTANT: initial-H-sha1
|
||||
{
|
||||
HEX: 67452301
|
||||
HEX: efcdab89
|
||||
HEX: 98badcfe
|
||||
HEX: 10325476
|
||||
HEX: c3d2e1f0
|
||||
0x67452301
|
||||
0xefcdab89
|
||||
0x98badcfe
|
||||
0x10325476
|
||||
0xc3d2e1f0
|
||||
}
|
||||
|
||||
CONSTANT: K-sha1
|
||||
$[
|
||||
20 HEX: 5a827999 <repetition>
|
||||
20 HEX: 6ed9eba1 <repetition>
|
||||
20 HEX: 8f1bbcdc <repetition>
|
||||
20 HEX: ca62c1d6 <repetition>
|
||||
20 0x5a827999 <repetition>
|
||||
20 0x6ed9eba1 <repetition>
|
||||
20 0x8f1bbcdc <repetition>
|
||||
20 0xca62c1d6 <repetition>
|
||||
4 { } nappend-as
|
||||
]
|
||||
|
||||
|
@ -64,83 +64,83 @@ CONSTANT: h 7
|
|||
|
||||
CONSTANT: initial-H-224
|
||||
{
|
||||
HEX: c1059ed8 HEX: 367cd507 HEX: 3070dd17 HEX: f70e5939
|
||||
HEX: ffc00b31 HEX: 68581511 HEX: 64f98fa7 HEX: befa4fa4
|
||||
0xc1059ed8 0x367cd507 0x3070dd17 0xf70e5939
|
||||
0xffc00b31 0x68581511 0x64f98fa7 0xbefa4fa4
|
||||
}
|
||||
|
||||
CONSTANT: initial-H-256
|
||||
{
|
||||
HEX: 6a09e667 HEX: bb67ae85 HEX: 3c6ef372 HEX: a54ff53a
|
||||
HEX: 510e527f HEX: 9b05688c HEX: 1f83d9ab HEX: 5be0cd19
|
||||
0x6a09e667 0xbb67ae85 0x3c6ef372 0xa54ff53a
|
||||
0x510e527f 0x9b05688c 0x1f83d9ab 0x5be0cd19
|
||||
}
|
||||
|
||||
CONSTANT: initial-H-384
|
||||
{
|
||||
HEX: cbbb9d5dc1059ed8
|
||||
HEX: 629a292a367cd507
|
||||
HEX: 9159015a3070dd17
|
||||
HEX: 152fecd8f70e5939
|
||||
HEX: 67332667ffc00b31
|
||||
HEX: 8eb44a8768581511
|
||||
HEX: db0c2e0d64f98fa7
|
||||
HEX: 47b5481dbefa4fa4
|
||||
0xcbbb9d5dc1059ed8
|
||||
0x629a292a367cd507
|
||||
0x9159015a3070dd17
|
||||
0x152fecd8f70e5939
|
||||
0x67332667ffc00b31
|
||||
0x8eb44a8768581511
|
||||
0xdb0c2e0d64f98fa7
|
||||
0x47b5481dbefa4fa4
|
||||
}
|
||||
|
||||
CONSTANT: initial-H-512
|
||||
{
|
||||
HEX: 6a09e667f3bcc908
|
||||
HEX: bb67ae8584caa73b
|
||||
HEX: 3c6ef372fe94f82b
|
||||
HEX: a54ff53a5f1d36f1
|
||||
HEX: 510e527fade682d1
|
||||
HEX: 9b05688c2b3e6c1f
|
||||
HEX: 1f83d9abfb41bd6b
|
||||
HEX: 5be0cd19137e2179
|
||||
0x6a09e667f3bcc908
|
||||
0xbb67ae8584caa73b
|
||||
0x3c6ef372fe94f82b
|
||||
0xa54ff53a5f1d36f1
|
||||
0x510e527fade682d1
|
||||
0x9b05688c2b3e6c1f
|
||||
0x1f83d9abfb41bd6b
|
||||
0x5be0cd19137e2179
|
||||
}
|
||||
|
||||
CONSTANT: K-256
|
||||
{
|
||||
HEX: 428a2f98 HEX: 71374491 HEX: b5c0fbcf HEX: e9b5dba5
|
||||
HEX: 3956c25b HEX: 59f111f1 HEX: 923f82a4 HEX: ab1c5ed5
|
||||
HEX: d807aa98 HEX: 12835b01 HEX: 243185be HEX: 550c7dc3
|
||||
HEX: 72be5d74 HEX: 80deb1fe HEX: 9bdc06a7 HEX: c19bf174
|
||||
HEX: e49b69c1 HEX: efbe4786 HEX: 0fc19dc6 HEX: 240ca1cc
|
||||
HEX: 2de92c6f HEX: 4a7484aa HEX: 5cb0a9dc HEX: 76f988da
|
||||
HEX: 983e5152 HEX: a831c66d HEX: b00327c8 HEX: bf597fc7
|
||||
HEX: c6e00bf3 HEX: d5a79147 HEX: 06ca6351 HEX: 14292967
|
||||
HEX: 27b70a85 HEX: 2e1b2138 HEX: 4d2c6dfc HEX: 53380d13
|
||||
HEX: 650a7354 HEX: 766a0abb HEX: 81c2c92e HEX: 92722c85
|
||||
HEX: a2bfe8a1 HEX: a81a664b HEX: c24b8b70 HEX: c76c51a3
|
||||
HEX: d192e819 HEX: d6990624 HEX: f40e3585 HEX: 106aa070
|
||||
HEX: 19a4c116 HEX: 1e376c08 HEX: 2748774c HEX: 34b0bcb5
|
||||
HEX: 391c0cb3 HEX: 4ed8aa4a HEX: 5b9cca4f HEX: 682e6ff3
|
||||
HEX: 748f82ee HEX: 78a5636f HEX: 84c87814 HEX: 8cc70208
|
||||
HEX: 90befffa HEX: a4506ceb HEX: bef9a3f7 HEX: c67178f2
|
||||
0x428a2f98 0x71374491 0xb5c0fbcf 0xe9b5dba5
|
||||
0x3956c25b 0x59f111f1 0x923f82a4 0xab1c5ed5
|
||||
0xd807aa98 0x12835b01 0x243185be 0x550c7dc3
|
||||
0x72be5d74 0x80deb1fe 0x9bdc06a7 0xc19bf174
|
||||
0xe49b69c1 0xefbe4786 0x0fc19dc6 0x240ca1cc
|
||||
0x2de92c6f 0x4a7484aa 0x5cb0a9dc 0x76f988da
|
||||
0x983e5152 0xa831c66d 0xb00327c8 0xbf597fc7
|
||||
0xc6e00bf3 0xd5a79147 0x06ca6351 0x14292967
|
||||
0x27b70a85 0x2e1b2138 0x4d2c6dfc 0x53380d13
|
||||
0x650a7354 0x766a0abb 0x81c2c92e 0x92722c85
|
||||
0xa2bfe8a1 0xa81a664b 0xc24b8b70 0xc76c51a3
|
||||
0xd192e819 0xd6990624 0xf40e3585 0x106aa070
|
||||
0x19a4c116 0x1e376c08 0x2748774c 0x34b0bcb5
|
||||
0x391c0cb3 0x4ed8aa4a 0x5b9cca4f 0x682e6ff3
|
||||
0x748f82ee 0x78a5636f 0x84c87814 0x8cc70208
|
||||
0x90befffa 0xa4506ceb 0xbef9a3f7 0xc67178f2
|
||||
}
|
||||
|
||||
CONSTANT: K-384
|
||||
{
|
||||
|
||||
HEX: 428a2f98d728ae22 HEX: 7137449123ef65cd HEX: b5c0fbcfec4d3b2f HEX: e9b5dba58189dbbc
|
||||
HEX: 3956c25bf348b538 HEX: 59f111f1b605d019 HEX: 923f82a4af194f9b HEX: ab1c5ed5da6d8118
|
||||
HEX: d807aa98a3030242 HEX: 12835b0145706fbe HEX: 243185be4ee4b28c HEX: 550c7dc3d5ffb4e2
|
||||
HEX: 72be5d74f27b896f HEX: 80deb1fe3b1696b1 HEX: 9bdc06a725c71235 HEX: c19bf174cf692694
|
||||
HEX: e49b69c19ef14ad2 HEX: efbe4786384f25e3 HEX: 0fc19dc68b8cd5b5 HEX: 240ca1cc77ac9c65
|
||||
HEX: 2de92c6f592b0275 HEX: 4a7484aa6ea6e483 HEX: 5cb0a9dcbd41fbd4 HEX: 76f988da831153b5
|
||||
HEX: 983e5152ee66dfab HEX: a831c66d2db43210 HEX: b00327c898fb213f HEX: bf597fc7beef0ee4
|
||||
HEX: c6e00bf33da88fc2 HEX: d5a79147930aa725 HEX: 06ca6351e003826f HEX: 142929670a0e6e70
|
||||
HEX: 27b70a8546d22ffc HEX: 2e1b21385c26c926 HEX: 4d2c6dfc5ac42aed HEX: 53380d139d95b3df
|
||||
HEX: 650a73548baf63de HEX: 766a0abb3c77b2a8 HEX: 81c2c92e47edaee6 HEX: 92722c851482353b
|
||||
HEX: a2bfe8a14cf10364 HEX: a81a664bbc423001 HEX: c24b8b70d0f89791 HEX: c76c51a30654be30
|
||||
HEX: d192e819d6ef5218 HEX: d69906245565a910 HEX: f40e35855771202a HEX: 106aa07032bbd1b8
|
||||
HEX: 19a4c116b8d2d0c8 HEX: 1e376c085141ab53 HEX: 2748774cdf8eeb99 HEX: 34b0bcb5e19b48a8
|
||||
HEX: 391c0cb3c5c95a63 HEX: 4ed8aa4ae3418acb HEX: 5b9cca4f7763e373 HEX: 682e6ff3d6b2b8a3
|
||||
HEX: 748f82ee5defb2fc HEX: 78a5636f43172f60 HEX: 84c87814a1f0ab72 HEX: 8cc702081a6439ec
|
||||
HEX: 90befffa23631e28 HEX: a4506cebde82bde9 HEX: bef9a3f7b2c67915 HEX: c67178f2e372532b
|
||||
HEX: ca273eceea26619c HEX: d186b8c721c0c207 HEX: eada7dd6cde0eb1e HEX: f57d4f7fee6ed178
|
||||
HEX: 06f067aa72176fba HEX: 0a637dc5a2c898a6 HEX: 113f9804bef90dae HEX: 1b710b35131c471b
|
||||
HEX: 28db77f523047d84 HEX: 32caab7b40c72493 HEX: 3c9ebe0a15c9bebc HEX: 431d67c49c100d4c
|
||||
HEX: 4cc5d4becb3e42b6 HEX: 597f299cfc657e2a HEX: 5fcb6fab3ad6faec HEX: 6c44198c4a475817
|
||||
0x428a2f98d728ae22 0x7137449123ef65cd 0xb5c0fbcfec4d3b2f 0xe9b5dba58189dbbc
|
||||
0x3956c25bf348b538 0x59f111f1b605d019 0x923f82a4af194f9b 0xab1c5ed5da6d8118
|
||||
0xd807aa98a3030242 0x12835b0145706fbe 0x243185be4ee4b28c 0x550c7dc3d5ffb4e2
|
||||
0x72be5d74f27b896f 0x80deb1fe3b1696b1 0x9bdc06a725c71235 0xc19bf174cf692694
|
||||
0xe49b69c19ef14ad2 0xefbe4786384f25e3 0x0fc19dc68b8cd5b5 0x240ca1cc77ac9c65
|
||||
0x2de92c6f592b0275 0x4a7484aa6ea6e483 0x5cb0a9dcbd41fbd4 0x76f988da831153b5
|
||||
0x983e5152ee66dfab 0xa831c66d2db43210 0xb00327c898fb213f 0xbf597fc7beef0ee4
|
||||
0xc6e00bf33da88fc2 0xd5a79147930aa725 0x06ca6351e003826f 0x142929670a0e6e70
|
||||
0x27b70a8546d22ffc 0x2e1b21385c26c926 0x4d2c6dfc5ac42aed 0x53380d139d95b3df
|
||||
0x650a73548baf63de 0x766a0abb3c77b2a8 0x81c2c92e47edaee6 0x92722c851482353b
|
||||
0xa2bfe8a14cf10364 0xa81a664bbc423001 0xc24b8b70d0f89791 0xc76c51a30654be30
|
||||
0xd192e819d6ef5218 0xd69906245565a910 0xf40e35855771202a 0x106aa07032bbd1b8
|
||||
0x19a4c116b8d2d0c8 0x1e376c085141ab53 0x2748774cdf8eeb99 0x34b0bcb5e19b48a8
|
||||
0x391c0cb3c5c95a63 0x4ed8aa4ae3418acb 0x5b9cca4f7763e373 0x682e6ff3d6b2b8a3
|
||||
0x748f82ee5defb2fc 0x78a5636f43172f60 0x84c87814a1f0ab72 0x8cc702081a6439ec
|
||||
0x90befffa23631e28 0xa4506cebde82bde9 0xbef9a3f7b2c67915 0xc67178f2e372532b
|
||||
0xca273eceea26619c 0xd186b8c721c0c207 0xeada7dd6cde0eb1e 0xf57d4f7fee6ed178
|
||||
0x06f067aa72176fba 0x0a637dc5a2c898a6 0x113f9804bef90dae 0x1b710b35131c471b
|
||||
0x28db77f523047d84 0x32caab7b40c72493 0x3c9ebe0a15c9bebc 0x431d67c49c100d4c
|
||||
0x4cc5d4becb3e42b6 0x597f299cfc657e2a 0x5fcb6fab3ad6faec 0x6c44198c4a475817
|
||||
}
|
||||
|
||||
ALIAS: K-512 K-384
|
||||
|
|
|
@ -28,7 +28,7 @@ STRUCT: struct-test-foo
|
|||
{ z bool } ;
|
||||
|
||||
STRUCT: struct-test-bar
|
||||
{ w ushort initial: HEX: ffff }
|
||||
{ w ushort initial: 0xffff }
|
||||
{ foo struct-test-foo } ;
|
||||
|
||||
[ 12 ] [ struct-test-foo heap-size ] unit-test
|
||||
|
@ -53,7 +53,7 @@ STRUCT: struct-test-bar
|
|||
[ {
|
||||
{ "underlying" B{ 98 0 0 98 127 0 0 127 0 0 0 0 } }
|
||||
{ { "x" char } 98 }
|
||||
{ { "y" int } HEX: 7F00007F }
|
||||
{ { "y" int } 0x7F00007F }
|
||||
{ { "z" bool } f }
|
||||
} ] [
|
||||
B{ 98 0 0 98 127 0 0 127 0 0 0 0 } struct-test-foo memory>struct
|
||||
|
|
|
@ -17,7 +17,7 @@ CONSTANT: NSApplicationDelegateReplyFailure 2
|
|||
|
||||
: NSApp ( -- app ) NSApplication -> sharedApplication ;
|
||||
|
||||
CONSTANT: NSAnyEventMask HEX: ffffffff
|
||||
CONSTANT: NSAnyEventMask 0xffffffff
|
||||
|
||||
FUNCTION: void NSBeep ( ) ;
|
||||
|
||||
|
|
|
@ -21,15 +21,15 @@ STRUCT: objc-super
|
|||
{ receiver id }
|
||||
{ class Class } ;
|
||||
|
||||
CONSTANT: CLS_CLASS HEX: 1
|
||||
CONSTANT: CLS_META HEX: 2
|
||||
CONSTANT: CLS_INITIALIZED HEX: 4
|
||||
CONSTANT: CLS_POSING HEX: 8
|
||||
CONSTANT: CLS_MAPPED HEX: 10
|
||||
CONSTANT: CLS_FLUSH_CACHE HEX: 20
|
||||
CONSTANT: CLS_GROW_CACHE HEX: 40
|
||||
CONSTANT: CLS_NEED_BIND HEX: 80
|
||||
CONSTANT: CLS_METHOD_ARRAY HEX: 100
|
||||
CONSTANT: CLS_CLASS 0x1
|
||||
CONSTANT: CLS_META 0x2
|
||||
CONSTANT: CLS_INITIALIZED 0x4
|
||||
CONSTANT: CLS_POSING 0x8
|
||||
CONSTANT: CLS_MAPPED 0x10
|
||||
CONSTANT: CLS_FLUSH_CACHE 0x20
|
||||
CONSTANT: CLS_GROW_CACHE 0x40
|
||||
CONSTANT: CLS_NEED_BIND 0x80
|
||||
CONSTANT: CLS_METHOD_ARRAY 0x100
|
||||
|
||||
FUNCTION: int objc_getClassList ( void* buffer, int bufferLen ) ;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ CONSTANT: NSTexturedBackgroundWindowMask 256
|
|||
CONSTANT: NSUtilityWindowMask 16
|
||||
CONSTANT: NSDocModalWindowMask 64
|
||||
CONSTANT: NSNonactivatingPanelMask 128
|
||||
CONSTANT: NSHUDWindowMask HEX: 1000
|
||||
CONSTANT: NSHUDWindowMask 0x1000
|
||||
|
||||
CONSTANT: NSBackingStoreRetained 0
|
||||
CONSTANT: NSBackingStoreNonretained 1
|
||||
|
@ -27,7 +27,7 @@ CONSTANT: NSBackingStoreBuffered 2
|
|||
-> initWithContentRect:styleMask:backing:defer: ;
|
||||
|
||||
: class-for-style ( style -- NSWindow/NSPanel )
|
||||
HEX: 1ef0 bitand zero? NSWindow NSPanel ? ;
|
||||
0x1ef0 bitand zero? NSWindow NSPanel ? ;
|
||||
|
||||
: <ViewWindow> ( view rect style -- window )
|
||||
dup class-for-style <NSWindow> [ swap -> setContentView: ] keep
|
||||
|
|
|
@ -22,22 +22,22 @@ IN: compiler.cfg.intrinsics.simd
|
|||
: sign-bit-mask ( rep -- byte-array )
|
||||
signed-rep {
|
||||
{ char-16-rep [ uchar-array{
|
||||
HEX: 80 HEX: 80 HEX: 80 HEX: 80
|
||||
HEX: 80 HEX: 80 HEX: 80 HEX: 80
|
||||
HEX: 80 HEX: 80 HEX: 80 HEX: 80
|
||||
HEX: 80 HEX: 80 HEX: 80 HEX: 80
|
||||
0x80 0x80 0x80 0x80
|
||||
0x80 0x80 0x80 0x80
|
||||
0x80 0x80 0x80 0x80
|
||||
0x80 0x80 0x80 0x80
|
||||
} underlying>> ] }
|
||||
{ short-8-rep [ ushort-array{
|
||||
HEX: 8000 HEX: 8000 HEX: 8000 HEX: 8000
|
||||
HEX: 8000 HEX: 8000 HEX: 8000 HEX: 8000
|
||||
0x8000 0x8000 0x8000 0x8000
|
||||
0x8000 0x8000 0x8000 0x8000
|
||||
} underlying>> ] }
|
||||
{ int-4-rep [ uint-array{
|
||||
HEX: 8000,0000 HEX: 8000,0000
|
||||
HEX: 8000,0000 HEX: 8000,0000
|
||||
0x8000,0000 0x8000,0000
|
||||
0x8000,0000 0x8000,0000
|
||||
} underlying>> ] }
|
||||
{ longlong-2-rep [ ulonglong-array{
|
||||
HEX: 8000,0000,0000,0000
|
||||
HEX: 8000,0000,0000,0000
|
||||
0x8000,0000,0000,0000
|
||||
0x8000,0000,0000,0000
|
||||
} underlying>> ] }
|
||||
} case ;
|
||||
|
||||
|
|
|
@ -119,12 +119,12 @@ cpu x86.64? [
|
|||
! Boundary case
|
||||
[
|
||||
{
|
||||
T{ ##load-integer f 0 HEX: 7fffffff }
|
||||
T{ ##load-integer f 0 0x7fffffff }
|
||||
T{ ##replace f 0 D 0 }
|
||||
}
|
||||
] [
|
||||
{
|
||||
T{ ##load-integer f 0 HEX: 7fffffff }
|
||||
T{ ##load-integer f 0 0x7fffffff }
|
||||
T{ ##replace f 0 D 0 }
|
||||
} value-numbering-step
|
||||
] unit-test
|
||||
|
@ -2024,7 +2024,7 @@ cell 8 = [
|
|||
{
|
||||
T{ ##peek f 0 D 0 }
|
||||
T{ ##load-integer f 1 -1 }
|
||||
T{ ##load-integer f 3 HEX: ffffffffffff }
|
||||
T{ ##load-integer f 3 0xffffffffffff }
|
||||
}
|
||||
] [
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@ IN: compiler.constants
|
|||
! These constants must match vm/memory.h
|
||||
CONSTANT: card-bits 8
|
||||
CONSTANT: deck-bits 18
|
||||
: card-mark ( -- n ) HEX: 40 HEX: 80 bitor ; inline
|
||||
: card-mark ( -- n ) 0x40 0x80 bitor ; inline
|
||||
|
||||
! These constants must match vm/layouts.h
|
||||
: slot-offset ( slot tag -- n ) [ bootstrap-cells ] dip - ; inline
|
||||
|
|
|
@ -462,7 +462,7 @@ TUPLE: myseq { underlying1 byte-array read-only } { underlying2 byte-array read-
|
|||
! Forgot to two-operand shifts
|
||||
[ 2 0 ] [
|
||||
1 1
|
||||
[ [ HEX: f bitand ] bi@ [ shift ] [ drop -3 shift ] 2bi ] compile-call
|
||||
[ [ 0xf bitand ] bi@ [ shift ] [ drop -3 shift ] 2bi ] compile-call
|
||||
] unit-test
|
||||
|
||||
! Alias analysis bug
|
||||
|
|
|
@ -49,12 +49,12 @@ IN: compiler.tests.intrinsics
|
|||
[ CHAR: b ] [ 1 [ "abc" string-nth ] compile-call ] unit-test
|
||||
[ CHAR: b ] [ [ 1 "abc" string-nth ] compile-call ] unit-test
|
||||
|
||||
[ HEX: 123456 ] [ 0 "\u123456bc" [ string-nth ] compile-call ] unit-test
|
||||
[ HEX: 123456 ] [ 0 [ "\u123456bc" string-nth ] compile-call ] unit-test
|
||||
[ HEX: 123456 ] [ [ 0 "\u123456bc" string-nth ] compile-call ] unit-test
|
||||
[ HEX: 123456 ] [ 1 "a\u123456c" [ string-nth ] compile-call ] unit-test
|
||||
[ HEX: 123456 ] [ 1 [ "a\u123456c" string-nth ] compile-call ] unit-test
|
||||
[ HEX: 123456 ] [ [ 1 "a\u123456c" string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ 0 "\u123456bc" [ string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ 0 [ "\u123456bc" string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ [ 0 "\u123456bc" string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ 1 "a\u123456c" [ string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ 1 [ "a\u123456c" string-nth ] compile-call ] unit-test
|
||||
[ 0x123456 ] [ [ 1 "a\u123456c" string-nth ] compile-call ] unit-test
|
||||
|
||||
[ ] [ [ 0 special-object ] compile-call drop ] unit-test
|
||||
[ ] [ 1 special-object [ 1 set-special-object ] compile-call ] unit-test
|
||||
|
@ -244,9 +244,9 @@ IN: compiler.tests.intrinsics
|
|||
[ -4294967296 ] [ -1 [ 32 fixnum-shift ] compile-call ] unit-test
|
||||
[ -4294967296 ] [ -1 [ 16 fixnum-shift 16 fixnum-shift ] compile-call ] unit-test
|
||||
|
||||
[ HEX: 10000000 ] [ HEX: 1000000 HEX: 10 [ fixnum* ] compile-call ] unit-test
|
||||
[ HEX: 8000000 ] [ HEX: -8000000 >fixnum [ 0 swap fixnum- ] compile-call ] unit-test
|
||||
[ HEX: 8000000 ] [ HEX: -7ffffff >fixnum [ 1 swap fixnum- ] compile-call ] unit-test
|
||||
[ 0x10000000 ] [ 0x1000000 0x10 [ fixnum* ] compile-call ] unit-test
|
||||
[ 0x8000000 ] [ -0x8000000 >fixnum [ 0 swap fixnum- ] compile-call ] unit-test
|
||||
[ 0x8000000 ] [ -0x7ffffff >fixnum [ 1 swap fixnum- ] compile-call ] unit-test
|
||||
|
||||
[ t ] [ 1 26 fixnum-shift dup [ fixnum+ ] compile-call 1 27 fixnum-shift = ] unit-test
|
||||
[ -134217729 ] [ 1 27 shift neg >fixnum [ -1 fixnum+ ] compile-call ] unit-test
|
||||
|
@ -263,8 +263,8 @@ IN: compiler.tests.intrinsics
|
|||
[ t ] [ f [ f eq? ] compile-call ] unit-test
|
||||
|
||||
cell 8 = [
|
||||
[ HEX: 40400000 ] [
|
||||
HEX: 4200 [ HEX: 7fff fixnum-bitand 13 fixnum-shift-fast 112 23 fixnum-shift-fast fixnum+fast ]
|
||||
[ 0x40400000 ] [
|
||||
0x4200 [ 0x7fff fixnum-bitand 13 fixnum-shift-fast 112 23 fixnum-shift-fast fixnum+fast ]
|
||||
compile-call
|
||||
] unit-test
|
||||
] when
|
||||
|
@ -479,15 +479,15 @@ ERROR: bug-in-fixnum* x y a b ;
|
|||
] unit-test
|
||||
|
||||
[ ALIEN: 123 ] [
|
||||
HEX: 123 [ <alien> ] compile-call
|
||||
0x123 [ <alien> ] compile-call
|
||||
] unit-test
|
||||
|
||||
[ ALIEN: 123 ] [
|
||||
HEX: 123 [ { fixnum } declare <alien> ] compile-call
|
||||
0x123 [ { fixnum } declare <alien> ] compile-call
|
||||
] unit-test
|
||||
|
||||
[ ALIEN: 123 ] [
|
||||
[ HEX: 123 <alien> ] compile-call
|
||||
[ 0x123 <alien> ] compile-call
|
||||
] unit-test
|
||||
|
||||
[ f ] [
|
||||
|
@ -529,8 +529,8 @@ ERROR: bug-in-fixnum* x y a b ;
|
|||
[ ALIEN: 1234 ALIEN: 2234 ] [
|
||||
ALIEN: 234 [
|
||||
{ c-ptr } declare
|
||||
[ HEX: 1000 swap <displaced-alien> ]
|
||||
[ HEX: 2000 swap <displaced-alien> ] bi
|
||||
[ 0x1000 swap <displaced-alien> ]
|
||||
[ 0x2000 swap <displaced-alien> ] bi
|
||||
] compile-call
|
||||
] unit-test
|
||||
|
||||
|
|
|
@ -265,12 +265,12 @@ cell-bits 32 = [
|
|||
] unit-test
|
||||
|
||||
[ t ] [
|
||||
[ HEX: ff bitand 0 HEX: ff between? ]
|
||||
[ 0xff bitand 0 0xff between? ]
|
||||
\ >= inlined?
|
||||
] unit-test
|
||||
|
||||
[ t ] [
|
||||
[ HEX: ff swap HEX: ff bitand >= ]
|
||||
[ 0xff swap 0xff bitand >= ]
|
||||
\ >= inlined?
|
||||
] unit-test
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ IN: compression.run-length
|
|||
2 group [ first2 <array> ] map B{ } concat-as ;
|
||||
|
||||
: 8hi-lo ( byte -- hi lo )
|
||||
[ HEX: f0 bitand -4 shift ] [ HEX: f bitand ] bi ; inline
|
||||
[ 0xf0 bitand -4 shift ] [ 0xf bitand ] bi ; inline
|
||||
|
||||
:: run-length-uncompress-bitmap4 ( byte-array m n -- byte-array' )
|
||||
byte-array <sequence-parser> :> sp
|
||||
|
@ -21,7 +21,7 @@ IN: compression.run-length
|
|||
[
|
||||
! i j [ number>string ] bi@ " " glue .
|
||||
sp next dup 0 = [
|
||||
sp next dup HEX: 03 HEX: ff between? [
|
||||
sp next dup 0x03 0xff between? [
|
||||
nip [ sp ] dip dup odd?
|
||||
[ 1 + take-n but-last ] [ take-n ] if
|
||||
[ j matrix i swap nth copy ] [ length j + j! ] bi
|
||||
|
@ -53,7 +53,7 @@ IN: compression.run-length
|
|||
[
|
||||
! i j [ number>string ] bi@ " " glue .
|
||||
sp next dup 0 = [
|
||||
sp next dup HEX: 03 HEX: ff between? [
|
||||
sp next dup 0x03 0xff between? [
|
||||
nip [ sp ] dip dup odd?
|
||||
[ 1 + take-n but-last ] [ take-n ] if
|
||||
[ j matrix i swap nth copy ] [ length j + j! ] bi
|
||||
|
|
|
@ -39,7 +39,7 @@ STRUCT: FSEventStreamContext
|
|||
|
||||
CALLBACK: void FSEventStreamCallback ( FSEventStreamRef streamRef, void* clientCallBackInfo, size_t numEvents, void* eventPaths, FSEventStreamEventFlags* eventFlags, FSEventStreamEventId* eventIds ) ;
|
||||
|
||||
CONSTANT: FSEventStreamEventIdSinceNow HEX: FFFFFFFFFFFFFFFF
|
||||
CONSTANT: FSEventStreamEventIdSinceNow 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
FUNCTION: FSEventStreamRef FSEventStreamCreate (
|
||||
CFAllocatorRef allocator,
|
||||
|
|
|
@ -12,4 +12,4 @@ IN: core-foundation
|
|||
[ "\0" ] [ "\0" <CFString> [ CF>string ] [ CFRelease ] bi ] unit-test
|
||||
|
||||
! This shouldn't fail
|
||||
[ ] [ { HEX: 123456 } >string <CFString> CFRelease ] unit-test
|
||||
[ ] [ { 0x123456 } >string <CFString> CFRelease ] unit-test
|
|
@ -9,20 +9,20 @@ IN: core-foundation.strings
|
|||
TYPEDEF: void* CFStringRef
|
||||
|
||||
TYPEDEF: int CFStringEncoding
|
||||
CONSTANT: kCFStringEncodingMacRoman HEX: 0
|
||||
CONSTANT: kCFStringEncodingWindowsLatin1 HEX: 0500
|
||||
CONSTANT: kCFStringEncodingISOLatin1 HEX: 0201
|
||||
CONSTANT: kCFStringEncodingNextStepLatin HEX: 0B01
|
||||
CONSTANT: kCFStringEncodingASCII HEX: 0600
|
||||
CONSTANT: kCFStringEncodingUnicode HEX: 0100
|
||||
CONSTANT: kCFStringEncodingUTF8 HEX: 08000100
|
||||
CONSTANT: kCFStringEncodingNonLossyASCII HEX: 0BFF
|
||||
CONSTANT: kCFStringEncodingUTF16 HEX: 0100
|
||||
CONSTANT: kCFStringEncodingUTF16BE HEX: 10000100
|
||||
CONSTANT: kCFStringEncodingUTF16LE HEX: 14000100
|
||||
CONSTANT: kCFStringEncodingUTF32 HEX: 0c000100
|
||||
CONSTANT: kCFStringEncodingUTF32BE HEX: 18000100
|
||||
CONSTANT: kCFStringEncodingUTF32LE HEX: 1c000100
|
||||
CONSTANT: kCFStringEncodingMacRoman 0x0
|
||||
CONSTANT: kCFStringEncodingWindowsLatin1 0x0500
|
||||
CONSTANT: kCFStringEncodingISOLatin1 0x0201
|
||||
CONSTANT: kCFStringEncodingNextStepLatin 0x0B01
|
||||
CONSTANT: kCFStringEncodingASCII 0x0600
|
||||
CONSTANT: kCFStringEncodingUnicode 0x0100
|
||||
CONSTANT: kCFStringEncodingUTF8 0x08000100
|
||||
CONSTANT: kCFStringEncodingNonLossyASCII 0x0BFF
|
||||
CONSTANT: kCFStringEncodingUTF16 0x0100
|
||||
CONSTANT: kCFStringEncodingUTF16BE 0x10000100
|
||||
CONSTANT: kCFStringEncodingUTF16LE 0x14000100
|
||||
CONSTANT: kCFStringEncodingUTF32 0x0c000100
|
||||
CONSTANT: kCFStringEncodingUTF32BE 0x18000100
|
||||
CONSTANT: kCFStringEncodingUTF32LE 0x1c000100
|
||||
|
||||
FUNCTION: CFStringRef CFStringCreateWithBytes (
|
||||
CFAllocatorRef alloc,
|
||||
|
@ -65,8 +65,8 @@ FUNCTION: CFStringRef CFCopyTypeIDDescription ( CFTypeID type_id ) ;
|
|||
|
||||
: prepare-CFString ( string -- byte-array )
|
||||
[
|
||||
dup HEX: 10ffff >
|
||||
[ drop HEX: fffd ] when
|
||||
dup 0x10ffff >
|
||||
[ drop 0xfffd ] when
|
||||
] map utf8 encode ;
|
||||
|
||||
: <CFString> ( string -- alien )
|
||||
|
|
|
@ -15,10 +15,10 @@ CONSTANT: kCGImageAlphaFirst 4
|
|||
CONSTANT: kCGImageAlphaNoneSkipLast 5
|
||||
CONSTANT: kCGImageAlphaNoneSkipFirst 6
|
||||
|
||||
CONSTANT: kCGBitmapAlphaInfoMask HEX: 1f
|
||||
CONSTANT: kCGBitmapAlphaInfoMask 0x1f
|
||||
CONSTANT: kCGBitmapFloatComponents 256
|
||||
|
||||
CONSTANT: kCGBitmapByteOrderMask HEX: 7000
|
||||
CONSTANT: kCGBitmapByteOrderMask 0x7000
|
||||
CONSTANT: kCGBitmapByteOrderDefault 0
|
||||
CONSTANT: kCGBitmapByteOrder16Little 4096
|
||||
CONSTANT: kCGBitmapByteOrder32Little 8192
|
||||
|
@ -115,7 +115,7 @@ FUNCTION: size_t CGImageGetHeight (
|
|||
|
||||
FUNCTION: void* CGBitmapContextGetData ( CGContextRef c ) ;
|
||||
|
||||
CONSTANT: kCGLRendererGenericFloatID HEX: 00020400
|
||||
CONSTANT: kCGLRendererGenericFloatID 0x00020400
|
||||
|
||||
FUNCTION: CGLError CGLSetParameter ( CGLContextObj ctx, CGLContextParameter pname, GLint* params ) ;
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@ CONSTANT: frame-reg 31
|
|||
: nv-int-regs ( -- seq ) 13 31 [a,b] ;
|
||||
|
||||
: LOAD32 ( r n -- )
|
||||
[ -16 shift HEX: ffff bitand LIS ]
|
||||
[ [ dup ] dip HEX: ffff bitand ORI ] 2bi ;
|
||||
[ -16 shift 0xffff bitand LIS ]
|
||||
[ [ dup ] dip 0xffff bitand ORI ] 2bi ;
|
||||
|
||||
: jit-trap-null ( src -- ) drop ;
|
||||
: jit-load-vm ( dst -- )
|
||||
|
|
|
@ -20,11 +20,11 @@ CONSTANT: frame-reg 31
|
|||
|
||||
: LOAD64 ( r n -- )
|
||||
[ dup ] dip {
|
||||
[ nip -48 shift HEX: ffff bitand LIS ]
|
||||
[ -32 shift HEX: ffff bitand ORI ]
|
||||
[ nip -48 shift 0xffff bitand LIS ]
|
||||
[ -32 shift 0xffff bitand ORI ]
|
||||
[ drop 32 SLDI ]
|
||||
[ -16 shift HEX: ffff bitand ORIS ]
|
||||
[ HEX: ffff bitand ORI ]
|
||||
[ -16 shift 0xffff bitand ORIS ]
|
||||
[ 0xffff bitand ORI ]
|
||||
} 3cleave ;
|
||||
|
||||
: jit-trap-null ( src -- ) drop ;
|
||||
|
|
|
@ -23,10 +23,10 @@ IN: cpu.ppc.assembler
|
|||
[ { 0 1 2 16 21 } bitfield ] dip insn ;
|
||||
|
||||
: d-insn ( rt ra d opcode -- )
|
||||
[ HEX: ffff bitand { 0 16 21 } bitfield ] dip insn ;
|
||||
[ 0xffff bitand { 0 16 21 } bitfield ] dip insn ;
|
||||
|
||||
: ds-insn ( rt ra ds rc opcode -- )
|
||||
[ [ HEX: 3fff bitand ] dip { 0 2 16 21 } bitfield ] dip insn ;
|
||||
[ [ 0x3fff bitand ] dip { 0 2 16 21 } bitfield ] dip insn ;
|
||||
|
||||
: evx-insn ( rt ra rb xo opcode -- )
|
||||
[ { 0 11 16 21 } bitfield ] dip insn ;
|
||||
|
@ -38,12 +38,12 @@ IN: cpu.ppc.assembler
|
|||
[ { 0 1 6 11 16 21 } bitfield ] dip insn ;
|
||||
|
||||
:: md-insn ( rs ra sh mb xo sh5 rc opcode -- )
|
||||
mb [ HEX: 1f bitand 1 shift ] [ -5 shift ] bi bitor :> mb
|
||||
mb [ 0x1f bitand 1 shift ] [ -5 shift ] bi bitor :> mb
|
||||
rs ra sh mb xo sh5 rc opcode
|
||||
[ { 0 1 2 5 11 16 21 } bitfield ] dip insn ;
|
||||
|
||||
:: mds-insn ( rs ra rb mb xo rc opcode -- )
|
||||
mb [ HEX: 1f bitand 1 shift ] [ -5 shift ] bi bitor :> mb
|
||||
mb [ 0x1f bitand 1 shift ] [ -5 shift ] bi bitor :> mb
|
||||
rs ra rb mb xo rc opcode
|
||||
[ { 0 1 5 11 16 21 } bitfield ] dip insn ;
|
||||
|
||||
|
@ -78,32 +78,32 @@ IN: cpu.ppc.assembler
|
|||
[ { 0 1 2 11 16 21 } bitfield ] dip insn ;
|
||||
|
||||
:: xx1-insn ( rt ra rb xo opcode -- )
|
||||
rt HEX: 1f bitand ra rb xo rt -5 shift
|
||||
rt 0x1f bitand ra rb xo rt -5 shift
|
||||
{ 0 1 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
:: xx2-insn ( rt ra rb xo opcode -- )
|
||||
rt HEX: 1f bitand ra rb HEX: 1f bitand xo
|
||||
rt 0x1f bitand ra rb 0x1f bitand xo
|
||||
rb -5 shift rt -5 shift
|
||||
{ 0 1 2 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
:: xx3-insn ( rt ra rb xo opcode -- )
|
||||
rt HEX: 1f bitand ra HEX: 1f bitand rb HEX: 1f bitand
|
||||
rt 0x1f bitand ra 0x1f bitand rb 0x1f bitand
|
||||
xo ra -5 shift rb -5 shift rt -5 shift
|
||||
{ 0 1 2 3 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
:: xx3-rc-insn ( rt ra rb rc xo opcode -- )
|
||||
rt HEX: 1f bitand ra HEX: 1f bitand rb HEX: 1f bitand
|
||||
rt 0x1f bitand ra 0x1f bitand rb 0x1f bitand
|
||||
rc xo ra -5 shift rb -5 shift rt -5 shift
|
||||
{ 0 1 2 3 10 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
:: xx3-rc-dm-insn ( rt ra rb rc dm xo opcode -- )
|
||||
rt HEX: 1f bitand ra HEX: 1f bitand rb HEX: 1f bitand
|
||||
rt 0x1f bitand ra 0x1f bitand rb 0x1f bitand
|
||||
rc dm xo ra -5 shift rb -5 shift rt -5 shift
|
||||
{ 0 1 2 3 8 10 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
:: xx4-insn ( rt ra rb rc xo opcode -- )
|
||||
rt HEX: 1f bitand ra HEX: 1f bitand rb HEX: 1f bitand
|
||||
rc HEX: 1f bitand xo rc -5 shift ra -5 shift rb
|
||||
rt 0x1f bitand ra 0x1f bitand rb 0x1f bitand
|
||||
rc 0x1f bitand xo rc -5 shift ra -5 shift rb
|
||||
-5 shift rt -5 shift
|
||||
{ 0 1 2 3 4 6 11 16 21 } bitfield opcode insn ;
|
||||
|
||||
|
@ -388,32 +388,32 @@ M: integer BC ( bo bi target_addr -- ) -2 shift 0 0 16 b-insn ;
|
|||
|
||||
! 3.3.13.1 64-bit Fixed-Point Rotate Instructions
|
||||
: RLDICL ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 0 swap 0 30 md-insn ;
|
||||
: RLDICL. ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 0 swap 1 30 md-insn ;
|
||||
: RLDICR ( ra rs sh me -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 1 swap 0 30 md-insn ;
|
||||
: RLDICR. ( ra rs sh me -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 1 swap 1 30 md-insn ;
|
||||
: RLDIC ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 2 swap 0 30 md-insn ;
|
||||
: RLDIC. ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 2 swap 1 30 md-insn ;
|
||||
: RLDCL ( ra rs rb mb -- ) [ swap ] 2dip 8 0 30 mds-insn ;
|
||||
: RLDCL. ( ra rs rb mb -- ) [ swap ] 2dip 8 1 30 mds-insn ;
|
||||
: RLDCR ( ra rs rb me -- ) [ swap ] 2dip 9 0 30 mds-insn ;
|
||||
: RLDCR. ( ra rs rb me -- ) [ swap ] 2dip 9 1 30 mds-insn ;
|
||||
: RLDIMI ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 3 swap 0 30 md-insn ;
|
||||
: RLDIMI. ( ra rs sh mb -- )
|
||||
[ swap ] 2dip over [ HEX: 1f bitand ] [ ] [ -5 shift ]
|
||||
[ swap ] 2dip over [ 0x1f bitand ] [ ] [ -5 shift ]
|
||||
tri* 3 swap 1 30 md-insn ;
|
||||
|
||||
! 3.3.13.2 Fixed-Point Shift Instructions
|
||||
|
@ -434,10 +434,10 @@ M: integer BC ( bo bi target_addr -- ) -2 shift 0 0 16 b-insn ;
|
|||
: SRAD ( ra rs rb -- ) [ swap ] dip 794 0 31 x-insn ;
|
||||
: SRAD. ( ra rs rb -- ) [ swap ] dip 794 1 31 x-insn ;
|
||||
: SRADI ( ra rs sh -- )
|
||||
[ swap ] dip [ HEX: 1f bitand ] [ -5 shift ] bi
|
||||
[ swap ] dip [ 0x1f bitand ] [ -5 shift ] bi
|
||||
413 swap 0 31 xs-insn ;
|
||||
: SRADI. ( ra rs sh -- )
|
||||
[ swap ] dip [ HEX: 1f bitand ] [ -5 shift ] bi
|
||||
[ swap ] dip [ 0x1f bitand ] [ -5 shift ] bi
|
||||
413 swap 1 31 xs-insn ;
|
||||
|
||||
! 3.3.14 BCD Assist Instructions
|
||||
|
@ -448,12 +448,12 @@ M: integer BC ( bo bi target_addr -- ) -2 shift 0 0 16 b-insn ;
|
|||
! 3.3.15 Move To/From System Register Instructions
|
||||
: MTSPR ( spr rs -- ) swap 467 0 31 xfx-insn ;
|
||||
: MFSPR ( rt spr -- ) 339 0 31 xfx-insn ;
|
||||
: MTCRF ( fxm rs -- ) swap HEX: ff bitand 1 shift 144 0 31 xfx-insn ;
|
||||
: MTCRF ( fxm rs -- ) swap 0xff bitand 1 shift 144 0 31 xfx-insn ;
|
||||
: MFCR ( rt -- ) 0 19 0 31 xfx-insn ;
|
||||
|
||||
! 3.3.15.1 Move To/From One Condition Register Field Instructions
|
||||
: MTOCRF ( fxm rs -- ) swap HEX: 100 bitor 1 shift 144 0 31 xfx-insn ;
|
||||
: MFOCRF ( rt fxm -- ) HEX: 100 bitor 1 shift 19 0 31 xfx-insn ;
|
||||
: MTOCRF ( fxm rs -- ) swap 0x100 bitor 1 shift 144 0 31 xfx-insn ;
|
||||
: MFOCRF ( rt fxm -- ) 0x100 bitor 1 shift 19 0 31 xfx-insn ;
|
||||
|
||||
! 3.3.15.2 Move To/From System Registers (Category: Embedded)
|
||||
: MCRXR ( bf -- ) 2 shift 0 0 512 0 31 x-insn ;
|
||||
|
@ -1426,62 +1426,62 @@ tri* 134 1 63 x-insn ;
|
|||
: NMACHLWSO. ( rt ra rb -- ) 1 494 1 4 xo-insn ; deprecated
|
||||
|
||||
! E.2.2 Simple Branch Mnemonics
|
||||
: BLR ( -- ) HEX: 14 0 0 BCLR ;
|
||||
: BCTR ( -- ) HEX: 14 0 0 BCCTR ;
|
||||
: BLRL ( -- ) HEX: 14 0 0 BCLRL ;
|
||||
: BCTRL ( -- ) HEX: 14 0 0 BCCTRL ;
|
||||
: BT ( bi target_addr -- ) [ HEX: C ] 2dip BC ;
|
||||
: BTA ( bi target_addr -- ) [ HEX: C ] 2dip BCA ;
|
||||
: BTLR ( bi target_addr -- ) [ HEX: C ] 2dip BCLR ;
|
||||
: BTCTR ( bi target_addr -- ) [ HEX: C ] 2dip BCCTR ;
|
||||
: BTL ( bi target_addr -- ) [ HEX: C ] 2dip BCL ;
|
||||
: BTLA ( bi target_addr -- ) [ HEX: C ] 2dip BCLA ;
|
||||
: BTLRL ( bi target_addr -- ) [ HEX: C ] 2dip BCLRL ;
|
||||
: BTCTRL ( bi target_addr -- ) [ HEX: C ] 2dip BCCTRL ;
|
||||
: BF ( bi target_addr -- ) [ HEX: 4 ] 2dip BC ;
|
||||
: BFA ( bi target_addr -- ) [ HEX: 4 ] 2dip BCA ;
|
||||
: BFLR ( bi target_addr -- ) [ HEX: 4 ] 2dip BCLR ;
|
||||
: BFCTR ( bi target_addr -- ) [ HEX: 4 ] 2dip BCCTR ;
|
||||
: BFL ( bi target_addr -- ) [ HEX: 4 ] 2dip BCL ;
|
||||
: BFLA ( bi target_addr -- ) [ HEX: 4 ] 2dip BCLA ;
|
||||
: BFLRL ( bi target_addr -- ) [ HEX: 4 ] 2dip BCLRL ;
|
||||
: BFCTRL ( bi target_addr -- ) [ HEX: 4 ] 2dip BCCTRL ;
|
||||
: BDNZ ( target_addr -- ) [ HEX: 10 0 ] dip BC ;
|
||||
: BDNZA ( target_addr -- ) [ HEX: 10 0 ] dip BCA ;
|
||||
: BDNZLR ( target_addr -- ) [ HEX: 10 0 ] dip BCLR ;
|
||||
: BDNZL ( target_addr -- ) [ HEX: 10 0 ] dip BCL ;
|
||||
: BDNZLA ( target_addr -- ) [ HEX: 10 0 ] dip BCLA ;
|
||||
: BDNZLRL ( target_addr -- ) [ HEX: 10 0 ] dip BCLRL ;
|
||||
: BDNZT ( bi target_addr -- ) [ HEX: 8 ] 2dip BC ;
|
||||
: BDNZTA ( bi target_addr -- ) [ HEX: 8 ] 2dip BCA ;
|
||||
: BDNZTLR ( bi target_addr -- ) [ HEX: 8 ] 2dip BCLR ;
|
||||
: BDNZTL ( bi target_addr -- ) [ HEX: 8 ] 2dip BCL ;
|
||||
: BDNZTLA ( bi target_addr -- ) [ HEX: 8 ] 2dip BCLA ;
|
||||
: BDNZTLRL ( bi target_addr -- ) [ HEX: 8 ] 2dip BCLRL ;
|
||||
: BDNZF ( bi target_addr -- ) [ HEX: 0 ] 2dip BC ;
|
||||
: BDNZFA ( bi target_addr -- ) [ HEX: 0 ] 2dip BCA ;
|
||||
: BDNZFLR ( bi target_addr -- ) [ HEX: 0 ] 2dip BCLR ;
|
||||
: BDNZFL ( bi target_addr -- ) [ HEX: 0 ] 2dip BCL ;
|
||||
: BDNZFLA ( bi target_addr -- ) [ HEX: 0 ] 2dip BCLA ;
|
||||
: BDNZFLRL ( bi target_addr -- ) [ HEX: 0 ] 2dip BCLRL ;
|
||||
: BDZ ( target_addr -- ) [ HEX: 12 0 ] dip BC ;
|
||||
: BDZA ( target_addr -- ) [ HEX: 12 0 ] dip BCA ;
|
||||
: BDZLR ( target_addr -- ) [ HEX: 12 0 ] dip BCLR ;
|
||||
: BDZL ( target_addr -- ) [ HEX: 12 0 ] dip BCL ;
|
||||
: BDZLA ( target_addr -- ) [ HEX: 12 0 ] dip BCLA ;
|
||||
: BDZLRL ( target_addr -- ) [ HEX: 12 0 ] dip BCLRL ;
|
||||
: BDZT ( bi target_addr -- ) [ HEX: A ] 2dip BC ;
|
||||
: BDZTA ( bi target_addr -- ) [ HEX: A ] 2dip BCA ;
|
||||
: BDZTLR ( bi target_addr -- ) [ HEX: A ] 2dip BCLR ;
|
||||
: BDZTL ( bi target_addr -- ) [ HEX: A ] 2dip BCL ;
|
||||
: BDZTLA ( bi target_addr -- ) [ HEX: A ] 2dip BCLA ;
|
||||
: BDZTLRL ( bi target_addr -- ) [ HEX: A ] 2dip BCLRL ;
|
||||
: BDZF ( bi target_addr -- ) [ HEX: 2 ] 2dip BC ;
|
||||
: BDZFA ( bi target_addr -- ) [ HEX: 2 ] 2dip BCA ;
|
||||
: BDZFLR ( bi target_addr -- ) [ HEX: 2 ] 2dip BCLR ;
|
||||
: BDZFL ( bi target_addr -- ) [ HEX: 2 ] 2dip BCL ;
|
||||
: BDZFLA ( bi target_addr -- ) [ HEX: 2 ] 2dip BCLA ;
|
||||
: BDZFLRL ( bi target_addr -- ) [ HEX: 2 ] 2dip BCLRL ;
|
||||
: BLR ( -- ) 0x14 0 0 BCLR ;
|
||||
: BCTR ( -- ) 0x14 0 0 BCCTR ;
|
||||
: BLRL ( -- ) 0x14 0 0 BCLRL ;
|
||||
: BCTRL ( -- ) 0x14 0 0 BCCTRL ;
|
||||
: BT ( bi target_addr -- ) [ 0xC ] 2dip BC ;
|
||||
: BTA ( bi target_addr -- ) [ 0xC ] 2dip BCA ;
|
||||
: BTLR ( bi target_addr -- ) [ 0xC ] 2dip BCLR ;
|
||||
: BTCTR ( bi target_addr -- ) [ 0xC ] 2dip BCCTR ;
|
||||
: BTL ( bi target_addr -- ) [ 0xC ] 2dip BCL ;
|
||||
: BTLA ( bi target_addr -- ) [ 0xC ] 2dip BCLA ;
|
||||
: BTLRL ( bi target_addr -- ) [ 0xC ] 2dip BCLRL ;
|
||||
: BTCTRL ( bi target_addr -- ) [ 0xC ] 2dip BCCTRL ;
|
||||
: BF ( bi target_addr -- ) [ 0x4 ] 2dip BC ;
|
||||
: BFA ( bi target_addr -- ) [ 0x4 ] 2dip BCA ;
|
||||
: BFLR ( bi target_addr -- ) [ 0x4 ] 2dip BCLR ;
|
||||
: BFCTR ( bi target_addr -- ) [ 0x4 ] 2dip BCCTR ;
|
||||
: BFL ( bi target_addr -- ) [ 0x4 ] 2dip BCL ;
|
||||
: BFLA ( bi target_addr -- ) [ 0x4 ] 2dip BCLA ;
|
||||
: BFLRL ( bi target_addr -- ) [ 0x4 ] 2dip BCLRL ;
|
||||
: BFCTRL ( bi target_addr -- ) [ 0x4 ] 2dip BCCTRL ;
|
||||
: BDNZ ( target_addr -- ) [ 0x10 0 ] dip BC ;
|
||||
: BDNZA ( target_addr -- ) [ 0x10 0 ] dip BCA ;
|
||||
: BDNZLR ( target_addr -- ) [ 0x10 0 ] dip BCLR ;
|
||||
: BDNZL ( target_addr -- ) [ 0x10 0 ] dip BCL ;
|
||||
: BDNZLA ( target_addr -- ) [ 0x10 0 ] dip BCLA ;
|
||||
: BDNZLRL ( target_addr -- ) [ 0x10 0 ] dip BCLRL ;
|
||||
: BDNZT ( bi target_addr -- ) [ 0x8 ] 2dip BC ;
|
||||
: BDNZTA ( bi target_addr -- ) [ 0x8 ] 2dip BCA ;
|
||||
: BDNZTLR ( bi target_addr -- ) [ 0x8 ] 2dip BCLR ;
|
||||
: BDNZTL ( bi target_addr -- ) [ 0x8 ] 2dip BCL ;
|
||||
: BDNZTLA ( bi target_addr -- ) [ 0x8 ] 2dip BCLA ;
|
||||
: BDNZTLRL ( bi target_addr -- ) [ 0x8 ] 2dip BCLRL ;
|
||||
: BDNZF ( bi target_addr -- ) [ 0x0 ] 2dip BC ;
|
||||
: BDNZFA ( bi target_addr -- ) [ 0x0 ] 2dip BCA ;
|
||||
: BDNZFLR ( bi target_addr -- ) [ 0x0 ] 2dip BCLR ;
|
||||
: BDNZFL ( bi target_addr -- ) [ 0x0 ] 2dip BCL ;
|
||||
: BDNZFLA ( bi target_addr -- ) [ 0x0 ] 2dip BCLA ;
|
||||
: BDNZFLRL ( bi target_addr -- ) [ 0x0 ] 2dip BCLRL ;
|
||||
: BDZ ( target_addr -- ) [ 0x12 0 ] dip BC ;
|
||||
: BDZA ( target_addr -- ) [ 0x12 0 ] dip BCA ;
|
||||
: BDZLR ( target_addr -- ) [ 0x12 0 ] dip BCLR ;
|
||||
: BDZL ( target_addr -- ) [ 0x12 0 ] dip BCL ;
|
||||
: BDZLA ( target_addr -- ) [ 0x12 0 ] dip BCLA ;
|
||||
: BDZLRL ( target_addr -- ) [ 0x12 0 ] dip BCLRL ;
|
||||
: BDZT ( bi target_addr -- ) [ 0xA ] 2dip BC ;
|
||||
: BDZTA ( bi target_addr -- ) [ 0xA ] 2dip BCA ;
|
||||
: BDZTLR ( bi target_addr -- ) [ 0xA ] 2dip BCLR ;
|
||||
: BDZTL ( bi target_addr -- ) [ 0xA ] 2dip BCL ;
|
||||
: BDZTLA ( bi target_addr -- ) [ 0xA ] 2dip BCLA ;
|
||||
: BDZTLRL ( bi target_addr -- ) [ 0xA ] 2dip BCLRL ;
|
||||
: BDZF ( bi target_addr -- ) [ 0x2 ] 2dip BC ;
|
||||
: BDZFA ( bi target_addr -- ) [ 0x2 ] 2dip BCA ;
|
||||
: BDZFLR ( bi target_addr -- ) [ 0x2 ] 2dip BCLR ;
|
||||
: BDZFL ( bi target_addr -- ) [ 0x2 ] 2dip BCL ;
|
||||
: BDZFLA ( bi target_addr -- ) [ 0x2 ] 2dip BCLA ;
|
||||
: BDZFLRL ( bi target_addr -- ) [ 0x2 ] 2dip BCLRL ;
|
||||
|
||||
! E.2.3 Branch Mnemonics Incorporating Conditions
|
||||
: BLT ( cr target_addr -- ) [ 4 * 0 + ] dip [ 12 ] 2dip BC ;
|
||||
|
@ -1582,62 +1582,62 @@ tri* 134 1 63 x-insn ;
|
|||
: BGECTRL ( cr target_addr -- ) BNLCTRL ;
|
||||
|
||||
! E.2.4 Branch Prediction
|
||||
: BT+ ( bi target_addr -- ) [ HEX: F ] 2dip BC ;
|
||||
: BTA+ ( bi target_addr -- ) [ HEX: F ] 2dip BCA ;
|
||||
: BTLR+ ( bi target_addr -- ) [ HEX: F ] 2dip BCLR ;
|
||||
: BTCTR+ ( bi target_addr -- ) [ HEX: F ] 2dip BCCTR ;
|
||||
: BTL+ ( bi target_addr -- ) [ HEX: F ] 2dip BCL ;
|
||||
: BTLA+ ( bi target_addr -- ) [ HEX: F ] 2dip BCLA ;
|
||||
: BTLRL+ ( bi target_addr -- ) [ HEX: F ] 2dip BCLRL ;
|
||||
: BTCTRL+ ( bi target_addr -- ) [ HEX: F ] 2dip BCCTRL ;
|
||||
: BF+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BC ;
|
||||
: BFA+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCA ;
|
||||
: BFLR+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCLR ;
|
||||
: BFCTR+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCCTR ;
|
||||
: BFL+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCL ;
|
||||
: BFLA+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCLA ;
|
||||
: BFLRL+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCLRL ;
|
||||
: BFCTRL+ ( bi target_addr -- ) [ HEX: 7 ] 2dip BCCTRL ;
|
||||
: BDNZ+ ( target_addr -- ) [ HEX: 19 0 ] dip BC ;
|
||||
: BDNZA+ ( target_addr -- ) [ HEX: 19 0 ] dip BCA ;
|
||||
: BDNZLR+ ( target_addr -- ) [ HEX: 19 0 ] dip BCLR ;
|
||||
: BDNZL+ ( target_addr -- ) [ HEX: 19 0 ] dip BCL ;
|
||||
: BDNZLA+ ( target_addr -- ) [ HEX: 19 0 ] dip BCLA ;
|
||||
: BDNZLRL+ ( target_addr -- ) [ HEX: 19 0 ] dip BCLRL ;
|
||||
: BDZ+ ( target_addr -- ) [ HEX: 1B 0 ] dip BC ;
|
||||
: BDZA+ ( target_addr -- ) [ HEX: 1B 0 ] dip BCA ;
|
||||
: BDZLR+ ( target_addr -- ) [ HEX: 1B 0 ] dip BCLR ;
|
||||
: BDZL+ ( target_addr -- ) [ HEX: 1B 0 ] dip BCL ;
|
||||
: BDZLA+ ( target_addr -- ) [ HEX: 1B 0 ] dip BCLA ;
|
||||
: BDZLRL+ ( target_addr -- ) [ HEX: 1B 0 ] dip BCLRL ;
|
||||
: BT- ( bi target_addr -- ) [ HEX: E ] 2dip BC ;
|
||||
: BTA- ( bi target_addr -- ) [ HEX: E ] 2dip BCA ;
|
||||
: BTLR- ( bi target_addr -- ) [ HEX: E ] 2dip BCLR ;
|
||||
: BTCTR- ( bi target_addr -- ) [ HEX: E ] 2dip BCCTR ;
|
||||
: BTL- ( bi target_addr -- ) [ HEX: E ] 2dip BCL ;
|
||||
: BTLA- ( bi target_addr -- ) [ HEX: E ] 2dip BCLA ;
|
||||
: BTLRL- ( bi target_addr -- ) [ HEX: E ] 2dip BCLRL ;
|
||||
: BTCTRL- ( bi target_addr -- ) [ HEX: E ] 2dip BCCTRL ;
|
||||
: BF- ( bi target_addr -- ) [ HEX: 6 ] 2dip BC ;
|
||||
: BFA- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCA ;
|
||||
: BFLR- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCLR ;
|
||||
: BFCTR- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCCTR ;
|
||||
: BFL- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCL ;
|
||||
: BFLA- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCLA ;
|
||||
: BFLRL- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCLRL ;
|
||||
: BFCTRL- ( bi target_addr -- ) [ HEX: 6 ] 2dip BCCTRL ;
|
||||
: BDNZ- ( target_addr -- ) [ HEX: 18 0 ] dip BC ;
|
||||
: BDNZA- ( target_addr -- ) [ HEX: 18 0 ] dip BCA ;
|
||||
: BDNZLR- ( target_addr -- ) [ HEX: 18 0 ] dip BCLR ;
|
||||
: BDNZL- ( target_addr -- ) [ HEX: 18 0 ] dip BCL ;
|
||||
: BDNZLA- ( target_addr -- ) [ HEX: 18 0 ] dip BCLA ;
|
||||
: BDNZLRL- ( target_addr -- ) [ HEX: 18 0 ] dip BCLRL ;
|
||||
: BDZ- ( target_addr -- ) [ HEX: 1A 0 ] dip BC ;
|
||||
: BDZA- ( target_addr -- ) [ HEX: 1A 0 ] dip BCA ;
|
||||
: BDZLR- ( target_addr -- ) [ HEX: 1A 0 ] dip BCLR ;
|
||||
: BDZL- ( target_addr -- ) [ HEX: 1A 0 ] dip BCL ;
|
||||
: BDZLA- ( target_addr -- ) [ HEX: 1A 0 ] dip BCLA ;
|
||||
: BDZLRL- ( target_addr -- ) [ HEX: 1A 0 ] dip BCLRL ;
|
||||
: BT+ ( bi target_addr -- ) [ 0xF ] 2dip BC ;
|
||||
: BTA+ ( bi target_addr -- ) [ 0xF ] 2dip BCA ;
|
||||
: BTLR+ ( bi target_addr -- ) [ 0xF ] 2dip BCLR ;
|
||||
: BTCTR+ ( bi target_addr -- ) [ 0xF ] 2dip BCCTR ;
|
||||
: BTL+ ( bi target_addr -- ) [ 0xF ] 2dip BCL ;
|
||||
: BTLA+ ( bi target_addr -- ) [ 0xF ] 2dip BCLA ;
|
||||
: BTLRL+ ( bi target_addr -- ) [ 0xF ] 2dip BCLRL ;
|
||||
: BTCTRL+ ( bi target_addr -- ) [ 0xF ] 2dip BCCTRL ;
|
||||
: BF+ ( bi target_addr -- ) [ 0x7 ] 2dip BC ;
|
||||
: BFA+ ( bi target_addr -- ) [ 0x7 ] 2dip BCA ;
|
||||
: BFLR+ ( bi target_addr -- ) [ 0x7 ] 2dip BCLR ;
|
||||
: BFCTR+ ( bi target_addr -- ) [ 0x7 ] 2dip BCCTR ;
|
||||
: BFL+ ( bi target_addr -- ) [ 0x7 ] 2dip BCL ;
|
||||
: BFLA+ ( bi target_addr -- ) [ 0x7 ] 2dip BCLA ;
|
||||
: BFLRL+ ( bi target_addr -- ) [ 0x7 ] 2dip BCLRL ;
|
||||
: BFCTRL+ ( bi target_addr -- ) [ 0x7 ] 2dip BCCTRL ;
|
||||
: BDNZ+ ( target_addr -- ) [ 0x19 0 ] dip BC ;
|
||||
: BDNZA+ ( target_addr -- ) [ 0x19 0 ] dip BCA ;
|
||||
: BDNZLR+ ( target_addr -- ) [ 0x19 0 ] dip BCLR ;
|
||||
: BDNZL+ ( target_addr -- ) [ 0x19 0 ] dip BCL ;
|
||||
: BDNZLA+ ( target_addr -- ) [ 0x19 0 ] dip BCLA ;
|
||||
: BDNZLRL+ ( target_addr -- ) [ 0x19 0 ] dip BCLRL ;
|
||||
: BDZ+ ( target_addr -- ) [ 0x1B 0 ] dip BC ;
|
||||
: BDZA+ ( target_addr -- ) [ 0x1B 0 ] dip BCA ;
|
||||
: BDZLR+ ( target_addr -- ) [ 0x1B 0 ] dip BCLR ;
|
||||
: BDZL+ ( target_addr -- ) [ 0x1B 0 ] dip BCL ;
|
||||
: BDZLA+ ( target_addr -- ) [ 0x1B 0 ] dip BCLA ;
|
||||
: BDZLRL+ ( target_addr -- ) [ 0x1B 0 ] dip BCLRL ;
|
||||
: BT- ( bi target_addr -- ) [ 0xE ] 2dip BC ;
|
||||
: BTA- ( bi target_addr -- ) [ 0xE ] 2dip BCA ;
|
||||
: BTLR- ( bi target_addr -- ) [ 0xE ] 2dip BCLR ;
|
||||
: BTCTR- ( bi target_addr -- ) [ 0xE ] 2dip BCCTR ;
|
||||
: BTL- ( bi target_addr -- ) [ 0xE ] 2dip BCL ;
|
||||
: BTLA- ( bi target_addr -- ) [ 0xE ] 2dip BCLA ;
|
||||
: BTLRL- ( bi target_addr -- ) [ 0xE ] 2dip BCLRL ;
|
||||
: BTCTRL- ( bi target_addr -- ) [ 0xE ] 2dip BCCTRL ;
|
||||
: BF- ( bi target_addr -- ) [ 0x6 ] 2dip BC ;
|
||||
: BFA- ( bi target_addr -- ) [ 0x6 ] 2dip BCA ;
|
||||
: BFLR- ( bi target_addr -- ) [ 0x6 ] 2dip BCLR ;
|
||||
: BFCTR- ( bi target_addr -- ) [ 0x6 ] 2dip BCCTR ;
|
||||
: BFL- ( bi target_addr -- ) [ 0x6 ] 2dip BCL ;
|
||||
: BFLA- ( bi target_addr -- ) [ 0x6 ] 2dip BCLA ;
|
||||
: BFLRL- ( bi target_addr -- ) [ 0x6 ] 2dip BCLRL ;
|
||||
: BFCTRL- ( bi target_addr -- ) [ 0x6 ] 2dip BCCTRL ;
|
||||
: BDNZ- ( target_addr -- ) [ 0x18 0 ] dip BC ;
|
||||
: BDNZA- ( target_addr -- ) [ 0x18 0 ] dip BCA ;
|
||||
: BDNZLR- ( target_addr -- ) [ 0x18 0 ] dip BCLR ;
|
||||
: BDNZL- ( target_addr -- ) [ 0x18 0 ] dip BCL ;
|
||||
: BDNZLA- ( target_addr -- ) [ 0x18 0 ] dip BCLA ;
|
||||
: BDNZLRL- ( target_addr -- ) [ 0x18 0 ] dip BCLRL ;
|
||||
: BDZ- ( target_addr -- ) [ 0x1A 0 ] dip BC ;
|
||||
: BDZA- ( target_addr -- ) [ 0x1A 0 ] dip BCA ;
|
||||
: BDZLR- ( target_addr -- ) [ 0x1A 0 ] dip BCLR ;
|
||||
: BDZL- ( target_addr -- ) [ 0x1A 0 ] dip BCL ;
|
||||
: BDZLA- ( target_addr -- ) [ 0x1A 0 ] dip BCLA ;
|
||||
: BDZLRL- ( target_addr -- ) [ 0x1A 0 ] dip BCLRL ;
|
||||
: BLT+ ( cr target_addr -- ) [ 4 * 0 + ] dip [ 15 ] 2dip BC ;
|
||||
: BLTA+ ( cr target_addr -- ) [ 4 * 0 + ] dip [ 15 ] 2dip BCA ;
|
||||
: BLTLR+ ( cr target_addr -- ) [ 4 * 0 + ] dip [ 15 ] 2dip BCLR ;
|
||||
|
@ -2002,4 +2002,4 @@ tri* 134 1 63 x-insn ;
|
|||
: MR. ( dst src -- ) dup OR. ;
|
||||
: NOT ( dst src -- ) dup NOR ;
|
||||
: NOT. ( dst src -- ) dup NOR. ;
|
||||
: MTCR ( rx -- ) HEX: ff swap MTCRF ; deprecated
|
||||
: MTCR ( rx -- ) 0xff swap MTCRF ; deprecated
|
||||
|
|
|
@ -79,16 +79,16 @@ M: ppc gc-root-offset ( spill-slot -- n )
|
|||
n>> spill@ cell /i ;
|
||||
|
||||
: LOAD32 ( r n -- )
|
||||
[ -16 shift HEX: ffff bitand LIS ]
|
||||
[ [ dup ] dip HEX: ffff bitand ORI ] 2bi ;
|
||||
[ -16 shift 0xffff bitand LIS ]
|
||||
[ [ dup ] dip 0xffff bitand ORI ] 2bi ;
|
||||
|
||||
: LOAD64 ( r n -- )
|
||||
[ dup ] dip {
|
||||
[ nip -48 shift HEX: ffff bitand LIS ]
|
||||
[ -32 shift HEX: ffff bitand ORI ]
|
||||
[ nip -48 shift 0xffff bitand LIS ]
|
||||
[ -32 shift 0xffff bitand ORI ]
|
||||
[ drop 32 SLDI ]
|
||||
[ -16 shift HEX: ffff bitand ORIS ]
|
||||
[ HEX: ffff bitand ORI ]
|
||||
[ -16 shift 0xffff bitand ORIS ]
|
||||
[ 0xffff bitand ORI ]
|
||||
} 3cleave ;
|
||||
|
||||
HOOK: %clear-tag-bits cpu ( dst src -- )
|
||||
|
@ -138,9 +138,9 @@ M: ppc.32 %load-cell-imm-rc rc-absolute-ppc-2/2 ;
|
|||
M: ppc.64 %load-cell-imm-rc rc-absolute-ppc-2/2/2/2 ;
|
||||
|
||||
M: ppc.32 %load-immediate ( reg val -- )
|
||||
dup HEX: -8000 HEX: 7fff between? [ LI ] [ LOAD32 ] if ;
|
||||
dup -0x8000 0x7fff between? [ LI ] [ LOAD32 ] if ;
|
||||
M: ppc.64 %load-immediate ( reg val -- )
|
||||
dup HEX: -8000 HEX: 7fff between? [ LI ] [ LOAD64 ] if ;
|
||||
dup -0x8000 0x7fff between? [ LI ] [ LOAD64 ] if ;
|
||||
|
||||
M: ppc %load-reference ( reg obj -- )
|
||||
[ [ 0 %load-cell-imm ] [ %load-cell-imm-rc rel-literal ] bi* ]
|
||||
|
|
|
@ -46,13 +46,13 @@ M: x86.32 %vm-field-ptr ( dst field -- )
|
|||
[ 0 MOV ] dip rc-absolute-cell rel-vm ;
|
||||
|
||||
M: x86.32 %mark-card
|
||||
drop HEX: ffffffff [+] card-mark <byte> MOV
|
||||
drop 0xffffffff [+] card-mark <byte> MOV
|
||||
building get pop
|
||||
rc-absolute-cell rel-cards-offset
|
||||
building get push ;
|
||||
|
||||
M: x86.32 %mark-deck
|
||||
drop HEX: ffffffff [+] card-mark <byte> MOV
|
||||
drop 0xffffffff [+] card-mark <byte> MOV
|
||||
building get pop
|
||||
rc-absolute-cell rel-decks-offset
|
||||
building get push ;
|
||||
|
|
|
@ -217,7 +217,7 @@ IN: bootstrap.x86
|
|||
\ lazy-jit-compile define-combinator-primitive
|
||||
|
||||
[
|
||||
temp1 HEX: ffffffff CMP f rc-absolute-cell rel-literal
|
||||
temp1 0xffffffff CMP f rc-absolute-cell rel-literal
|
||||
] pic-check-tuple jit-define
|
||||
|
||||
! Inline cache miss entry points
|
||||
|
|
|
@ -193,7 +193,7 @@ IN: bootstrap.x86
|
|||
\ lazy-jit-compile define-combinator-primitive
|
||||
|
||||
[
|
||||
temp2 HEX: ffffffff MOV f rc-absolute-cell rel-literal
|
||||
temp2 0xffffffff MOV f rc-absolute-cell rel-literal
|
||||
temp1 temp2 CMP
|
||||
] pic-check-tuple jit-define
|
||||
|
||||
|
|
|
@ -13,279 +13,279 @@ IN: cpu.x86.assembler.tests
|
|||
|
||||
! immediate operands
|
||||
cell 4 = [
|
||||
[ { HEX: b9 HEX: 01 HEX: 00 HEX: 00 HEX: 00 } ] [ [ ECX 1 MOV ] { } make ] unit-test
|
||||
[ { 0xb9 0x01 0x00 0x00 0x00 } ] [ [ ECX 1 MOV ] { } make ] unit-test
|
||||
] [
|
||||
[ { HEX: b9 HEX: 01 HEX: 00 HEX: 00 HEX: 00 HEX: 00 HEX: 00 HEX: 00 HEX: 00 } ] [ [ ECX 1 MOV ] { } make ] unit-test
|
||||
[ { 0xb9 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 } ] [ [ ECX 1 MOV ] { } make ] unit-test
|
||||
] if
|
||||
|
||||
[ { HEX: 83 HEX: c1 HEX: 01 } ] [ [ ECX 1 ADD ] { } make ] unit-test
|
||||
[ { HEX: 81 HEX: c1 HEX: 96 HEX: 00 HEX: 00 HEX: 00 } ] [ [ ECX 150 ADD ] { } make ] unit-test
|
||||
[ { HEX: f7 HEX: c1 HEX: d2 HEX: 04 HEX: 00 HEX: 00 } ] [ [ ECX 1234 TEST ] { } make ] unit-test
|
||||
[ { 0x83 0xc1 0x01 } ] [ [ ECX 1 ADD ] { } make ] unit-test
|
||||
[ { 0x81 0xc1 0x96 0x00 0x00 0x00 } ] [ [ ECX 150 ADD ] { } make ] unit-test
|
||||
[ { 0xf7 0xc1 0xd2 0x04 0x00 0x00 } ] [ [ ECX 1234 TEST ] { } make ] unit-test
|
||||
|
||||
! 64-bit registers
|
||||
[ { HEX: 40 HEX: 8a HEX: 2a } ] [ [ BPL RDX [] MOV ] { } make ] unit-test
|
||||
[ { 0x40 0x8a 0x2a } ] [ [ BPL RDX [] MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 49 HEX: 89 HEX: 04 HEX: 24 } ] [ [ R12 [] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 49 HEX: 8b HEX: 06 } ] [ [ RAX R14 [] MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x04 0x24 } ] [ [ R12 [] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x8b 0x06 } ] [ [ RAX R14 [] MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 89 HEX: ca } ] [ [ EDX ECX MOV ] { } make ] unit-test
|
||||
[ { HEX: 4c HEX: 89 HEX: e2 } ] [ [ RDX R12 MOV ] { } make ] unit-test
|
||||
[ { HEX: 49 HEX: 89 HEX: d4 } ] [ [ R12 RDX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0xca } ] [ [ EDX ECX MOV ] { } make ] unit-test
|
||||
[ { 0x4c 0x89 0xe2 } ] [ [ RDX R12 MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0xd4 } ] [ [ R12 RDX MOV ] { } make ] unit-test
|
||||
|
||||
! memory address modes
|
||||
[ { HEX: 8a HEX: 18 } ] [ [ BL RAX [] MOV ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 8b HEX: 18 } ] [ [ BX RAX [] MOV ] { } make ] unit-test
|
||||
[ { HEX: 8b HEX: 18 } ] [ [ EBX RAX [] MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 8b HEX: 18 } ] [ [ RBX RAX [] MOV ] { } make ] unit-test
|
||||
[ { HEX: 88 HEX: 18 } ] [ [ RAX [] BL MOV ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 89 HEX: 18 } ] [ [ RAX [] BX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 18 } ] [ [ RAX [] EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 18 } ] [ [ RAX [] RBX MOV ] { } make ] unit-test
|
||||
[ { 0x8a 0x18 } ] [ [ BL RAX [] MOV ] { } make ] unit-test
|
||||
[ { 0x66 0x8b 0x18 } ] [ [ BX RAX [] MOV ] { } make ] unit-test
|
||||
[ { 0x8b 0x18 } ] [ [ EBX RAX [] MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x8b 0x18 } ] [ [ RBX RAX [] MOV ] { } make ] unit-test
|
||||
[ { 0x88 0x18 } ] [ [ RAX [] BL MOV ] { } make ] unit-test
|
||||
[ { 0x66 0x89 0x18 } ] [ [ RAX [] BX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x18 } ] [ [ RAX [] EBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x18 } ] [ [ RAX [] RBX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: be HEX: c3 } ] [ [ EAX BL MOVSX ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: bf HEX: c3 } ] [ [ EAX BX MOVSX ] { } make ] unit-test
|
||||
[ { 0x0f 0xbe 0xc3 } ] [ [ EAX BL MOVSX ] { } make ] unit-test
|
||||
[ { 0x0f 0xbf 0xc3 } ] [ [ EAX BX MOVSX ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 80 HEX: 08 HEX: 05 } ] [ [ EAX [] 5 <byte> OR ] { } make ] unit-test
|
||||
[ { HEX: c6 HEX: 00 HEX: 05 } ] [ [ EAX [] 5 <byte> MOV ] { } make ] unit-test
|
||||
[ { 0x80 0x08 0x05 } ] [ [ EAX [] 5 <byte> OR ] { } make ] unit-test
|
||||
[ { 0xc6 0x00 0x05 } ] [ [ EAX [] 5 <byte> MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 49 HEX: 89 HEX: 04 HEX: 1a } ] [ [ R10 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 49 HEX: 89 HEX: 04 HEX: 1b } ] [ [ R11 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x04 0x1a } ] [ [ R10 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x04 0x1b } ] [ [ R11 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 49 HEX: 89 HEX: 04 HEX: 1c } ] [ [ R12 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 04 HEX: 1c } ] [ [ RSP RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x04 0x1c } ] [ [ R12 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x04 0x1c } ] [ [ RSP RBX [+] RAX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 49 HEX: 89 HEX: 44 HEX: 1d HEX: 00 } ] [ [ R13 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 44 HEX: 1d HEX: 00 } ] [ [ RBP RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x44 0x1d 0x00 } ] [ [ R13 RBX [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x44 0x1d 0x00 } ] [ [ RBP RBX [+] RAX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 4a HEX: 89 HEX: 04 HEX: 23 } ] [ [ RBX R12 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 4a HEX: 89 HEX: 04 HEX: 2b } ] [ [ RBX R13 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x4a 0x89 0x04 0x23 } ] [ [ RBX R12 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x4a 0x89 0x04 0x2b } ] [ [ RBX R13 [+] RAX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 4b HEX: 89 HEX: 44 HEX: 25 HEX: 00 } ] [ [ R13 R12 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { HEX: 4b HEX: 89 HEX: 04 HEX: 2c } ] [ [ R12 R13 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x4b 0x89 0x44 0x25 0x00 } ] [ [ R13 R12 [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x4b 0x89 0x04 0x2c } ] [ [ R12 R13 [+] RAX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 49 HEX: 89 HEX: 04 HEX: 2c } ] [ [ R12 RBP [+] RAX MOV ] { } make ] unit-test
|
||||
[ { 0x49 0x89 0x04 0x2c } ] [ [ R12 RBP [+] RAX MOV ] { } make ] unit-test
|
||||
[ [ R12 RSP [+] RAX MOV ] { } make ] must-fail
|
||||
|
||||
[ { HEX: 89 HEX: 1c HEX: 11 } ] [ [ ECX EDX [+] EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 1c HEX: 51 } ] [ [ ECX EDX 1 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 1c HEX: 91 } ] [ [ ECX EDX 2 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 1c HEX: d1 } ] [ [ ECX EDX 3 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 5c HEX: 11 HEX: 64 } ] [ [ ECX EDX 0 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 5c HEX: 51 HEX: 64 } ] [ [ ECX EDX 1 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 5c HEX: 91 HEX: 64 } ] [ [ ECX EDX 2 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 89 HEX: 5c HEX: d1 HEX: 64 } ] [ [ ECX EDX 3 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x1c 0x11 } ] [ [ ECX EDX [+] EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x1c 0x51 } ] [ [ ECX EDX 1 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x1c 0x91 } ] [ [ ECX EDX 2 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x1c 0xd1 } ] [ [ ECX EDX 3 0 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x5c 0x11 0x64 } ] [ [ ECX EDX 0 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x5c 0x51 0x64 } ] [ [ ECX EDX 1 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x5c 0x91 0x64 } ] [ [ ECX EDX 2 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
[ { 0x89 0x5c 0xd1 0x64 } ] [ [ ECX EDX 3 100 <indirect> EBX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 48 HEX: 89 HEX: 1c HEX: 11 } ] [ [ RCX RDX [+] RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 1c HEX: 51 } ] [ [ RCX RDX 1 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 1c HEX: 91 } ] [ [ RCX RDX 2 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 1c HEX: d1 } ] [ [ RCX RDX 3 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 5c HEX: 11 HEX: 64 } ] [ [ RCX RDX 0 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 5c HEX: 51 HEX: 64 } ] [ [ RCX RDX 1 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 5c HEX: 91 HEX: 64 } ] [ [ RCX RDX 2 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 89 HEX: 5c HEX: d1 HEX: 64 } ] [ [ RCX RDX 3 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x1c 0x11 } ] [ [ RCX RDX [+] RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x1c 0x51 } ] [ [ RCX RDX 1 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x1c 0x91 } ] [ [ RCX RDX 2 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x1c 0xd1 } ] [ [ RCX RDX 3 0 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x5c 0x11 0x64 } ] [ [ RCX RDX 0 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x5c 0x51 0x64 } ] [ [ RCX RDX 1 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x5c 0x91 0x64 } ] [ [ RCX RDX 2 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
[ { 0x48 0x89 0x5c 0xd1 0x64 } ] [ [ RCX RDX 3 100 <indirect> RBX MOV ] { } make ] unit-test
|
||||
|
||||
! r-rm / m-r sse instruction
|
||||
[ { HEX: 0f HEX: 10 HEX: c1 } ] [ [ XMM0 XMM1 MOVUPS ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: 10 HEX: 01 } ] [ [ XMM0 ECX [] MOVUPS ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: 11 HEX: 08 } ] [ [ EAX [] XMM1 MOVUPS ] { } make ] unit-test
|
||||
[ { 0x0f 0x10 0xc1 } ] [ [ XMM0 XMM1 MOVUPS ] { } make ] unit-test
|
||||
[ { 0x0f 0x10 0x01 } ] [ [ XMM0 ECX [] MOVUPS ] { } make ] unit-test
|
||||
[ { 0x0f 0x11 0x08 } ] [ [ EAX [] XMM1 MOVUPS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: f3 HEX: 0f HEX: 10 HEX: c1 } ] [ [ XMM0 XMM1 MOVSS ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 10 HEX: 01 } ] [ [ XMM0 ECX [] MOVSS ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 11 HEX: 08 } ] [ [ EAX [] XMM1 MOVSS ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x10 0xc1 } ] [ [ XMM0 XMM1 MOVSS ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x10 0x01 } ] [ [ XMM0 ECX [] MOVSS ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x11 0x08 } ] [ [ EAX [] XMM1 MOVSS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 0f HEX: 6f HEX: c1 } ] [ [ XMM0 XMM1 MOVDQA ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 6f HEX: 01 } ] [ [ XMM0 ECX [] MOVDQA ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 7f HEX: 08 } ] [ [ EAX [] XMM1 MOVDQA ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x6f 0xc1 } ] [ [ XMM0 XMM1 MOVDQA ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x6f 0x01 } ] [ [ XMM0 ECX [] MOVDQA ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x7f 0x08 } ] [ [ EAX [] XMM1 MOVDQA ] { } make ] unit-test
|
||||
|
||||
! r-rm only sse instruction
|
||||
[ { HEX: 66 HEX: 0f HEX: 2e HEX: c1 } ] [ [ XMM0 XMM1 UCOMISD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 2e HEX: 01 } ] [ [ XMM0 ECX [] UCOMISD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x2e 0xc1 } ] [ [ XMM0 XMM1 UCOMISD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x2e 0x01 } ] [ [ XMM0 ECX [] UCOMISD ] { } make ] unit-test
|
||||
[ [ EAX [] XMM1 UCOMISD ] { } make ] must-fail
|
||||
[ { HEX: 66 HEX: 0f HEX: 38 HEX: 2a HEX: 01 } ] [ [ XMM0 ECX [] MOVNTDQA ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x38 0x2a 0x01 } ] [ [ XMM0 ECX [] MOVNTDQA ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 48 HEX: 0f HEX: 6e HEX: c8 } ] [ [ XMM1 RAX MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 6e HEX: c8 } ] [ [ XMM1 EAX MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 48 HEX: 0f HEX: 7e HEX: c8 } ] [ [ RAX XMM1 MOVD ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 7e HEX: c8 } ] [ [ EAX XMM1 MOVD ] { } make ] unit-test
|
||||
[ { 0x66 0x48 0x0f 0x6e 0xc8 } ] [ [ XMM1 RAX MOVD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x6e 0xc8 } ] [ [ XMM1 EAX MOVD ] { } make ] unit-test
|
||||
[ { 0x66 0x48 0x0f 0x7e 0xc8 } ] [ [ RAX XMM1 MOVD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x7e 0xc8 } ] [ [ EAX XMM1 MOVD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: 08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: 08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: 7e HEX: ca } ] [ [ XMM1 XMM2 MOVQ ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x7e 0x08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x7e 0x08 } ] [ [ XMM1 EAX [] MOVQ ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0x7e 0xca } ] [ [ XMM1 XMM2 MOVQ ] { } make ] unit-test
|
||||
|
||||
! rm-r only sse instructions
|
||||
[ { HEX: 0f HEX: 2b HEX: 08 } ] [ [ EAX [] XMM1 MOVNTPS ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: e7 HEX: 08 } ] [ [ EAX [] XMM1 MOVNTDQ ] { } make ] unit-test
|
||||
[ { 0x0f 0x2b 0x08 } ] [ [ EAX [] XMM1 MOVNTPS ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xe7 0x08 } ] [ [ EAX [] XMM1 MOVNTDQ ] { } make ] unit-test
|
||||
|
||||
! three-byte-opcode ssse3 instruction
|
||||
[ { HEX: 66 HEX: 0f HEX: 38 HEX: 02 HEX: c1 } ] [ [ XMM0 XMM1 PHADDD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x38 0x02 0xc1 } ] [ [ XMM0 XMM1 PHADDD ] { } make ] unit-test
|
||||
|
||||
! int/sse conversion instruction
|
||||
[ { HEX: f2 HEX: 0f HEX: 2c HEX: c0 } ] [ [ EAX XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 48 HEX: 0f HEX: 2c HEX: c0 } ] [ [ RAX XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 4c HEX: 0f HEX: 2c HEX: e0 } ] [ [ R12 XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 0f HEX: 2a HEX: c0 } ] [ [ XMM0 EAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 48 HEX: 0f HEX: 2a HEX: c0 } ] [ [ XMM0 RAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 48 HEX: 0f HEX: 2a HEX: c1 } ] [ [ XMM0 RCX CVTSI2SD ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 48 HEX: 0f HEX: 2a HEX: d9 } ] [ [ XMM3 RCX CVTSI2SD ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 48 HEX: 0f HEX: 2a HEX: c0 } ] [ [ XMM0 RAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 49 HEX: 0f HEX: 2a HEX: c4 } ] [ [ XMM0 R12 CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x2c 0xc0 } ] [ [ EAX XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { 0xf2 0x48 0x0f 0x2c 0xc0 } ] [ [ RAX XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { 0xf2 0x4c 0x0f 0x2c 0xe0 } ] [ [ R12 XMM0 CVTTSD2SI ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x2a 0xc0 } ] [ [ XMM0 EAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x48 0x0f 0x2a 0xc0 } ] [ [ XMM0 RAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x48 0x0f 0x2a 0xc1 } ] [ [ XMM0 RCX CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x48 0x0f 0x2a 0xd9 } ] [ [ XMM3 RCX CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x48 0x0f 0x2a 0xc0 } ] [ [ XMM0 RAX CVTSI2SD ] { } make ] unit-test
|
||||
[ { 0xf2 0x49 0x0f 0x2a 0xc4 } ] [ [ XMM0 R12 CVTSI2SD ] { } make ] unit-test
|
||||
|
||||
! 3-operand r-rm-imm sse instructions
|
||||
[ { HEX: 66 HEX: 0f HEX: 70 HEX: c1 HEX: 02 } ]
|
||||
[ { 0x66 0x0f 0x70 0xc1 0x02 } ]
|
||||
[ [ XMM0 XMM1 2 PSHUFD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: c6 HEX: c1 HEX: 02 } ]
|
||||
[ { 0x0f 0xc6 0xc1 0x02 } ]
|
||||
[ [ XMM0 XMM1 2 SHUFPS ] { } make ] unit-test
|
||||
|
||||
! shufflers with arrays of indexes
|
||||
[ { HEX: 66 HEX: 0f HEX: 70 HEX: c1 HEX: 02 } ]
|
||||
[ { 0x66 0x0f 0x70 0xc1 0x02 } ]
|
||||
[ [ XMM0 XMM1 { 2 0 0 0 } PSHUFD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: c6 HEX: c1 HEX: 63 } ]
|
||||
[ { 0x0f 0xc6 0xc1 0x63 } ]
|
||||
[ [ XMM0 XMM1 { 3 0 2 1 } SHUFPS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 0f HEX: c6 HEX: c1 HEX: 2 } ]
|
||||
[ { 0x66 0x0f 0xc6 0xc1 0x2 } ]
|
||||
[ [ XMM0 XMM1 { 0 1 } SHUFPD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 0f HEX: c6 HEX: c1 HEX: 1 } ]
|
||||
[ { 0x66 0x0f 0xc6 0xc1 0x1 } ]
|
||||
[ [ XMM0 XMM1 { 1 0 } SHUFPD ] { } make ] unit-test
|
||||
|
||||
! scalar register insert/extract sse instructions
|
||||
[ { HEX: 66 HEX: 0f HEX: c4 HEX: c1 HEX: 02 } ] [ [ XMM0 ECX 2 PINSRW ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: c4 HEX: 04 HEX: 11 HEX: 03 } ] [ [ XMM0 ECX EDX [+] 3 PINSRW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xc4 0xc1 0x02 } ] [ [ XMM0 ECX 2 PINSRW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xc4 0x04 0x11 0x03 } ] [ [ XMM0 ECX EDX [+] 3 PINSRW ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: 0f HEX: c5 HEX: c1 HEX: 02 } ] [ [ EAX XMM1 2 PEXTRW ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 3a HEX: 15 HEX: 08 HEX: 02 } ] [ [ EAX [] XMM1 2 PEXTRW ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 3a HEX: 15 HEX: 14 HEX: 08 HEX: 03 } ] [ [ EAX ECX [+] XMM2 3 PEXTRW ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 3a HEX: 14 HEX: c8 HEX: 02 } ] [ [ EAX XMM1 2 PEXTRB ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 3a HEX: 14 HEX: 08 HEX: 02 } ] [ [ EAX [] XMM1 2 PEXTRB ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xc5 0xc1 0x02 } ] [ [ EAX XMM1 2 PEXTRW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x3a 0x15 0x08 0x02 } ] [ [ EAX [] XMM1 2 PEXTRW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x3a 0x15 0x14 0x08 0x03 } ] [ [ EAX ECX [+] XMM2 3 PEXTRW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x3a 0x14 0xc8 0x02 } ] [ [ EAX XMM1 2 PEXTRB ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x3a 0x14 0x08 0x02 } ] [ [ EAX [] XMM1 2 PEXTRB ] { } make ] unit-test
|
||||
|
||||
! sse shift instructions
|
||||
[ { HEX: 66 HEX: 0f HEX: 71 HEX: d0 HEX: 05 } ] [ [ XMM0 5 PSRLW ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: d1 HEX: c1 } ] [ [ XMM0 XMM1 PSRLW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x71 0xd0 0x05 } ] [ [ XMM0 5 PSRLW ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xd1 0xc1 } ] [ [ XMM0 XMM1 PSRLW ] { } make ] unit-test
|
||||
|
||||
! sse comparison instructions
|
||||
[ { HEX: 66 HEX: 0f HEX: c2 HEX: c1 HEX: 02 } ] [ [ XMM0 XMM1 CMPLEPD ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0xc2 0xc1 0x02 } ] [ [ XMM0 XMM1 CMPLEPD ] { } make ] unit-test
|
||||
|
||||
! unique sse instructions
|
||||
[ { HEX: 0f HEX: 18 HEX: 00 } ] [ [ EAX [] PREFETCHNTA ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: 18 HEX: 08 } ] [ [ EAX [] PREFETCHT0 ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: 18 HEX: 10 } ] [ [ EAX [] PREFETCHT1 ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: 18 HEX: 18 } ] [ [ EAX [] PREFETCHT2 ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ae HEX: 10 } ] [ [ EAX [] LDMXCSR ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ae HEX: 18 } ] [ [ EAX [] STMXCSR ] { } make ] unit-test
|
||||
[ { 0x0f 0x18 0x00 } ] [ [ EAX [] PREFETCHNTA ] { } make ] unit-test
|
||||
[ { 0x0f 0x18 0x08 } ] [ [ EAX [] PREFETCHT0 ] { } make ] unit-test
|
||||
[ { 0x0f 0x18 0x10 } ] [ [ EAX [] PREFETCHT1 ] { } make ] unit-test
|
||||
[ { 0x0f 0x18 0x18 } ] [ [ EAX [] PREFETCHT2 ] { } make ] unit-test
|
||||
[ { 0x0f 0xae 0x10 } ] [ [ EAX [] LDMXCSR ] { } make ] unit-test
|
||||
[ { 0x0f 0xae 0x18 } ] [ [ EAX [] STMXCSR ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: c3 HEX: 08 } ] [ [ EAX [] ECX MOVNTI ] { } make ] unit-test
|
||||
[ { 0x0f 0xc3 0x08 } ] [ [ EAX [] ECX MOVNTI ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: 50 HEX: c1 } ] [ [ EAX XMM1 MOVMSKPS ] { } make ] unit-test
|
||||
[ { HEX: 66 HEX: 0f HEX: 50 HEX: c1 } ] [ [ EAX XMM1 MOVMSKPD ] { } make ] unit-test
|
||||
[ { 0x0f 0x50 0xc1 } ] [ [ EAX XMM1 MOVMSKPS ] { } make ] unit-test
|
||||
[ { 0x66 0x0f 0x50 0xc1 } ] [ [ EAX XMM1 MOVMSKPD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: f3 HEX: 0f HEX: b8 HEX: c1 } ] [ [ EAX ECX POPCNT ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 48 HEX: 0f HEX: b8 HEX: c1 } ] [ [ RAX RCX POPCNT ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: b8 HEX: 01 } ] [ [ EAX ECX [] POPCNT ] { } make ] unit-test
|
||||
[ { HEX: f3 HEX: 0f HEX: b8 HEX: 04 HEX: 11 } ] [ [ EAX ECX EDX [+] POPCNT ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0xb8 0xc1 } ] [ [ EAX ECX POPCNT ] { } make ] unit-test
|
||||
[ { 0xf3 0x48 0x0f 0xb8 0xc1 } ] [ [ RAX RCX POPCNT ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0xb8 0x01 } ] [ [ EAX ECX [] POPCNT ] { } make ] unit-test
|
||||
[ { 0xf3 0x0f 0xb8 0x04 0x11 } ] [ [ EAX ECX EDX [+] POPCNT ] { } make ] unit-test
|
||||
|
||||
[ { HEX: f2 HEX: 0f HEX: 38 HEX: f0 HEX: c1 } ] [ [ EAX CL CRC32B ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 0f HEX: 38 HEX: f0 HEX: 01 } ] [ [ EAX ECX [] CRC32B ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 0f HEX: 38 HEX: f1 HEX: c1 } ] [ [ EAX ECX CRC32 ] { } make ] unit-test
|
||||
[ { HEX: f2 HEX: 0f HEX: 38 HEX: f1 HEX: 01 } ] [ [ EAX ECX [] CRC32 ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x38 0xf0 0xc1 } ] [ [ EAX CL CRC32B ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x38 0xf0 0x01 } ] [ [ EAX ECX [] CRC32B ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x38 0xf1 0xc1 } ] [ [ EAX ECX CRC32 ] { } make ] unit-test
|
||||
[ { 0xf2 0x0f 0x38 0xf1 0x01 } ] [ [ EAX ECX [] CRC32 ] { } make ] unit-test
|
||||
|
||||
! shifts
|
||||
[ { HEX: 48 HEX: d3 HEX: e0 } ] [ [ RAX CL SHL ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: d3 HEX: e1 } ] [ [ RCX CL SHL ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: d3 HEX: e8 } ] [ [ RAX CL SHR ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: d3 HEX: e9 } ] [ [ RCX CL SHR ] { } make ] unit-test
|
||||
[ { 0x48 0xd3 0xe0 } ] [ [ RAX CL SHL ] { } make ] unit-test
|
||||
[ { 0x48 0xd3 0xe1 } ] [ [ RCX CL SHL ] { } make ] unit-test
|
||||
[ { 0x48 0xd3 0xe8 } ] [ [ RAX CL SHR ] { } make ] unit-test
|
||||
[ { 0x48 0xd3 0xe9 } ] [ [ RCX CL SHR ] { } make ] unit-test
|
||||
|
||||
[ { HEX: c1 HEX: e0 HEX: 05 } ] [ [ EAX 5 SHL ] { } make ] unit-test
|
||||
[ { HEX: c1 HEX: e1 HEX: 05 } ] [ [ ECX 5 SHL ] { } make ] unit-test
|
||||
[ { HEX: c1 HEX: e8 HEX: 05 } ] [ [ EAX 5 SHR ] { } make ] unit-test
|
||||
[ { HEX: c1 HEX: e9 HEX: 05 } ] [ [ ECX 5 SHR ] { } make ] unit-test
|
||||
[ { 0xc1 0xe0 0x05 } ] [ [ EAX 5 SHL ] { } make ] unit-test
|
||||
[ { 0xc1 0xe1 0x05 } ] [ [ ECX 5 SHL ] { } make ] unit-test
|
||||
[ { 0xc1 0xe8 0x05 } ] [ [ EAX 5 SHR ] { } make ] unit-test
|
||||
[ { 0xc1 0xe9 0x05 } ] [ [ ECX 5 SHR ] { } make ] unit-test
|
||||
|
||||
! multiplication
|
||||
[ { HEX: 4d HEX: 6b HEX: c0 HEX: 03 } ] [ [ R8 R8 3 IMUL3 ] { } make ] unit-test
|
||||
[ { HEX: 49 HEX: 6b HEX: c0 HEX: 03 } ] [ [ RAX R8 3 IMUL3 ] { } make ] unit-test
|
||||
[ { HEX: 4c HEX: 6b HEX: c0 HEX: 03 } ] [ [ R8 RAX 3 IMUL3 ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 6b HEX: c1 HEX: 03 } ] [ [ RAX RCX 3 IMUL3 ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 69 HEX: c1 HEX: 44 HEX: 03 HEX: 00 HEX: 00 } ] [ [ RAX RCX HEX: 344 IMUL3 ] { } make ] unit-test
|
||||
[ { 0x4d 0x6b 0xc0 0x03 } ] [ [ R8 R8 3 IMUL3 ] { } make ] unit-test
|
||||
[ { 0x49 0x6b 0xc0 0x03 } ] [ [ RAX R8 3 IMUL3 ] { } make ] unit-test
|
||||
[ { 0x4c 0x6b 0xc0 0x03 } ] [ [ R8 RAX 3 IMUL3 ] { } make ] unit-test
|
||||
[ { 0x48 0x6b 0xc1 0x03 } ] [ [ RAX RCX 3 IMUL3 ] { } make ] unit-test
|
||||
[ { 0x48 0x69 0xc1 0x44 0x03 0x00 0x00 } ] [ [ RAX RCX 0x344 IMUL3 ] { } make ] unit-test
|
||||
|
||||
! BT family instructions
|
||||
[ { HEX: 0f HEX: ba HEX: e0 HEX: 01 } ] [ [ EAX 1 BT ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ba HEX: f8 HEX: 01 } ] [ [ EAX 1 BTC ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ba HEX: e8 HEX: 01 } ] [ [ EAX 1 BTS ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ba HEX: f0 HEX: 01 } ] [ [ EAX 1 BTR ] { } make ] unit-test
|
||||
[ { HEX: 48 HEX: 0f HEX: ba HEX: e0 HEX: 01 } ] [ [ RAX 1 BT ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ba HEX: 20 HEX: 01 } ] [ [ EAX [] 1 BT ] { } make ] unit-test
|
||||
[ { 0x0f 0xba 0xe0 0x01 } ] [ [ EAX 1 BT ] { } make ] unit-test
|
||||
[ { 0x0f 0xba 0xf8 0x01 } ] [ [ EAX 1 BTC ] { } make ] unit-test
|
||||
[ { 0x0f 0xba 0xe8 0x01 } ] [ [ EAX 1 BTS ] { } make ] unit-test
|
||||
[ { 0x0f 0xba 0xf0 0x01 } ] [ [ EAX 1 BTR ] { } make ] unit-test
|
||||
[ { 0x48 0x0f 0xba 0xe0 0x01 } ] [ [ RAX 1 BT ] { } make ] unit-test
|
||||
[ { 0x0f 0xba 0x20 0x01 } ] [ [ EAX [] 1 BT ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 0f HEX: a3 HEX: d8 } ] [ [ EAX EBX BT ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: bb HEX: d8 } ] [ [ EAX EBX BTC ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: ab HEX: d8 } ] [ [ EAX EBX BTS ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: b3 HEX: d8 } ] [ [ EAX EBX BTR ] { } make ] unit-test
|
||||
[ { HEX: 0f HEX: a3 HEX: 18 } ] [ [ EAX [] EBX BT ] { } make ] unit-test
|
||||
[ { 0x0f 0xa3 0xd8 } ] [ [ EAX EBX BT ] { } make ] unit-test
|
||||
[ { 0x0f 0xbb 0xd8 } ] [ [ EAX EBX BTC ] { } make ] unit-test
|
||||
[ { 0x0f 0xab 0xd8 } ] [ [ EAX EBX BTS ] { } make ] unit-test
|
||||
[ { 0x0f 0xb3 0xd8 } ] [ [ EAX EBX BTR ] { } make ] unit-test
|
||||
[ { 0x0f 0xa3 0x18 } ] [ [ EAX [] EBX BT ] { } make ] unit-test
|
||||
|
||||
! x87 instructions
|
||||
[ { HEX: D8 HEX: C5 } ] [ [ ST0 ST5 FADD ] { } make ] unit-test
|
||||
[ { HEX: DC HEX: C5 } ] [ [ ST5 ST0 FADD ] { } make ] unit-test
|
||||
[ { HEX: D8 HEX: 00 } ] [ [ ST0 EAX [] FADD ] { } make ] unit-test
|
||||
[ { 0xD8 0xC5 } ] [ [ ST0 ST5 FADD ] { } make ] unit-test
|
||||
[ { 0xDC 0xC5 } ] [ [ ST5 ST0 FADD ] { } make ] unit-test
|
||||
[ { 0xD8 0x00 } ] [ [ ST0 EAX [] FADD ] { } make ] unit-test
|
||||
|
||||
[ { HEX: D9 HEX: C2 } ] [ [ ST2 FLD ] { } make ] unit-test
|
||||
[ { HEX: DD HEX: D2 } ] [ [ ST2 FST ] { } make ] unit-test
|
||||
[ { HEX: DD HEX: DA } ] [ [ ST2 FSTP ] { } make ] unit-test
|
||||
[ { 0xD9 0xC2 } ] [ [ ST2 FLD ] { } make ] unit-test
|
||||
[ { 0xDD 0xD2 } ] [ [ ST2 FST ] { } make ] unit-test
|
||||
[ { 0xDD 0xDA } ] [ [ ST2 FSTP ] { } make ] unit-test
|
||||
|
||||
[ { 15 183 195 } ] [ [ EAX BX MOVZX ] { } make ] unit-test
|
||||
|
||||
bootstrap-cell 4 = [
|
||||
[ { 100 199 5 0 0 0 0 123 0 0 0 } ] [ [ 0 [] FS 123 MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a0 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ AL HEX: 0123,4567 MOVABS ] { } make ] unit-test
|
||||
[ { 0xa0 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ AL 0x0123,4567 MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: a1 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ AX HEX: 0123,4567 MOVABS ] { } make ] unit-test
|
||||
[ { 0x66 0xa1 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ AX 0x0123,4567 MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a1 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ EAX HEX: 0123,4567 MOVABS ] { } make ] unit-test
|
||||
[ { 0xa1 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ EAX 0x0123,4567 MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 48 HEX: a1 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ RAX HEX: 0123,4567 MOVABS ] { } make ] unit-test
|
||||
[ { 0x48 0xa1 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ RAX 0x0123,4567 MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a2 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567 AL MOVABS ] { } make ] unit-test
|
||||
[ { 0xa2 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567 AL MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: a3 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567 AX MOVABS ] { } make ] unit-test
|
||||
[ { 0x66 0xa3 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567 AX MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a3 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567 EAX MOVABS ] { } make ] unit-test
|
||||
[ { 0xa3 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567 EAX MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 48 HEX: a3 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567 RAX MOVABS ] { } make ] unit-test
|
||||
[ { 0x48 0xa3 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567 RAX MOVABS ] { } make ] unit-test
|
||||
] when
|
||||
|
||||
bootstrap-cell 8 = [
|
||||
[ { 72 137 13 123 0 0 0 } ] [ [ 123 [RIP+] RCX MOV ] { } make ] unit-test
|
||||
[ { 101 72 137 12 37 123 0 0 0 } ] [ [ 123 [] GS RCX MOV ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a0 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ AL HEX: 0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
[ { 0xa0 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ AL 0x0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: a1 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ AX HEX: 0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
[ { 0x66 0xa1 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ AX 0x0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a1 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ EAX HEX: 0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
[ { 0xa1 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ EAX 0x0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 48 HEX: a1 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ RAX HEX: 0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
[ { 0x48 0xa1 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ RAX 0x0123,4567,89ab,cdef MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a2 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567,89ab,cdef AL MOVABS ] { } make ] unit-test
|
||||
[ { 0xa2 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567,89ab,cdef AL MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 66 HEX: a3 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567,89ab,cdef AX MOVABS ] { } make ] unit-test
|
||||
[ { 0x66 0xa3 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567,89ab,cdef AX MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: a3 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567,89ab,cdef EAX MOVABS ] { } make ] unit-test
|
||||
[ { 0xa3 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567,89ab,cdef EAX MOVABS ] { } make ] unit-test
|
||||
|
||||
[ { HEX: 48 HEX: a3 HEX: ef HEX: cd HEX: ab HEX: 89 HEX: 67 HEX: 45 HEX: 23 HEX: 01 } ]
|
||||
[ [ HEX: 0123,4567,89ab,cdef RAX MOVABS ] { } make ] unit-test
|
||||
[ { 0x48 0xa3 0xef 0xcd 0xab 0x89 0x67 0x45 0x23 0x01 } ]
|
||||
[ [ 0x0123,4567,89ab,cdef RAX MOVABS ] { } make ] unit-test
|
||||
] when
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -73,7 +73,7 @@ big-endian off
|
|||
! need a parameter here.
|
||||
|
||||
! See the comment for M\ x86.32 stack-cleanup in cpu.x86.32
|
||||
HEX: ffff RET f rc-absolute-2 rel-untagged
|
||||
0xffff RET f rc-absolute-2 rel-untagged
|
||||
] callback-stub jit-define
|
||||
|
||||
[
|
||||
|
@ -237,7 +237,7 @@ big-endian off
|
|||
|
||||
! Load a value from a stack position
|
||||
[
|
||||
temp1 ds-reg HEX: 7f [+] MOV f rc-absolute-1 rel-untagged
|
||||
temp1 ds-reg 0x7f [+] MOV f rc-absolute-1 rel-untagged
|
||||
] pic-load jit-define
|
||||
|
||||
[ temp1 tag-mask get AND ] pic-tag jit-define
|
||||
|
@ -252,7 +252,7 @@ big-endian off
|
|||
] pic-tuple jit-define
|
||||
|
||||
[
|
||||
temp1 HEX: 7f CMP f rc-absolute-1 rel-untagged
|
||||
temp1 0x7f CMP f rc-absolute-1 rel-untagged
|
||||
] pic-check-tag jit-define
|
||||
|
||||
[ 0 JE f rc-relative rel-word ] pic-hit jit-define
|
||||
|
|
|
@ -478,9 +478,9 @@ M: x86 %compare-vector-ccs
|
|||
|
||||
: (%move-vector-mask) ( dst src rep -- mask )
|
||||
{
|
||||
{ double-2-rep [ MOVMSKPS HEX: f ] }
|
||||
{ float-4-rep [ MOVMSKPS HEX: f ] }
|
||||
[ drop PMOVMSKB HEX: ffff ]
|
||||
{ double-2-rep [ MOVMSKPS 0xf ] }
|
||||
{ float-4-rep [ MOVMSKPS 0xf ] }
|
||||
[ drop PMOVMSKB 0xffff ]
|
||||
} case ;
|
||||
|
||||
M: x86 %move-vector-mask ( dst src rep -- )
|
||||
|
@ -708,8 +708,8 @@ M: x86 %avg-vector-reps
|
|||
M: x86 %dot-vector
|
||||
[ two-operand ] keep
|
||||
{
|
||||
{ float-4-rep [ HEX: ff DPPS ] }
|
||||
{ double-2-rep [ HEX: ff DPPD ] }
|
||||
{ float-4-rep [ 0xff DPPS ] }
|
||||
{ double-2-rep [ 0xff DPPD ] }
|
||||
} case ;
|
||||
|
||||
M: x86 %dot-vector-reps
|
||||
|
|
|
@ -87,7 +87,7 @@ M: x86 %replace-imm
|
|||
{
|
||||
{ [ dup not ] [ drop \ f type-number MOV ] }
|
||||
{ [ dup fixnum? ] [ tag-fixnum MOV ] }
|
||||
[ [ HEX: ffffffff MOV ] dip rc-absolute rel-literal ]
|
||||
[ [ 0xffffffff MOV ] dip rc-absolute rel-literal ]
|
||||
} cond ;
|
||||
|
||||
: (%inc) ( n reg -- ) swap cells dup 0 > [ ADD ] [ neg SUB ] if ; inline
|
||||
|
@ -541,7 +541,7 @@ M:: x86 %test ( dst src1 src2 cc temp -- )
|
|||
dst cc temp %boolean ;
|
||||
|
||||
: (%compare-tagged) ( src1 src2 -- )
|
||||
[ HEX: ffffffff CMP ] dip rc-absolute rel-literal ;
|
||||
[ 0xffffffff CMP ] dip rc-absolute rel-literal ;
|
||||
|
||||
M:: x86 %compare-integer-imm ( dst src1 src2 cc temp -- )
|
||||
src1 src2 CMP
|
||||
|
@ -594,11 +594,11 @@ M:: x86 %compare-imm-branch ( label src1 src2 cc -- )
|
|||
|
||||
M:: x86 %dispatch ( src temp -- )
|
||||
! Load jump table base.
|
||||
temp HEX: ffffffff MOV
|
||||
temp 0xffffffff MOV
|
||||
building get length :> start
|
||||
0 rc-absolute-cell rel-here
|
||||
! Add jump table base
|
||||
temp src HEX: 7f [++] JMP
|
||||
temp src 0x7f [++] JMP
|
||||
building get length :> end
|
||||
! Fix up the displacement above
|
||||
cell alignment
|
||||
|
@ -698,10 +698,10 @@ M: x86 long-long-odd-register? f ;
|
|||
M: x86 float-right-align-on-stack? f ;
|
||||
|
||||
M: x86 immediate-arithmetic? ( n -- ? )
|
||||
HEX: -80000000 HEX: 7fffffff between? ;
|
||||
-0x80000000 0x7fffffff between? ;
|
||||
|
||||
M: x86 immediate-bitwise? ( n -- ? )
|
||||
HEX: -80000000 HEX: 7fffffff between? ;
|
||||
-0x80000000 0x7fffffff between? ;
|
||||
|
||||
: %cmov-float= ( dst src -- )
|
||||
[
|
||||
|
|
|
@ -12,44 +12,44 @@ IN: db.postgresql.ffi
|
|||
} cond cdecl add-library >>
|
||||
|
||||
! ConnSatusType
|
||||
CONSTANT: CONNECTION_OK HEX: 0
|
||||
CONSTANT: CONNECTION_BAD HEX: 1
|
||||
CONSTANT: CONNECTION_STARTED HEX: 2
|
||||
CONSTANT: CONNECTION_MADE HEX: 3
|
||||
CONSTANT: CONNECTION_AWAITING_RESPONSE HEX: 4
|
||||
CONSTANT: CONNECTION_AUTH_OK HEX: 5
|
||||
CONSTANT: CONNECTION_SETENV HEX: 6
|
||||
CONSTANT: CONNECTION_SSL_STARTUP HEX: 7
|
||||
CONSTANT: CONNECTION_NEEDED HEX: 8
|
||||
CONSTANT: CONNECTION_OK 0x0
|
||||
CONSTANT: CONNECTION_BAD 0x1
|
||||
CONSTANT: CONNECTION_STARTED 0x2
|
||||
CONSTANT: CONNECTION_MADE 0x3
|
||||
CONSTANT: CONNECTION_AWAITING_RESPONSE 0x4
|
||||
CONSTANT: CONNECTION_AUTH_OK 0x5
|
||||
CONSTANT: CONNECTION_SETENV 0x6
|
||||
CONSTANT: CONNECTION_SSL_STARTUP 0x7
|
||||
CONSTANT: CONNECTION_NEEDED 0x8
|
||||
|
||||
! PostgresPollingStatusType
|
||||
CONSTANT: PGRES_POLLING_FAILED HEX: 0
|
||||
CONSTANT: PGRES_POLLING_READING HEX: 1
|
||||
CONSTANT: PGRES_POLLING_WRITING HEX: 2
|
||||
CONSTANT: PGRES_POLLING_OK HEX: 3
|
||||
CONSTANT: PGRES_POLLING_ACTIVE HEX: 4
|
||||
CONSTANT: PGRES_POLLING_FAILED 0x0
|
||||
CONSTANT: PGRES_POLLING_READING 0x1
|
||||
CONSTANT: PGRES_POLLING_WRITING 0x2
|
||||
CONSTANT: PGRES_POLLING_OK 0x3
|
||||
CONSTANT: PGRES_POLLING_ACTIVE 0x4
|
||||
|
||||
! ExecStatusType;
|
||||
CONSTANT: PGRES_EMPTY_QUERY HEX: 0
|
||||
CONSTANT: PGRES_COMMAND_OK HEX: 1
|
||||
CONSTANT: PGRES_TUPLES_OK HEX: 2
|
||||
CONSTANT: PGRES_COPY_OUT HEX: 3
|
||||
CONSTANT: PGRES_COPY_IN HEX: 4
|
||||
CONSTANT: PGRES_BAD_RESPONSE HEX: 5
|
||||
CONSTANT: PGRES_NONFATAL_ERROR HEX: 6
|
||||
CONSTANT: PGRES_FATAL_ERROR HEX: 7
|
||||
CONSTANT: PGRES_EMPTY_QUERY 0x0
|
||||
CONSTANT: PGRES_COMMAND_OK 0x1
|
||||
CONSTANT: PGRES_TUPLES_OK 0x2
|
||||
CONSTANT: PGRES_COPY_OUT 0x3
|
||||
CONSTANT: PGRES_COPY_IN 0x4
|
||||
CONSTANT: PGRES_BAD_RESPONSE 0x5
|
||||
CONSTANT: PGRES_NONFATAL_ERROR 0x6
|
||||
CONSTANT: PGRES_FATAL_ERROR 0x7
|
||||
|
||||
! PGTransactionStatusType;
|
||||
CONSTANT: PQTRANS_IDLE HEX: 0
|
||||
CONSTANT: PQTRANS_ACTIVE HEX: 1
|
||||
CONSTANT: PQTRANS_INTRANS HEX: 2
|
||||
CONSTANT: PQTRANS_INERROR HEX: 3
|
||||
CONSTANT: PQTRANS_UNKNOWN HEX: 4
|
||||
CONSTANT: PQTRANS_IDLE 0x0
|
||||
CONSTANT: PQTRANS_ACTIVE 0x1
|
||||
CONSTANT: PQTRANS_INTRANS 0x2
|
||||
CONSTANT: PQTRANS_INERROR 0x3
|
||||
CONSTANT: PQTRANS_UNKNOWN 0x4
|
||||
|
||||
! PGVerbosity;
|
||||
CONSTANT: PQERRORS_TERSE HEX: 0
|
||||
CONSTANT: PQERRORS_DEFAULT HEX: 1
|
||||
CONSTANT: PQERRORS_VERBOSE HEX: 2
|
||||
CONSTANT: PQERRORS_TERSE 0x0
|
||||
CONSTANT: PQERRORS_DEFAULT 0x1
|
||||
CONSTANT: PQERRORS_VERBOSE 0x2
|
||||
|
||||
CONSTANT: InvalidOid 0
|
||||
|
||||
|
|
|
@ -86,18 +86,18 @@ CONSTANT: SQLITE_NULL 5
|
|||
CONSTANT: SQLITE_STATIC 0
|
||||
CONSTANT: SQLITE_TRANSIENT -1
|
||||
|
||||
CONSTANT: SQLITE_OPEN_READONLY HEX: 00000001
|
||||
CONSTANT: SQLITE_OPEN_READWRITE HEX: 00000002
|
||||
CONSTANT: SQLITE_OPEN_CREATE HEX: 00000004
|
||||
CONSTANT: SQLITE_OPEN_DELETEONCLOSE HEX: 00000008
|
||||
CONSTANT: SQLITE_OPEN_EXCLUSIVE HEX: 00000010
|
||||
CONSTANT: SQLITE_OPEN_MAIN_DB HEX: 00000100
|
||||
CONSTANT: SQLITE_OPEN_TEMP_DB HEX: 00000200
|
||||
CONSTANT: SQLITE_OPEN_TRANSIENT_DB HEX: 00000400
|
||||
CONSTANT: SQLITE_OPEN_MAIN_JOURNAL HEX: 00000800
|
||||
CONSTANT: SQLITE_OPEN_TEMP_JOURNAL HEX: 00001000
|
||||
CONSTANT: SQLITE_OPEN_SUBJOURNAL HEX: 00002000
|
||||
CONSTANT: SQLITE_OPEN_MASTER_JOURNAL HEX: 00004000
|
||||
CONSTANT: SQLITE_OPEN_READONLY 0x00000001
|
||||
CONSTANT: SQLITE_OPEN_READWRITE 0x00000002
|
||||
CONSTANT: SQLITE_OPEN_CREATE 0x00000004
|
||||
CONSTANT: SQLITE_OPEN_DELETEONCLOSE 0x00000008
|
||||
CONSTANT: SQLITE_OPEN_EXCLUSIVE 0x00000010
|
||||
CONSTANT: SQLITE_OPEN_MAIN_DB 0x00000100
|
||||
CONSTANT: SQLITE_OPEN_TEMP_DB 0x00000200
|
||||
CONSTANT: SQLITE_OPEN_TRANSIENT_DB 0x00000400
|
||||
CONSTANT: SQLITE_OPEN_MAIN_JOURNAL 0x00000800
|
||||
CONSTANT: SQLITE_OPEN_TEMP_JOURNAL 0x00001000
|
||||
CONSTANT: SQLITE_OPEN_SUBJOURNAL 0x00002000
|
||||
CONSTANT: SQLITE_OPEN_MASTER_JOURNAL 0x00004000
|
||||
|
||||
C-TYPE: sqlite3
|
||||
C-TYPE: sqlite3_stmt
|
||||
|
|
|
@ -33,7 +33,7 @@ CONSTANT: seh-names
|
|||
{ $ STATUS_CONTROL_C_EXIT "STATUS_CONTROL_C_EXIT" }
|
||||
{ $ STATUS_FLOAT_MULTIPLE_FAULTS "STATUS_FLOAT_MULTIPLE_FAULTS" }
|
||||
{ $ STATUS_FLOAT_MULTIPLE_TRAPS "STATUS_FLOAT_MULTIPLE_TRAPS" }
|
||||
{ HEX: e06d7363 "Visual C++ exception" }
|
||||
{ 0xe06d7363 "Visual C++ exception" }
|
||||
}
|
||||
|
||||
: seh-name. ( n -- )
|
||||
|
@ -45,11 +45,11 @@ M: windows signal-error.
|
|||
|
||||
M: ole32-error error.
|
||||
"COM error 0x" write
|
||||
dup code>> HEX: ffff,ffff bitand >hex write ": " write
|
||||
dup code>> 0xffff,ffff bitand >hex write ": " write
|
||||
message>> write ;
|
||||
|
||||
M: windows-error error.
|
||||
"Win32 error 0x" write
|
||||
dup n>> HEX: ffff,ffff bitand >hex write ": " write
|
||||
dup n>> 0xffff,ffff bitand >hex write ": " write
|
||||
string>> write ;
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ HELP: printf
|
|||
"00123" }
|
||||
{ $example
|
||||
"USING: formatting ;"
|
||||
"HEX: ff \"%04X\" printf"
|
||||
"0xff \"%04X\" printf"
|
||||
"00FF" }
|
||||
{ $example
|
||||
"USING: formatting ;"
|
||||
|
|
|
@ -49,16 +49,16 @@ os windows? [
|
|||
[ "+001.0E+01" ] [ 10 "%+010.1E" sprintf ] unit-test
|
||||
] if
|
||||
|
||||
[ "ff" ] [ HEX: ff "%x" sprintf ] unit-test
|
||||
[ "FF" ] [ HEX: ff "%X" sprintf ] unit-test
|
||||
[ "0f" ] [ HEX: f "%02x" sprintf ] unit-test
|
||||
[ "0F" ] [ HEX: f "%02X" sprintf ] unit-test
|
||||
[ "ff" ] [ 0xff "%x" sprintf ] unit-test
|
||||
[ "FF" ] [ 0xff "%X" sprintf ] unit-test
|
||||
[ "0f" ] [ 0xf "%02x" sprintf ] unit-test
|
||||
[ "0F" ] [ 0xf "%02X" sprintf ] unit-test
|
||||
[ "2008-09-10" ] [ 2008 9 10 "%04d-%02d-%02d" sprintf ] unit-test
|
||||
[ "Hello, World!" ] [ "Hello, World!" "%s" sprintf ] unit-test
|
||||
[ "printf test" ] [ "printf test" sprintf ] unit-test
|
||||
[ "char a = 'a'" ] [ CHAR: a "char %c = 'a'" sprintf ] unit-test
|
||||
[ "00" ] [ HEX: 0 "%02x" sprintf ] unit-test
|
||||
[ "ff" ] [ HEX: ff "%02x" sprintf ] unit-test
|
||||
[ "00" ] [ 0x0 "%02x" sprintf ] unit-test
|
||||
[ "ff" ] [ 0xff "%02x" sprintf ] unit-test
|
||||
[ "0 message(s)" ] [ 0 "message" "%d %s(s)" sprintf ] unit-test
|
||||
[ "0 message(s) with %" ] [ 0 "message" "%d %s(s) with %%" sprintf ] unit-test
|
||||
[ "justif: \"left \"" ] [ "left" "justif: \"%-10s\"" sprintf ] unit-test
|
||||
|
|
|
@ -283,7 +283,7 @@ CONSTANT: pov-values
|
|||
: >slider ( long -- float )
|
||||
65535.0 /f ; inline
|
||||
: >pov ( long -- symbol )
|
||||
dup HEX: FFFF bitand HEX: FFFF =
|
||||
dup 0xFFFF bitand 0xFFFF =
|
||||
[ drop pov-neutral ]
|
||||
[ 2750 + 4500 /i pov-values nth ] if ; inline
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ TUPLE: keys-array
|
|||
C: <keys-array> keys-array
|
||||
|
||||
: >key ( byte -- ? )
|
||||
HEX: 80 bitand c-bool> ;
|
||||
0x80 bitand c-bool> ;
|
||||
|
||||
M: keys-array length length>> ;
|
||||
M: keys-array nth-unsafe underlying>> nth-unsafe >key ;
|
||||
|
|
|
@ -42,23 +42,23 @@ CONSTANT: buttons-matching-hash
|
|||
CONSTANT: keys-matching-hash
|
||||
H{ { "UsagePage" 7 } { "Type" 2 } }
|
||||
CONSTANT: x-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 30 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x30 } { "Type" 1 } }
|
||||
CONSTANT: y-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 31 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x31 } { "Type" 1 } }
|
||||
CONSTANT: z-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 32 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x32 } { "Type" 1 } }
|
||||
CONSTANT: rx-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 33 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x33 } { "Type" 1 } }
|
||||
CONSTANT: ry-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 34 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x34 } { "Type" 1 } }
|
||||
CONSTANT: rz-axis-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 35 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x35 } { "Type" 1 } }
|
||||
CONSTANT: slider-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 36 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x36 } { "Type" 1 } }
|
||||
CONSTANT: wheel-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 38 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x38 } { "Type" 1 } }
|
||||
CONSTANT: hat-switch-matching-hash
|
||||
H{ { "UsagePage" 1 } { "Usage" HEX: 39 } { "Type" 1 } }
|
||||
H{ { "UsagePage" 1 } { "Usage" 0x39 } { "Type" 1 } }
|
||||
|
||||
: device-elements-matching ( device matching-hash -- vector )
|
||||
[
|
||||
|
@ -121,23 +121,23 @@ CONSTANT: hat-switch-matching-hash
|
|||
IOHIDElementGetUsagePage 1 = ; inline
|
||||
|
||||
: x-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 30 = ; inline
|
||||
IOHIDElementGetUsage 0x30 = ; inline
|
||||
: y-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 31 = ; inline
|
||||
IOHIDElementGetUsage 0x31 = ; inline
|
||||
: z-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 32 = ; inline
|
||||
IOHIDElementGetUsage 0x32 = ; inline
|
||||
: rx-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 33 = ; inline
|
||||
IOHIDElementGetUsage 0x33 = ; inline
|
||||
: ry-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 34 = ; inline
|
||||
IOHIDElementGetUsage 0x34 = ; inline
|
||||
: rz-axis? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 35 = ; inline
|
||||
IOHIDElementGetUsage 0x35 = ; inline
|
||||
: slider? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 36 = ; inline
|
||||
IOHIDElementGetUsage 0x36 = ; inline
|
||||
: wheel? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 38 = ; inline
|
||||
IOHIDElementGetUsage 0x38 = ; inline
|
||||
: hat-switch? ( {usage-page,usage} -- ? )
|
||||
IOHIDElementGetUsage HEX: 39 = ; inline
|
||||
IOHIDElementGetUsage 0x39 = ; inline
|
||||
|
||||
CONSTANT: pov-values
|
||||
{
|
||||
|
|
|
@ -1,175 +1,175 @@
|
|||
IN: game.input.scancodes
|
||||
|
||||
CONSTANT: key-undefined HEX: 0000
|
||||
CONSTANT: key-error-roll-over HEX: 0001
|
||||
CONSTANT: key-error-post-fail HEX: 0002
|
||||
CONSTANT: key-error-undefined HEX: 0003
|
||||
CONSTANT: key-a HEX: 0004
|
||||
CONSTANT: key-b HEX: 0005
|
||||
CONSTANT: key-c HEX: 0006
|
||||
CONSTANT: key-d HEX: 0007
|
||||
CONSTANT: key-e HEX: 0008
|
||||
CONSTANT: key-f HEX: 0009
|
||||
CONSTANT: key-g HEX: 000a
|
||||
CONSTANT: key-h HEX: 000b
|
||||
CONSTANT: key-i HEX: 000c
|
||||
CONSTANT: key-j HEX: 000d
|
||||
CONSTANT: key-k HEX: 000e
|
||||
CONSTANT: key-l HEX: 000f
|
||||
CONSTANT: key-m HEX: 0010
|
||||
CONSTANT: key-n HEX: 0011
|
||||
CONSTANT: key-o HEX: 0012
|
||||
CONSTANT: key-p HEX: 0013
|
||||
CONSTANT: key-q HEX: 0014
|
||||
CONSTANT: key-r HEX: 0015
|
||||
CONSTANT: key-s HEX: 0016
|
||||
CONSTANT: key-t HEX: 0017
|
||||
CONSTANT: key-u HEX: 0018
|
||||
CONSTANT: key-v HEX: 0019
|
||||
CONSTANT: key-w HEX: 001a
|
||||
CONSTANT: key-x HEX: 001b
|
||||
CONSTANT: key-y HEX: 001c
|
||||
CONSTANT: key-z HEX: 001d
|
||||
CONSTANT: key-1 HEX: 001e
|
||||
CONSTANT: key-2 HEX: 001f
|
||||
CONSTANT: key-3 HEX: 0020
|
||||
CONSTANT: key-4 HEX: 0021
|
||||
CONSTANT: key-5 HEX: 0022
|
||||
CONSTANT: key-6 HEX: 0023
|
||||
CONSTANT: key-7 HEX: 0024
|
||||
CONSTANT: key-8 HEX: 0025
|
||||
CONSTANT: key-9 HEX: 0026
|
||||
CONSTANT: key-0 HEX: 0027
|
||||
CONSTANT: key-return HEX: 0028
|
||||
CONSTANT: key-escape HEX: 0029
|
||||
CONSTANT: key-backspace HEX: 002a
|
||||
CONSTANT: key-tab HEX: 002b
|
||||
CONSTANT: key-space HEX: 002c
|
||||
CONSTANT: key-- HEX: 002d
|
||||
CONSTANT: key-= HEX: 002e
|
||||
CONSTANT: key-[ HEX: 002f
|
||||
CONSTANT: key-] HEX: 0030
|
||||
CONSTANT: key-\ HEX: 0031
|
||||
CONSTANT: key-#-non-us HEX: 0032
|
||||
CONSTANT: key-; HEX: 0033
|
||||
CONSTANT: key-' HEX: 0034
|
||||
CONSTANT: key-` HEX: 0035
|
||||
CONSTANT: key-, HEX: 0036
|
||||
CONSTANT: key-. HEX: 0037
|
||||
CONSTANT: key-/ HEX: 0038
|
||||
CONSTANT: key-caps-lock HEX: 0039
|
||||
CONSTANT: key-f1 HEX: 003a
|
||||
CONSTANT: key-f2 HEX: 003b
|
||||
CONSTANT: key-f3 HEX: 003c
|
||||
CONSTANT: key-f4 HEX: 003d
|
||||
CONSTANT: key-f5 HEX: 003e
|
||||
CONSTANT: key-f6 HEX: 003f
|
||||
CONSTANT: key-f7 HEX: 0040
|
||||
CONSTANT: key-f8 HEX: 0041
|
||||
CONSTANT: key-f9 HEX: 0042
|
||||
CONSTANT: key-f10 HEX: 0043
|
||||
CONSTANT: key-f11 HEX: 0044
|
||||
CONSTANT: key-f12 HEX: 0045
|
||||
CONSTANT: key-print-screen HEX: 0046
|
||||
CONSTANT: key-scroll-lock HEX: 0047
|
||||
CONSTANT: key-pause HEX: 0048
|
||||
CONSTANT: key-insert HEX: 0049
|
||||
CONSTANT: key-home HEX: 004a
|
||||
CONSTANT: key-page-up HEX: 004b
|
||||
CONSTANT: key-delete HEX: 004c
|
||||
CONSTANT: key-end HEX: 004d
|
||||
CONSTANT: key-page-down HEX: 004e
|
||||
CONSTANT: key-right-arrow HEX: 004f
|
||||
CONSTANT: key-left-arrow HEX: 0050
|
||||
CONSTANT: key-down-arrow HEX: 0051
|
||||
CONSTANT: key-up-arrow HEX: 0052
|
||||
CONSTANT: key-keypad-numlock HEX: 0053
|
||||
CONSTANT: key-keypad-/ HEX: 0054
|
||||
CONSTANT: key-keypad-* HEX: 0055
|
||||
CONSTANT: key-keypad-- HEX: 0056
|
||||
CONSTANT: key-keypad-+ HEX: 0057
|
||||
CONSTANT: key-keypad-enter HEX: 0058
|
||||
CONSTANT: key-keypad-1 HEX: 0059
|
||||
CONSTANT: key-keypad-2 HEX: 005a
|
||||
CONSTANT: key-keypad-3 HEX: 005b
|
||||
CONSTANT: key-keypad-4 HEX: 005c
|
||||
CONSTANT: key-keypad-5 HEX: 005d
|
||||
CONSTANT: key-keypad-6 HEX: 005e
|
||||
CONSTANT: key-keypad-7 HEX: 005f
|
||||
CONSTANT: key-keypad-8 HEX: 0060
|
||||
CONSTANT: key-keypad-9 HEX: 0061
|
||||
CONSTANT: key-keypad-0 HEX: 0062
|
||||
CONSTANT: key-keypad-. HEX: 0063
|
||||
CONSTANT: key-\-non-us HEX: 0064
|
||||
CONSTANT: key-application HEX: 0065
|
||||
CONSTANT: key-power HEX: 0066
|
||||
CONSTANT: key-keypad-= HEX: 0067
|
||||
CONSTANT: key-f13 HEX: 0068
|
||||
CONSTANT: key-f14 HEX: 0069
|
||||
CONSTANT: key-f15 HEX: 006a
|
||||
CONSTANT: key-f16 HEX: 006b
|
||||
CONSTANT: key-f17 HEX: 006c
|
||||
CONSTANT: key-f18 HEX: 006d
|
||||
CONSTANT: key-f19 HEX: 006e
|
||||
CONSTANT: key-f20 HEX: 006f
|
||||
CONSTANT: key-f21 HEX: 0070
|
||||
CONSTANT: key-f22 HEX: 0071
|
||||
CONSTANT: key-f23 HEX: 0072
|
||||
CONSTANT: key-f24 HEX: 0073
|
||||
CONSTANT: key-execute HEX: 0074
|
||||
CONSTANT: key-help HEX: 0075
|
||||
CONSTANT: key-menu HEX: 0076
|
||||
CONSTANT: key-select HEX: 0077
|
||||
CONSTANT: key-stop HEX: 0078
|
||||
CONSTANT: key-again HEX: 0079
|
||||
CONSTANT: key-undo HEX: 007a
|
||||
CONSTANT: key-cut HEX: 007b
|
||||
CONSTANT: key-copy HEX: 007c
|
||||
CONSTANT: key-paste HEX: 007d
|
||||
CONSTANT: key-find HEX: 007e
|
||||
CONSTANT: key-mute HEX: 007f
|
||||
CONSTANT: key-volume-up HEX: 0080
|
||||
CONSTANT: key-volume-down HEX: 0081
|
||||
CONSTANT: key-locking-caps-lock HEX: 0082
|
||||
CONSTANT: key-locking-num-lock HEX: 0083
|
||||
CONSTANT: key-locking-scroll-lock HEX: 0084
|
||||
CONSTANT: key-keypad-, HEX: 0085
|
||||
CONSTANT: key-keypad-=-as-400 HEX: 0086
|
||||
CONSTANT: key-international-1 HEX: 0087
|
||||
CONSTANT: key-international-2 HEX: 0088
|
||||
CONSTANT: key-international-3 HEX: 0089
|
||||
CONSTANT: key-international-4 HEX: 008a
|
||||
CONSTANT: key-international-5 HEX: 008b
|
||||
CONSTANT: key-international-6 HEX: 008c
|
||||
CONSTANT: key-international-7 HEX: 008d
|
||||
CONSTANT: key-international-8 HEX: 008e
|
||||
CONSTANT: key-international-9 HEX: 008f
|
||||
CONSTANT: key-lang-1 HEX: 0090
|
||||
CONSTANT: key-lang-2 HEX: 0091
|
||||
CONSTANT: key-lang-3 HEX: 0092
|
||||
CONSTANT: key-lang-4 HEX: 0093
|
||||
CONSTANT: key-lang-5 HEX: 0094
|
||||
CONSTANT: key-lang-6 HEX: 0095
|
||||
CONSTANT: key-lang-7 HEX: 0096
|
||||
CONSTANT: key-lang-8 HEX: 0097
|
||||
CONSTANT: key-lang-9 HEX: 0098
|
||||
CONSTANT: key-alternate-erase HEX: 0099
|
||||
CONSTANT: key-sysreq HEX: 009a
|
||||
CONSTANT: key-cancel HEX: 009b
|
||||
CONSTANT: key-clear HEX: 009c
|
||||
CONSTANT: key-prior HEX: 009d
|
||||
CONSTANT: key-enter HEX: 009e
|
||||
CONSTANT: key-separator HEX: 009f
|
||||
CONSTANT: key-out HEX: 00a0
|
||||
CONSTANT: key-oper HEX: 00a1
|
||||
CONSTANT: key-clear-again HEX: 00a2
|
||||
CONSTANT: key-crsel-props HEX: 00a3
|
||||
CONSTANT: key-exsel HEX: 00a4
|
||||
CONSTANT: key-left-control HEX: 00e0
|
||||
CONSTANT: key-left-shift HEX: 00e1
|
||||
CONSTANT: key-left-alt HEX: 00e2
|
||||
CONSTANT: key-left-gui HEX: 00e3
|
||||
CONSTANT: key-right-control HEX: 00e4
|
||||
CONSTANT: key-right-shift HEX: 00e5
|
||||
CONSTANT: key-right-alt HEX: 00e6
|
||||
CONSTANT: key-right-gui HEX: 00e7
|
||||
CONSTANT: key-undefined 0x0000
|
||||
CONSTANT: key-error-roll-over 0x0001
|
||||
CONSTANT: key-error-post-fail 0x0002
|
||||
CONSTANT: key-error-undefined 0x0003
|
||||
CONSTANT: key-a 0x0004
|
||||
CONSTANT: key-b 0x0005
|
||||
CONSTANT: key-c 0x0006
|
||||
CONSTANT: key-d 0x0007
|
||||
CONSTANT: key-e 0x0008
|
||||
CONSTANT: key-f 0x0009
|
||||
CONSTANT: key-g 0x000a
|
||||
CONSTANT: key-h 0x000b
|
||||
CONSTANT: key-i 0x000c
|
||||
CONSTANT: key-j 0x000d
|
||||
CONSTANT: key-k 0x000e
|
||||
CONSTANT: key-l 0x000f
|
||||
CONSTANT: key-m 0x0010
|
||||
CONSTANT: key-n 0x0011
|
||||
CONSTANT: key-o 0x0012
|
||||
CONSTANT: key-p 0x0013
|
||||
CONSTANT: key-q 0x0014
|
||||
CONSTANT: key-r 0x0015
|
||||
CONSTANT: key-s 0x0016
|
||||
CONSTANT: key-t 0x0017
|
||||
CONSTANT: key-u 0x0018
|
||||
CONSTANT: key-v 0x0019
|
||||
CONSTANT: key-w 0x001a
|
||||
CONSTANT: key-x 0x001b
|
||||
CONSTANT: key-y 0x001c
|
||||
CONSTANT: key-z 0x001d
|
||||
CONSTANT: key-1 0x001e
|
||||
CONSTANT: key-2 0x001f
|
||||
CONSTANT: key-3 0x0020
|
||||
CONSTANT: key-4 0x0021
|
||||
CONSTANT: key-5 0x0022
|
||||
CONSTANT: key-6 0x0023
|
||||
CONSTANT: key-7 0x0024
|
||||
CONSTANT: key-8 0x0025
|
||||
CONSTANT: key-9 0x0026
|
||||
CONSTANT: key-0 0x0027
|
||||
CONSTANT: key-return 0x0028
|
||||
CONSTANT: key-escape 0x0029
|
||||
CONSTANT: key-backspace 0x002a
|
||||
CONSTANT: key-tab 0x002b
|
||||
CONSTANT: key-space 0x002c
|
||||
CONSTANT: key-- 0x002d
|
||||
CONSTANT: key-= 0x002e
|
||||
CONSTANT: key-[ 0x002f
|
||||
CONSTANT: key-] 0x0030
|
||||
CONSTANT: key-\ 0x0031
|
||||
CONSTANT: key-#-non-us 0x0032
|
||||
CONSTANT: key-; 0x0033
|
||||
CONSTANT: key-' 0x0034
|
||||
CONSTANT: key-` 0x0035
|
||||
CONSTANT: key-, 0x0036
|
||||
CONSTANT: key-. 0x0037
|
||||
CONSTANT: key-/ 0x0038
|
||||
CONSTANT: key-caps-lock 0x0039
|
||||
CONSTANT: key-f1 0x003a
|
||||
CONSTANT: key-f2 0x003b
|
||||
CONSTANT: key-f3 0x003c
|
||||
CONSTANT: key-f4 0x003d
|
||||
CONSTANT: key-f5 0x003e
|
||||
CONSTANT: key-f6 0x003f
|
||||
CONSTANT: key-f7 0x0040
|
||||
CONSTANT: key-f8 0x0041
|
||||
CONSTANT: key-f9 0x0042
|
||||
CONSTANT: key-f10 0x0043
|
||||
CONSTANT: key-f11 0x0044
|
||||
CONSTANT: key-f12 0x0045
|
||||
CONSTANT: key-print-screen 0x0046
|
||||
CONSTANT: key-scroll-lock 0x0047
|
||||
CONSTANT: key-pause 0x0048
|
||||
CONSTANT: key-insert 0x0049
|
||||
CONSTANT: key-home 0x004a
|
||||
CONSTANT: key-page-up 0x004b
|
||||
CONSTANT: key-delete 0x004c
|
||||
CONSTANT: key-end 0x004d
|
||||
CONSTANT: key-page-down 0x004e
|
||||
CONSTANT: key-right-arrow 0x004f
|
||||
CONSTANT: key-left-arrow 0x0050
|
||||
CONSTANT: key-down-arrow 0x0051
|
||||
CONSTANT: key-up-arrow 0x0052
|
||||
CONSTANT: key-keypad-numlock 0x0053
|
||||
CONSTANT: key-keypad-/ 0x0054
|
||||
CONSTANT: key-keypad-* 0x0055
|
||||
CONSTANT: key-keypad-- 0x0056
|
||||
CONSTANT: key-keypad-+ 0x0057
|
||||
CONSTANT: key-keypad-enter 0x0058
|
||||
CONSTANT: key-keypad-1 0x0059
|
||||
CONSTANT: key-keypad-2 0x005a
|
||||
CONSTANT: key-keypad-3 0x005b
|
||||
CONSTANT: key-keypad-4 0x005c
|
||||
CONSTANT: key-keypad-5 0x005d
|
||||
CONSTANT: key-keypad-6 0x005e
|
||||
CONSTANT: key-keypad-7 0x005f
|
||||
CONSTANT: key-keypad-8 0x0060
|
||||
CONSTANT: key-keypad-9 0x0061
|
||||
CONSTANT: key-keypad-0 0x0062
|
||||
CONSTANT: key-keypad-. 0x0063
|
||||
CONSTANT: key-\-non-us 0x0064
|
||||
CONSTANT: key-application 0x0065
|
||||
CONSTANT: key-power 0x0066
|
||||
CONSTANT: key-keypad-= 0x0067
|
||||
CONSTANT: key-f13 0x0068
|
||||
CONSTANT: key-f14 0x0069
|
||||
CONSTANT: key-f15 0x006a
|
||||
CONSTANT: key-f16 0x006b
|
||||
CONSTANT: key-f17 0x006c
|
||||
CONSTANT: key-f18 0x006d
|
||||
CONSTANT: key-f19 0x006e
|
||||
CONSTANT: key-f20 0x006f
|
||||
CONSTANT: key-f21 0x0070
|
||||
CONSTANT: key-f22 0x0071
|
||||
CONSTANT: key-f23 0x0072
|
||||
CONSTANT: key-f24 0x0073
|
||||
CONSTANT: key-execute 0x0074
|
||||
CONSTANT: key-help 0x0075
|
||||
CONSTANT: key-menu 0x0076
|
||||
CONSTANT: key-select 0x0077
|
||||
CONSTANT: key-stop 0x0078
|
||||
CONSTANT: key-again 0x0079
|
||||
CONSTANT: key-undo 0x007a
|
||||
CONSTANT: key-cut 0x007b
|
||||
CONSTANT: key-copy 0x007c
|
||||
CONSTANT: key-paste 0x007d
|
||||
CONSTANT: key-find 0x007e
|
||||
CONSTANT: key-mute 0x007f
|
||||
CONSTANT: key-volume-up 0x0080
|
||||
CONSTANT: key-volume-down 0x0081
|
||||
CONSTANT: key-locking-caps-lock 0x0082
|
||||
CONSTANT: key-locking-num-lock 0x0083
|
||||
CONSTANT: key-locking-scroll-lock 0x0084
|
||||
CONSTANT: key-keypad-, 0x0085
|
||||
CONSTANT: key-keypad-=-as-400 0x0086
|
||||
CONSTANT: key-international-1 0x0087
|
||||
CONSTANT: key-international-2 0x0088
|
||||
CONSTANT: key-international-3 0x0089
|
||||
CONSTANT: key-international-4 0x008a
|
||||
CONSTANT: key-international-5 0x008b
|
||||
CONSTANT: key-international-6 0x008c
|
||||
CONSTANT: key-international-7 0x008d
|
||||
CONSTANT: key-international-8 0x008e
|
||||
CONSTANT: key-international-9 0x008f
|
||||
CONSTANT: key-lang-1 0x0090
|
||||
CONSTANT: key-lang-2 0x0091
|
||||
CONSTANT: key-lang-3 0x0092
|
||||
CONSTANT: key-lang-4 0x0093
|
||||
CONSTANT: key-lang-5 0x0094
|
||||
CONSTANT: key-lang-6 0x0095
|
||||
CONSTANT: key-lang-7 0x0096
|
||||
CONSTANT: key-lang-8 0x0097
|
||||
CONSTANT: key-lang-9 0x0098
|
||||
CONSTANT: key-alternate-erase 0x0099
|
||||
CONSTANT: key-sysreq 0x009a
|
||||
CONSTANT: key-cancel 0x009b
|
||||
CONSTANT: key-clear 0x009c
|
||||
CONSTANT: key-prior 0x009d
|
||||
CONSTANT: key-enter 0x009e
|
||||
CONSTANT: key-separator 0x009f
|
||||
CONSTANT: key-out 0x00a0
|
||||
CONSTANT: key-oper 0x00a1
|
||||
CONSTANT: key-clear-again 0x00a2
|
||||
CONSTANT: key-crsel-props 0x00a3
|
||||
CONSTANT: key-exsel 0x00a4
|
||||
CONSTANT: key-left-control 0x00e0
|
||||
CONSTANT: key-left-shift 0x00e1
|
||||
CONSTANT: key-left-alt 0x00e2
|
||||
CONSTANT: key-left-gui 0x00e3
|
||||
CONSTANT: key-right-control 0x00e4
|
||||
CONSTANT: key-right-shift 0x00e5
|
||||
CONSTANT: key-right-alt 0x00e6
|
||||
CONSTANT: key-right-gui 0x00e7
|
||||
|
|
|
@ -56,7 +56,7 @@ MACRO: map-index-compose ( seq quot -- seq )
|
|||
: fill-controller-state ( XINPUT_STATE -- controller-state )
|
||||
Gamepad>> controller-state new dup rot
|
||||
{
|
||||
[ wButtons>> HEX: f bitand >pov swap pov<< ]
|
||||
[ wButtons>> 0xf bitand >pov swap pov<< ]
|
||||
[ wButtons>> fill-buttons swap buttons<< ]
|
||||
[ sThumbLX>> >axis swap x<< ]
|
||||
[ sThumbLY>> >axis swap y<< ]
|
||||
|
|
|
@ -18,18 +18,18 @@ LIBRARY: glib
|
|||
|
||||
IMPLEMENT-STRUCTS: GError GPollFD GSource GSourceFuncs ;
|
||||
|
||||
CONSTANT: G_MININT8 HEX: -80
|
||||
CONSTANT: G_MAXINT8 HEX: 7f
|
||||
CONSTANT: G_MAXUINT8 HEX: ff
|
||||
CONSTANT: G_MININT16 HEX: -8000
|
||||
CONSTANT: G_MAXINT16 HEX: 7fff
|
||||
CONSTANT: G_MAXUINT16 HEX: ffff
|
||||
CONSTANT: G_MININT32 HEX: -80000000
|
||||
CONSTANT: G_MAXINT32 HEX: 7fffffff
|
||||
CONSTANT: G_MAXUINT32 HEX: ffffffff
|
||||
CONSTANT: G_MININT64 HEX: -8000000000000000
|
||||
CONSTANT: G_MAXINT64 HEX: 7fffffffffffffff
|
||||
CONSTANT: G_MAXUINT64 HEX: ffffffffffffffff
|
||||
CONSTANT: G_MININT8 -0x80
|
||||
CONSTANT: G_MAXINT8 0x7f
|
||||
CONSTANT: G_MAXUINT8 0xff
|
||||
CONSTANT: G_MININT16 -0x8000
|
||||
CONSTANT: G_MAXINT16 0x7fff
|
||||
CONSTANT: G_MAXUINT16 0xffff
|
||||
CONSTANT: G_MININT32 -0x80000000
|
||||
CONSTANT: G_MAXINT32 0x7fffffff
|
||||
CONSTANT: G_MAXUINT32 0xffffffff
|
||||
CONSTANT: G_MININT64 -0x8000000000000000
|
||||
CONSTANT: G_MAXINT64 0x7fffffffffffffff
|
||||
CONSTANT: G_MAXUINT64 0xffffffffffffffff
|
||||
|
||||
GIR: vocab:glib/GLib-2.0.gir
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ TUPLE: select-mx < mx read-fdset write-fdset ;
|
|||
! byte order differences on big endian platforms
|
||||
: munge ( i -- i' )
|
||||
little-endian? [
|
||||
cell 4 = [ BIN: 11000 ] [ BIN: 111000 ] if
|
||||
cell 4 = [ 0b11000 ] [ 0b111000 ] if
|
||||
bitxor ] unless ; inline
|
||||
|
||||
: <select-mx> ( -- mx )
|
||||
|
|
|
@ -86,7 +86,7 @@ M: io-timeout summary drop "I/O operation timed out" ;
|
|||
'[ handle>> _ wait-for-fd ] with-timeout ;
|
||||
|
||||
! Some general stuff
|
||||
CONSTANT: file-mode OCT: 0666
|
||||
CONSTANT: file-mode 0o0666
|
||||
|
||||
! Readers
|
||||
: (refill) ( port -- n )
|
||||
|
|
|
@ -8,7 +8,7 @@ math.bitwise sequences system unix unix.stat vocabs.loader
|
|||
classes.struct unix.ffi literals libc vocabs ;
|
||||
IN: io.directories.unix
|
||||
|
||||
CONSTANT: file-mode OCT: 0666
|
||||
CONSTANT: file-mode 0o0666
|
||||
|
||||
CONSTANT: touch-mode flags{ O_WRONLY O_APPEND O_CREAT O_EXCL }
|
||||
|
||||
|
@ -24,7 +24,7 @@ M: unix move-file ( from to -- )
|
|||
M: unix delete-file ( path -- ) normalize-path unlink-file ;
|
||||
|
||||
M: unix make-directory ( path -- )
|
||||
normalize-path OCT: 777 [ mkdir ] unix-system-call drop ;
|
||||
normalize-path 0o777 [ mkdir ] unix-system-call drop ;
|
||||
|
||||
M: unix delete-directory ( path -- )
|
||||
normalize-path [ rmdir ] unix-system-call drop ;
|
||||
|
|
|
@ -9,7 +9,7 @@ IN: io.encodings.8-bit.tests
|
|||
|
||||
[ "bar" ] [ "bar" latin1 decode ] unit-test
|
||||
[ { CHAR: b 233 CHAR: r } ] [ B{ CHAR: b 233 CHAR: r } latin1 decode >array ] unit-test
|
||||
[ { HEX: fffd HEX: 20AC } ] [ B{ HEX: 81 HEX: 80 } windows-1252 decode >array ] unit-test
|
||||
[ { 0xfffd 0x20AC } ] [ B{ 0x81 0x80 } windows-1252 decode >array ] unit-test
|
||||
|
||||
[ t ] [ \ latin1 8-bit-encoding? ] unit-test
|
||||
[ "bar" ] [ "bar" \ latin1 decode ] unit-test
|
||||
|
|
|
@ -6,4 +6,4 @@ IN: io.encodings.ascii.tests
|
|||
[ B{ 127 } ] [ { 127 } >string ascii encode ] unit-test
|
||||
|
||||
[ "bar" ] [ "bar" ascii decode ] unit-test
|
||||
[ { CHAR: b HEX: fffd CHAR: r } ] [ B{ CHAR: b 233 CHAR: r } ascii decode >array ] unit-test
|
||||
[ { CHAR: b 0xfffd CHAR: r } ] [ B{ CHAR: b 233 CHAR: r } ascii decode >array ] unit-test
|
||||
|
|
|
@ -11,26 +11,26 @@ IN: io.encodings.euc.tests
|
|||
: unicode>euc-kr ( ch -- ch/f )
|
||||
euc-kr euc-table word-prop value-at ;
|
||||
|
||||
[ f ] [ HEX: 80 euc-kr>unicode ] unit-test
|
||||
[ f ] [ HEX: ff euc-kr>unicode ] unit-test
|
||||
[ HEX: ac02 ] [ HEX: 8141 euc-kr>unicode ] unit-test
|
||||
[ HEX: 7f ] [ HEX: 7f euc-kr>unicode ] unit-test
|
||||
[ HEX: c724 ] [ HEX: c0b1 euc-kr>unicode ] unit-test
|
||||
[ f ] [ 0x80 euc-kr>unicode ] unit-test
|
||||
[ f ] [ 0xff euc-kr>unicode ] unit-test
|
||||
[ 0xac02 ] [ 0x8141 euc-kr>unicode ] unit-test
|
||||
[ 0x7f ] [ 0x7f euc-kr>unicode ] unit-test
|
||||
[ 0xc724 ] [ 0xc0b1 euc-kr>unicode ] unit-test
|
||||
|
||||
[ HEX: 8141 ] [ HEX: ac02 unicode>euc-kr ] unit-test
|
||||
[ HEX: 7f ] [ HEX: 7f unicode>euc-kr ] unit-test
|
||||
[ HEX: c0b1 ] [ HEX: c724 unicode>euc-kr ] unit-test
|
||||
[ 0x8141 ] [ 0xac02 unicode>euc-kr ] unit-test
|
||||
[ 0x7f ] [ 0x7f unicode>euc-kr ] unit-test
|
||||
[ 0xc0b1 ] [ 0xc724 unicode>euc-kr ] unit-test
|
||||
|
||||
: phrase-unicode ( -- s )
|
||||
"\u00b3d9\u00d574\u00bb3c\u00acfc \u00bc31\u00b450\u00c0b0\u00c774!" ;
|
||||
|
||||
: phrase-euc-kr ( -- s )
|
||||
{
|
||||
HEX: b5 HEX: bf HEX: c7 HEX: d8
|
||||
HEX: b9 HEX: b0 HEX: b0 HEX: fa
|
||||
HEX: 20 HEX: b9 HEX: e9 HEX: b5
|
||||
HEX: ce HEX: bb HEX: ea HEX: c0
|
||||
HEX: cc HEX: 21
|
||||
0xb5 0xbf 0xc7 0xd8
|
||||
0xb9 0xb0 0xb0 0xfa
|
||||
0x20 0xb9 0xe9 0xb5
|
||||
0xce 0xbb 0xea 0xc0
|
||||
0xcc 0x21
|
||||
} ;
|
||||
|
||||
: phrase-unicode>euc-kr ( -- s )
|
||||
|
|
|
@ -10,7 +10,7 @@ TUPLE: euc { table biassoc } ;
|
|||
<PRIVATE
|
||||
|
||||
: byte? ( ch -- ? )
|
||||
HEX: 0 HEX: ff between? ;
|
||||
0x0 0xff between? ;
|
||||
|
||||
M: euc encode-char ( char stream encoding -- )
|
||||
swapd table>> value-at [
|
||||
|
@ -22,7 +22,7 @@ M: euc encode-char ( char stream encoding -- )
|
|||
] [ encode-error ] if* ;
|
||||
|
||||
: euc-multibyte? ( ch -- ? )
|
||||
HEX: 81 HEX: fe between? ;
|
||||
0x81 0xfe between? ;
|
||||
|
||||
:: decode-multibyte ( ch stream encoding -- char )
|
||||
stream stream-read1
|
||||
|
|
|
@ -5,22 +5,22 @@ IN: io.encodings.gb18030.tests
|
|||
|
||||
[ "hello" ] [ "hello" gb18030 encode >string ] unit-test
|
||||
[ "hello" ] [ "hello" gb18030 decode ] unit-test
|
||||
[ B{ HEX: A1 HEX: A4 HEX: 81 HEX: 30 HEX: 86 HEX: 30 } ]
|
||||
[ B{ HEX: B7 HEX: B8 } >string gb18030 encode ] unit-test
|
||||
[ { HEX: B7 HEX: B8 } ]
|
||||
[ B{ HEX: A1 HEX: A4 HEX: 81 HEX: 30 HEX: 86 HEX: 30 } gb18030 decode >array ] unit-test
|
||||
[ { HEX: B7 CHAR: replacement-character } ]
|
||||
[ B{ HEX: A1 HEX: A4 HEX: 81 HEX: 30 HEX: 86 } gb18030 decode >array ] unit-test
|
||||
[ { HEX: B7 CHAR: replacement-character } ]
|
||||
[ B{ HEX: A1 HEX: A4 HEX: 81 HEX: 30 } gb18030 decode >array ] unit-test
|
||||
[ { HEX: B7 CHAR: replacement-character } ]
|
||||
[ B{ HEX: A1 HEX: A4 HEX: 81 } gb18030 decode >array ] unit-test
|
||||
[ { HEX: B7 } ]
|
||||
[ B{ HEX: A1 HEX: A4 } gb18030 decode >array ] unit-test
|
||||
[ B{ 0xA1 0xA4 0x81 0x30 0x86 0x30 } ]
|
||||
[ B{ 0xB7 0xB8 } >string gb18030 encode ] unit-test
|
||||
[ { 0xB7 0xB8 } ]
|
||||
[ B{ 0xA1 0xA4 0x81 0x30 0x86 0x30 } gb18030 decode >array ] unit-test
|
||||
[ { 0xB7 CHAR: replacement-character } ]
|
||||
[ B{ 0xA1 0xA4 0x81 0x30 0x86 } gb18030 decode >array ] unit-test
|
||||
[ { 0xB7 CHAR: replacement-character } ]
|
||||
[ B{ 0xA1 0xA4 0x81 0x30 } gb18030 decode >array ] unit-test
|
||||
[ { 0xB7 CHAR: replacement-character } ]
|
||||
[ B{ 0xA1 0xA4 0x81 } gb18030 decode >array ] unit-test
|
||||
[ { 0xB7 } ]
|
||||
[ B{ 0xA1 0xA4 } gb18030 decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ]
|
||||
[ B{ HEX: A1 } >string gb18030 decode >array ] unit-test
|
||||
[ { HEX: 44D7 HEX: 464B } ]
|
||||
[ B{ HEX: 82 HEX: 33 HEX: A3 HEX: 39 HEX: 82 HEX: 33 HEX: C9 HEX: 31 }
|
||||
[ B{ 0xA1 } >string gb18030 decode >array ] unit-test
|
||||
[ { 0x44D7 0x464B } ]
|
||||
[ B{ 0x82 0x33 0xA3 0x39 0x82 0x33 0xC9 0x31 }
|
||||
gb18030 decode >array ] unit-test
|
||||
[ { HEX: 82 HEX: 33 HEX: A3 HEX: 39 HEX: 82 HEX: 33 HEX: C9 HEX: 31 } ]
|
||||
[ { HEX: 44D7 HEX: 464B } >string gb18030 encode >array ] unit-test
|
||||
[ { 0x82 0x33 0xA3 0x39 0x82 0x33 0xC9 0x31 } ]
|
||||
[ { 0x44D7 0x464B } >string gb18030 encode >array ] unit-test
|
||||
|
|
|
@ -62,11 +62,11 @@ TUPLE: range ufirst ulast bfirst blast ;
|
|||
] ;
|
||||
|
||||
: unlinear ( num -- bytes )
|
||||
B{ HEX: 81 HEX: 30 HEX: 81 HEX: 30 } linear -
|
||||
10 /mod HEX: 30 + swap
|
||||
126 /mod HEX: 81 + swap
|
||||
10 /mod HEX: 30 + swap
|
||||
HEX: 81 +
|
||||
B{ 0x81 0x30 0x81 0x30 } linear -
|
||||
10 /mod 0x30 + swap
|
||||
126 /mod 0x81 + swap
|
||||
10 /mod 0x30 + swap
|
||||
0x81 +
|
||||
4byte-array reverse! ;
|
||||
|
||||
: >interval-map-by ( start-quot end-quot value-quot seq -- interval-map )
|
||||
|
@ -99,11 +99,11 @@ M: gb18030 encode-char ( char stream encoding -- )
|
|||
] dip stream-write ;
|
||||
|
||||
: second-byte? ( ch -- ? ) ! of a double-byte character
|
||||
{ [ HEX: 40 HEX: 7E between? ] [ HEX: 80 HEX: fe between? ] } 1|| ;
|
||||
{ [ 0x40 0x7E between? ] [ 0x80 0xfe between? ] } 1|| ;
|
||||
|
||||
: quad-1/3? ( ch -- ? ) HEX: 81 HEX: fe between? ;
|
||||
: quad-1/3? ( ch -- ? ) 0x81 0xfe between? ;
|
||||
|
||||
: quad-2/4? ( ch -- ? ) HEX: 30 HEX: 39 between? ;
|
||||
: quad-2/4? ( ch -- ? ) 0x30 0x39 between? ;
|
||||
|
||||
: last-bytes? ( byte-array -- ? )
|
||||
{ [ length 2 = ] [ first quad-1/3? ] [ second quad-2/4? ] } 1&& ;
|
||||
|
|
|
@ -12,25 +12,25 @@ IN: io.encodings.iso2022
|
|||
[ "hi\u00fffd" ] [ B{ CHAR: h CHAR: i ESC CHAR: ( } iso2022 decode ] unit-test
|
||||
[ "hi\u00fffd" ] [ B{ CHAR: h CHAR: i ESC } iso2022 decode ] unit-test
|
||||
|
||||
[ B{ CHAR: h ESC CHAR: ( CHAR: J HEX: D8 } ] [ "h\u00ff98" iso2022 encode ] unit-test
|
||||
[ "h\u00ff98" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J HEX: D8 } iso2022 decode ] unit-test
|
||||
[ B{ CHAR: h ESC CHAR: ( CHAR: J 0xD8 } ] [ "h\u00ff98" iso2022 encode ] unit-test
|
||||
[ "h\u00ff98" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J 0xD8 } iso2022 decode ] unit-test
|
||||
[ "hi" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J CHAR: i } iso2022 decode ] unit-test
|
||||
[ "h" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J HEX: 80 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: ( CHAR: J 0x80 } iso2022 decode ] unit-test
|
||||
|
||||
[ B{ CHAR: h ESC CHAR: $ CHAR: B HEX: 3E HEX: 47 } ] [ "h\u007126" iso2022 encode ] unit-test
|
||||
[ "h\u007126" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B HEX: 3E HEX: 47 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B HEX: 3E } iso2022 decode ] unit-test
|
||||
[ B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E 0x47 } ] [ "h\u007126" iso2022 encode ] unit-test
|
||||
[ "h\u007126" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E 0x47 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x3E } iso2022 decode ] unit-test
|
||||
[ "h" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B HEX: 80 HEX: 80 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: B 0x80 0x80 } iso2022 decode ] unit-test
|
||||
|
||||
[ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D HEX: 38 HEX: 54 } ] [ "h\u0058ce" iso2022 encode ] unit-test
|
||||
[ "h\u0058ce" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D HEX: 38 HEX: 54 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D HEX: 38 } iso2022 decode ] unit-test
|
||||
[ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 0x54 } ] [ "h\u0058ce" iso2022 encode ] unit-test
|
||||
[ "h\u0058ce" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 0x54 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x38 } iso2022 decode ] unit-test
|
||||
[ "h" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D HEX: 70 HEX: 70 } iso2022 decode ] unit-test
|
||||
[ "h\u00fffd" ] [ B{ CHAR: h ESC CHAR: $ CHAR: ( CHAR: D 0x70 0x70 } iso2022 decode ] unit-test
|
||||
|
||||
[ "\u{syriac-music}" iso2022 encode ] must-fail
|
||||
|
|
|
@ -31,7 +31,7 @@ M: iso2022 <encoder>
|
|||
M: iso2022 <decoder>
|
||||
make-iso-coder <decoder> ;
|
||||
|
||||
<< SYNTAX: ESC HEX: 16 suffix! ; >>
|
||||
<< SYNTAX: ESC 0x16 suffix! ; >>
|
||||
|
||||
CONSTANT: switch-ascii B{ ESC CHAR: ( CHAR: B }
|
||||
CONSTANT: switch-jis201 B{ ESC CHAR: ( CHAR: J }
|
||||
|
|
|
@ -12,9 +12,9 @@ IN: io.encodings.johab.tests
|
|||
johab euc-table word-prop value-at ;
|
||||
|
||||
! johab encodings
|
||||
[ HEX: 20 ] [ HEX: 20 johab>unicode ] unit-test
|
||||
[ HEX: 3133 ] [ HEX: 8444 johab>unicode ] unit-test
|
||||
[ HEX: 8A5D ] [ HEX: AD4F unicode>johab ] unit-test
|
||||
[ 0x20 ] [ 0x20 johab>unicode ] unit-test
|
||||
[ 0x3133 ] [ 0x8444 johab>unicode ] unit-test
|
||||
[ 0x8A5D ] [ 0xAD4F unicode>johab ] unit-test
|
||||
|
||||
: phrase-unicode ( -- s )
|
||||
"\u00b3d9\u00d574\u00bb3c\u00acfc \u00bc31\u00b450\u00c0b0\u00c774!" ;
|
||||
|
|
|
@ -7,10 +7,10 @@ IN: io.encodings.shift-jis.tests
|
|||
[ "" ] [ "" shift-jis decode >string ] unit-test
|
||||
[ "" ] [ "" shift-jis encode >string ] unit-test
|
||||
[ { CHAR: replacement-character } shift-jis encode ] must-fail
|
||||
[ "ab¥ィ" ] [ { CHAR: a CHAR: b HEX: 5C HEX: A8 } shift-jis decode ] unit-test
|
||||
[ { CHAR: a CHAR: b HEX: 5C HEX: A8 } ] [ "ab¥ィ" shift-jis encode >array ] unit-test
|
||||
[ "ab\\ィ" ] [ { CHAR: a CHAR: b HEX: 5C HEX: A8 } windows-31j decode ] unit-test
|
||||
[ { CHAR: a CHAR: b HEX: 5C HEX: A8 } ] [ "ab\\ィ" windows-31j encode >array ] unit-test
|
||||
[ "ab¥ィ" ] [ { CHAR: a CHAR: b 0x5C 0xA8 } shift-jis decode ] unit-test
|
||||
[ { CHAR: a CHAR: b 0x5C 0xA8 } ] [ "ab¥ィ" shift-jis encode >array ] unit-test
|
||||
[ "ab\\ィ" ] [ { CHAR: a CHAR: b 0x5C 0xA8 } windows-31j decode ] unit-test
|
||||
[ { CHAR: a CHAR: b 0x5C 0xA8 } ] [ "ab\\ィ" windows-31j encode >array ] unit-test
|
||||
[ "\u000081\u0000c8" ] [ CHAR: logical-and 1string windows-31j encode >string ] unit-test
|
||||
[ "\u000081\u0000c8" ] [ CHAR: logical-and 1string shift-jis encode >string ] unit-test
|
||||
[ { CHAR: logical-and } ] [ "\u000081\u0000c8" windows-31j decode >array ] unit-test
|
||||
|
|
|
@ -43,7 +43,7 @@ make-jis \ shift-jis-table set-value
|
|||
|
||||
: small? ( char -- ? )
|
||||
! ASCII range or single-byte halfwidth katakana
|
||||
{ [ 0 HEX: 7F between? ] [ HEX: A1 HEX: DF between? ] } 1|| ;
|
||||
{ [ 0 0x7F between? ] [ 0xA1 0xDF between? ] } 1|| ;
|
||||
|
||||
: write-halfword ( stream halfword -- )
|
||||
h>b/b swap 2byte-array swap stream-write ;
|
||||
|
|
|
@ -2,5 +2,5 @@ USING: io.encodings.strict io.encodings.ascii tools.test
|
|||
arrays io.encodings.string ;
|
||||
IN: io.encodings.strict.test
|
||||
|
||||
[ { HEX: fffd } ] [ { 128 } ascii decode >array ] unit-test
|
||||
[ { 0xfffd } ] [ { 128 } ascii decode >array ] unit-test
|
||||
[ { 128 } ascii strict decode ] must-fail
|
||||
|
|
|
@ -6,25 +6,25 @@ io.encodings.string alien.c-types alien.strings accessors classes ;
|
|||
IN: io.encodings.utf32.tests
|
||||
|
||||
[ { CHAR: x } ] [ B{ 0 0 0 CHAR: x } utf32be decode >array ] unit-test
|
||||
[ { HEX: 1D11E } ] [ B{ 0 1 HEX: D1 HEX: 1E } utf32be decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0 1 HEX: D1 } utf32be decode >array ] unit-test
|
||||
[ { 0x1D11E } ] [ B{ 0 1 0xD1 0x1E } utf32be decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0 1 0xD1 } utf32be decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0 1 } utf32be decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0 } utf32be decode >array ] unit-test
|
||||
[ { } ] [ { } utf32be decode >array ] unit-test
|
||||
|
||||
[ B{ 0 0 0 CHAR: x 0 1 HEX: D1 HEX: 1E } ] [ { CHAR: x HEX: 1d11e } >string utf32be encode ] unit-test
|
||||
[ B{ 0 0 0 CHAR: x 0 1 0xD1 0x1E } ] [ { CHAR: x 0x1d11e } >string utf32be encode ] unit-test
|
||||
|
||||
[ { CHAR: x } ] [ B{ CHAR: x 0 0 0 } utf32le decode >array ] unit-test
|
||||
[ { HEX: 1d11e } ] [ B{ HEX: 1e HEX: d1 1 0 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ HEX: 1e HEX: d1 1 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ HEX: 1e HEX: d1 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ HEX: 1e } utf32le decode >array ] unit-test
|
||||
[ { 0x1d11e } ] [ B{ 0x1e 0xd1 1 0 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0x1e 0xd1 1 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0x1e 0xd1 } utf32le decode >array ] unit-test
|
||||
[ { CHAR: replacement-character } ] [ B{ 0x1e } utf32le decode >array ] unit-test
|
||||
[ { } ] [ { } utf32le decode >array ] unit-test
|
||||
|
||||
[ B{ 120 0 0 0 HEX: 1e HEX: d1 1 0 } ] [ { CHAR: x HEX: 1d11e } >string utf32le encode ] unit-test
|
||||
[ B{ 120 0 0 0 0x1e 0xd1 1 0 } ] [ { CHAR: x 0x1d11e } >string utf32le encode ] unit-test
|
||||
|
||||
[ { CHAR: x } ] [ B{ HEX: ff HEX: fe 0 0 CHAR: x 0 0 0 } utf32 decode >array ] unit-test
|
||||
[ { CHAR: x } ] [ B{ 0 0 HEX: fe HEX: ff 0 0 0 CHAR: x } utf32 decode >array ] unit-test
|
||||
[ { CHAR: x } ] [ B{ 0xff 0xfe 0 0 CHAR: x 0 0 0 } utf32 decode >array ] unit-test
|
||||
[ { CHAR: x } ] [ B{ 0 0 0xfe 0xff 0 0 0 CHAR: x } utf32 decode >array ] unit-test
|
||||
|
||||
[ B{ HEX: ff HEX: fe 0 0 120 0 0 0 HEX: 1e HEX: d1 1 0 } ] [ { CHAR: x HEX: 1d11e } >string utf32 encode ] unit-test
|
||||
[ B{ 0xff 0xfe 0 0 120 0 0 0 0x1e 0xd1 1 0 } ] [ { CHAR: x 0x1d11e } >string utf32 encode ] unit-test
|
||||
|
||||
|
|
|
@ -46,9 +46,9 @@ M: utf32le encode-char
|
|||
|
||||
! UTF-32
|
||||
|
||||
CONSTANT: bom-le B{ HEX: ff HEX: fe 0 0 }
|
||||
CONSTANT: bom-le B{ 0xff 0xfe 0 0 }
|
||||
|
||||
CONSTANT: bom-be B{ 0 0 HEX: fe HEX: ff }
|
||||
CONSTANT: bom-be B{ 0 0 0xfe 0xff }
|
||||
|
||||
: bom>le/be ( bom -- le/be )
|
||||
dup bom-le sequence= [ drop utf32le ] [
|
||||
|
|
|
@ -103,7 +103,7 @@ HELP: set-file-permissions
|
|||
{ $description "Sets the file permissions for a given file with the supplied Unix permissions integer. Supplying an octal number with " { $link POSTPONE: OCT: } " is recommended." }
|
||||
{ $examples "Using the tradidional octal value:"
|
||||
{ $code "USING: io.files.info.unix kernel ;"
|
||||
"\"resource:license.txt\" OCT: 755 set-file-permissions"
|
||||
"\"resource:license.txt\" 0o755 set-file-permissions"
|
||||
}
|
||||
"Higher-level, setting named bits:"
|
||||
{ $code "USING: io.files.info.unix kernel literals ;"
|
||||
|
|
|
@ -119,24 +119,24 @@ M: file-info file-mode? [ permissions>> ] dip mask? ;
|
|||
|
||||
PRIVATE>
|
||||
|
||||
CONSTANT: UID OCT: 0004000
|
||||
CONSTANT: GID OCT: 0002000
|
||||
CONSTANT: STICKY OCT: 0001000
|
||||
CONSTANT: USER-ALL OCT: 0000700
|
||||
CONSTANT: USER-READ OCT: 0000400
|
||||
CONSTANT: USER-WRITE OCT: 0000200
|
||||
CONSTANT: USER-EXECUTE OCT: 0000100
|
||||
CONSTANT: GROUP-ALL OCT: 0000070
|
||||
CONSTANT: GROUP-READ OCT: 0000040
|
||||
CONSTANT: GROUP-WRITE OCT: 0000020
|
||||
CONSTANT: GROUP-EXECUTE OCT: 0000010
|
||||
CONSTANT: OTHER-ALL OCT: 0000007
|
||||
CONSTANT: OTHER-READ OCT: 0000004
|
||||
CONSTANT: OTHER-WRITE OCT: 0000002
|
||||
CONSTANT: OTHER-EXECUTE OCT: 0000001
|
||||
CONSTANT: ALL-READ OCT: 0000444
|
||||
CONSTANT: ALL-WRITE OCT: 0000222
|
||||
CONSTANT: ALL-EXECUTE OCT: 0000111
|
||||
CONSTANT: UID 0o0004000
|
||||
CONSTANT: GID 0o0002000
|
||||
CONSTANT: STICKY 0o0001000
|
||||
CONSTANT: USER-ALL 0o0000700
|
||||
CONSTANT: USER-READ 0o0000400
|
||||
CONSTANT: USER-WRITE 0o0000200
|
||||
CONSTANT: USER-EXECUTE 0o0000100
|
||||
CONSTANT: GROUP-ALL 0o0000070
|
||||
CONSTANT: GROUP-READ 0o0000040
|
||||
CONSTANT: GROUP-WRITE 0o0000020
|
||||
CONSTANT: GROUP-EXECUTE 0o0000010
|
||||
CONSTANT: OTHER-ALL 0o0000007
|
||||
CONSTANT: OTHER-READ 0o0000004
|
||||
CONSTANT: OTHER-WRITE 0o0000002
|
||||
CONSTANT: OTHER-EXECUTE 0o0000001
|
||||
CONSTANT: ALL-READ 0o0000444
|
||||
CONSTANT: ALL-WRITE 0o0000222
|
||||
CONSTANT: ALL-EXECUTE 0o0000111
|
||||
|
||||
: uid? ( obj -- ? ) UID file-mode? ;
|
||||
: gid? ( obj -- ? ) GID file-mode? ;
|
||||
|
|
|
@ -40,12 +40,12 @@ IN: io.files.unix.tests
|
|||
test-file touch-file ;
|
||||
|
||||
: perms ( -- n )
|
||||
test-file file-permissions OCT: 7777 mask ;
|
||||
test-file file-permissions 0o7777 mask ;
|
||||
|
||||
prepare-test-file
|
||||
|
||||
[ t ]
|
||||
[ test-file flags{ USER-ALL GROUP-ALL OTHER-ALL } set-file-permissions perms OCT: 777 = ] unit-test
|
||||
[ test-file flags{ USER-ALL GROUP-ALL OTHER-ALL } set-file-permissions perms 0o777 = ] unit-test
|
||||
|
||||
[ t ] [ test-file user-read? ] unit-test
|
||||
[ t ] [ test-file user-write? ] unit-test
|
||||
|
@ -57,35 +57,35 @@ prepare-test-file
|
|||
[ t ] [ test-file other-write? ] unit-test
|
||||
[ t ] [ test-file other-execute? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-other-execute perms OCT: 776 = ] unit-test
|
||||
[ t ] [ test-file f set-other-execute perms 0o776 = ] unit-test
|
||||
[ f ] [ test-file file-info other-execute? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-other-write perms OCT: 774 = ] unit-test
|
||||
[ t ] [ test-file f set-other-write perms 0o774 = ] unit-test
|
||||
[ f ] [ test-file file-info other-write? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-other-read perms OCT: 770 = ] unit-test
|
||||
[ t ] [ test-file f set-other-read perms 0o770 = ] unit-test
|
||||
[ f ] [ test-file file-info other-read? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-group-execute perms OCT: 760 = ] unit-test
|
||||
[ t ] [ test-file f set-group-execute perms 0o760 = ] unit-test
|
||||
[ f ] [ test-file file-info group-execute? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-group-write perms OCT: 740 = ] unit-test
|
||||
[ t ] [ test-file f set-group-write perms 0o740 = ] unit-test
|
||||
[ f ] [ test-file file-info group-write? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-group-read perms OCT: 700 = ] unit-test
|
||||
[ t ] [ test-file f set-group-read perms 0o700 = ] unit-test
|
||||
[ f ] [ test-file file-info group-read? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-user-execute perms OCT: 600 = ] unit-test
|
||||
[ t ] [ test-file f set-user-execute perms 0o600 = ] unit-test
|
||||
[ f ] [ test-file file-info other-execute? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-user-write perms OCT: 400 = ] unit-test
|
||||
[ t ] [ test-file f set-user-write perms 0o400 = ] unit-test
|
||||
[ f ] [ test-file file-info other-write? ] unit-test
|
||||
|
||||
[ t ] [ test-file f set-user-read perms OCT: 000 = ] unit-test
|
||||
[ t ] [ test-file f set-user-read perms 0o000 = ] unit-test
|
||||
[ f ] [ test-file file-info other-read? ] unit-test
|
||||
|
||||
[ t ]
|
||||
[ test-file flags{ USER-ALL GROUP-ALL OTHER-EXECUTE } set-file-permissions perms OCT: 771 = ] unit-test
|
||||
[ test-file flags{ USER-ALL GROUP-ALL OTHER-EXECUTE } set-file-permissions perms 0o771 = ] unit-test
|
||||
|
||||
prepare-test-file
|
||||
|
||||
|
@ -138,18 +138,18 @@ prepare-test-file
|
|||
[ ]
|
||||
[ test-file f f set-file-ids ] unit-test
|
||||
|
||||
[ t ] [ OCT: 4000 uid? ] unit-test
|
||||
[ t ] [ OCT: 2000 gid? ] unit-test
|
||||
[ t ] [ OCT: 1000 sticky? ] unit-test
|
||||
[ t ] [ OCT: 400 user-read? ] unit-test
|
||||
[ t ] [ OCT: 200 user-write? ] unit-test
|
||||
[ t ] [ OCT: 100 user-execute? ] unit-test
|
||||
[ t ] [ OCT: 040 group-read? ] unit-test
|
||||
[ t ] [ OCT: 020 group-write? ] unit-test
|
||||
[ t ] [ OCT: 010 group-execute? ] unit-test
|
||||
[ t ] [ OCT: 004 other-read? ] unit-test
|
||||
[ t ] [ OCT: 002 other-write? ] unit-test
|
||||
[ t ] [ OCT: 001 other-execute? ] unit-test
|
||||
[ t ] [ 0o4000 uid? ] unit-test
|
||||
[ t ] [ 0o2000 gid? ] unit-test
|
||||
[ t ] [ 0o1000 sticky? ] unit-test
|
||||
[ t ] [ 0o400 user-read? ] unit-test
|
||||
[ t ] [ 0o200 user-write? ] unit-test
|
||||
[ t ] [ 0o100 user-execute? ] unit-test
|
||||
[ t ] [ 0o040 group-read? ] unit-test
|
||||
[ t ] [ 0o020 group-write? ] unit-test
|
||||
[ t ] [ 0o010 group-execute? ] unit-test
|
||||
[ t ] [ 0o004 other-read? ] unit-test
|
||||
[ t ] [ 0o002 other-write? ] unit-test
|
||||
[ t ] [ 0o001 other-execute? ] unit-test
|
||||
|
||||
[ f ] [ 0 uid? ] unit-test
|
||||
[ f ] [ 0 gid? ] unit-test
|
||||
|
|
|
@ -167,7 +167,7 @@ M: windows wait-for-processes ( -- ? )
|
|||
[ handle>> hProcess>> ] void*-array{ } map-as
|
||||
[ length ] keep 0 0
|
||||
WaitForMultipleObjects
|
||||
dup HEX: ffffffff = [ win32-error ] when
|
||||
dup 0xffffffff = [ win32-error ] when
|
||||
dup WAIT_TIMEOUT = [ 2drop t ] [ swap nth process-exited f ] if ;
|
||||
|
||||
: duplicate-handle ( handle -- handle' )
|
||||
|
|
|
@ -72,7 +72,7 @@ M: object ((client)) ( addrspec -- handle )
|
|||
|
||||
! http://support.microsoft.com/kb/127144
|
||||
! NOTE: Possibly tweak this because of SYN flood attacks
|
||||
: listen-backlog ( -- n ) HEX: 7fffffff ; inline
|
||||
: listen-backlog ( -- n ) 0x7fffffff ; inline
|
||||
|
||||
M: object (server) ( addrspec -- handle )
|
||||
[
|
||||
|
|
|
@ -79,34 +79,34 @@ CONSTANT: kIOHIDElementTypeOutput 129
|
|||
CONSTANT: kIOHIDElementTypeFeature 257
|
||||
CONSTANT: kIOHIDElementTypeCollection 513
|
||||
|
||||
CONSTANT: kIOHIDElementCollectionTypePhysical HEX: 00
|
||||
CONSTANT: kIOHIDElementCollectionTypeApplication HEX: 01
|
||||
CONSTANT: kIOHIDElementCollectionTypeLogical HEX: 02
|
||||
CONSTANT: kIOHIDElementCollectionTypeReport HEX: 03
|
||||
CONSTANT: kIOHIDElementCollectionTypeNamedArray HEX: 04
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageSwitch HEX: 05
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageModifier HEX: 06
|
||||
CONSTANT: kIOHIDElementCollectionTypePhysical 0x00
|
||||
CONSTANT: kIOHIDElementCollectionTypeApplication 0x01
|
||||
CONSTANT: kIOHIDElementCollectionTypeLogical 0x02
|
||||
CONSTANT: kIOHIDElementCollectionTypeReport 0x03
|
||||
CONSTANT: kIOHIDElementCollectionTypeNamedArray 0x04
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageSwitch 0x05
|
||||
CONSTANT: kIOHIDElementCollectionTypeUsageModifier 0x06
|
||||
|
||||
CONSTANT: kIOHIDReportTypeInput 0
|
||||
CONSTANT: kIOHIDReportTypeOutput 1
|
||||
CONSTANT: kIOHIDReportTypeFeature 2
|
||||
CONSTANT: kIOHIDReportTypeCount 3
|
||||
|
||||
CONSTANT: kIOHIDOptionsTypeNone HEX: 00
|
||||
CONSTANT: kIOHIDOptionsTypeSeizeDevice HEX: 01
|
||||
CONSTANT: kIOHIDOptionsTypeNone 0x00
|
||||
CONSTANT: kIOHIDOptionsTypeSeizeDevice 0x01
|
||||
|
||||
CONSTANT: kIOHIDQueueOptionsTypeNone HEX: 00
|
||||
CONSTANT: kIOHIDQueueOptionsTypeEnqueueAll HEX: 01
|
||||
CONSTANT: kIOHIDQueueOptionsTypeNone 0x00
|
||||
CONSTANT: kIOHIDQueueOptionsTypeEnqueueAll 0x01
|
||||
|
||||
CONSTANT: kIOHIDElementFlagsConstantMask HEX: 0001
|
||||
CONSTANT: kIOHIDElementFlagsVariableMask HEX: 0002
|
||||
CONSTANT: kIOHIDElementFlagsRelativeMask HEX: 0004
|
||||
CONSTANT: kIOHIDElementFlagsWrapMask HEX: 0008
|
||||
CONSTANT: kIOHIDElementFlagsNonLinearMask HEX: 0010
|
||||
CONSTANT: kIOHIDElementFlagsNoPreferredMask HEX: 0020
|
||||
CONSTANT: kIOHIDElementFlagsNullStateMask HEX: 0040
|
||||
CONSTANT: kIOHIDElementFlagsVolativeMask HEX: 0080
|
||||
CONSTANT: kIOHIDElementFlagsBufferedByteMask HEX: 0100
|
||||
CONSTANT: kIOHIDElementFlagsConstantMask 0x0001
|
||||
CONSTANT: kIOHIDElementFlagsVariableMask 0x0002
|
||||
CONSTANT: kIOHIDElementFlagsRelativeMask 0x0004
|
||||
CONSTANT: kIOHIDElementFlagsWrapMask 0x0008
|
||||
CONSTANT: kIOHIDElementFlagsNonLinearMask 0x0010
|
||||
CONSTANT: kIOHIDElementFlagsNoPreferredMask 0x0020
|
||||
CONSTANT: kIOHIDElementFlagsNullStateMask 0x0040
|
||||
CONSTANT: kIOHIDElementFlagsVolativeMask 0x0080
|
||||
CONSTANT: kIOHIDElementFlagsBufferedByteMask 0x0100
|
||||
|
||||
CONSTANT: kIOHIDValueScaleTypeCalibrated 0
|
||||
CONSTANT: kIOHIDValueScaleTypePhysical 1
|
||||
|
|
|
@ -31,7 +31,7 @@ IN: json.reader.tests
|
|||
! unicode is allowed in json
|
||||
{ "ß∂¬ƒ˚∆" } [ """ "ß∂¬ƒ˚∆"""" json> ] unit-test
|
||||
{ 8 9 10 12 13 34 47 92 } >string 1array [ """ "\\b\\t\\n\\f\\r\\"\\/\\\\" """ json> ] unit-test
|
||||
{ HEX: abcd } >string 1array [ """ "\\uaBCd" """ json> ] unit-test
|
||||
{ 0xabcd } >string 1array [ """ "\\uaBCd" """ json> ] unit-test
|
||||
|
||||
{ H{ { "a" { } } { "b" 123 } } } [ "{\"a\":[],\"b\":123}" json> ] unit-test
|
||||
{ { } } [ "[]" json> ] unit-test
|
||||
|
|
|
@ -66,8 +66,8 @@ HELP: flags{
|
|||
{ $example
|
||||
"USING: literals kernel prettyprint ;"
|
||||
"IN: scratchpad"
|
||||
"CONSTANT: x HEX: 1"
|
||||
"flags{ HEX: 20 x BIN: 100 } .h"
|
||||
"CONSTANT: x 0x1"
|
||||
"flags{ 0x20 x 0b100 } .h"
|
||||
"25"
|
||||
}
|
||||
} ;
|
||||
|
|
|
@ -24,7 +24,7 @@ HELP: make-bits
|
|||
{ $values { "number" integer } { "bits" bits } }
|
||||
{ $description "Creates a " { $link bits } " object out of the given number, using its log base 2 as the length. This implies that the last element, corresponding to the most significant bit, will be 1." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bits prettyprint arrays ;" "BIN: 1101 make-bits >array ." "{ t f t t }" }
|
||||
{ $example "USING: math.bits prettyprint arrays ;" "0b1101 make-bits >array ." "{ t f t t }" }
|
||||
{ $example "USING: math.bits prettyprint arrays ;" "-3 make-bits >array ." "{ t f }" }
|
||||
} ;
|
||||
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
USING: tools.test math math.bits sequences arrays ;
|
||||
IN: math.bits.tests
|
||||
|
||||
[ t ] [ BIN: 111111 3 <bits> second ] unit-test
|
||||
[ { t t t } ] [ BIN: 111111 3 <bits> >array ] unit-test
|
||||
[ f ] [ BIN: 111101 3 <bits> second ] unit-test
|
||||
[ { f f t } ] [ BIN: 111100 3 <bits> >array ] unit-test
|
||||
[ 3 ] [ BIN: 111111 3 <bits> length ] unit-test
|
||||
[ 6 ] [ BIN: 111111 make-bits length ] unit-test
|
||||
[ t ] [ 0b111111 3 <bits> second ] unit-test
|
||||
[ { t t t } ] [ 0b111111 3 <bits> >array ] unit-test
|
||||
[ f ] [ 0b111101 3 <bits> second ] unit-test
|
||||
[ { f f t } ] [ 0b111100 3 <bits> >array ] unit-test
|
||||
[ 3 ] [ 0b111111 3 <bits> length ] unit-test
|
||||
[ 6 ] [ 0b111111 make-bits length ] unit-test
|
||||
[ 0 ] [ 0 make-bits length ] unit-test
|
||||
[ 2 ] [ 3 make-bits length ] unit-test
|
||||
[ 2 ] [ -3 make-bits length ] unit-test
|
||||
|
|
|
@ -35,7 +35,7 @@ HELP: bitfield
|
|||
HELP: bits
|
||||
{ $values { "m" integer } { "n" integer } { "m'" integer } }
|
||||
{ $description "Keep only n bits from the integer m." }
|
||||
{ $example "USING: math.bitwise prettyprint ;" "HEX: 123abcdef 16 bits .h" "cdef" } ;
|
||||
{ $example "USING: math.bitwise prettyprint ;" "0x123abcdef 16 bits .h" "cdef" } ;
|
||||
|
||||
HELP: bitroll
|
||||
{ $values { "x" integer } { "s" "a shift integer" } { "w" "a wrap integer" } { "y" integer }
|
||||
|
@ -43,7 +43,7 @@ HELP: bitroll
|
|||
{ $description "Roll n by s bits to the left, wrapping around after w bits." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;" "1 -1 32 bitroll .b" "10000000000000000000000000000000" }
|
||||
{ $example "USING: math.bitwise prettyprint ;" "HEX: ffff0000 8 32 bitroll .h" "ff0000ff" }
|
||||
{ $example "USING: math.bitwise prettyprint ;" "0xffff0000 8 32 bitroll .h" "ff0000ff" }
|
||||
} ;
|
||||
|
||||
HELP: bit-clear?
|
||||
|
@ -54,11 +54,11 @@ HELP: bit-clear?
|
|||
{ $description "Returns " { $link t } " if the nth bit is set to zero." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: ff 8 bit-clear? ."
|
||||
"0xff 8 bit-clear? ."
|
||||
"t"
|
||||
}
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: ff 7 bit-clear? ."
|
||||
"0xff 7 bit-clear? ."
|
||||
"f"
|
||||
}
|
||||
} ;
|
||||
|
@ -73,7 +73,7 @@ HELP: bit-count
|
|||
{ $description "Returns the number of set bits as an object. This word only works on non-negative integers or objects that can be represented as a byte-array." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: f0 bit-count ."
|
||||
"0xf0 bit-count ."
|
||||
"4"
|
||||
}
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
|
@ -94,11 +94,11 @@ HELP: bitroll-32
|
|||
{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 32 bits." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: 1 10 bitroll-32 .h"
|
||||
"0x1 10 bitroll-32 .h"
|
||||
"400"
|
||||
}
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: 1 -10 bitroll-32 .h"
|
||||
"0x1 -10 bitroll-32 .h"
|
||||
"400000"
|
||||
}
|
||||
} ;
|
||||
|
@ -111,11 +111,11 @@ HELP: bitroll-64
|
|||
{ $description "Rolls the number " { $snippet "m" } " by " { $snippet "s" } " bits to the left, wrapping around after 64 bits." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: 1 10 bitroll-64 .h"
|
||||
"0x1 10 bitroll-64 .h"
|
||||
"400"
|
||||
}
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: 1 -10 bitroll-64 .h"
|
||||
"0x1 -10 bitroll-64 .h"
|
||||
"40000000000000"
|
||||
}
|
||||
} ;
|
||||
|
@ -130,7 +130,7 @@ HELP: clear-bit
|
|||
{ $description "Sets the nth bit of " { $snippet "x" } " to zero." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ff 7 clear-bit .h"
|
||||
"0xff 7 clear-bit .h"
|
||||
"7f"
|
||||
}
|
||||
} ;
|
||||
|
@ -187,7 +187,7 @@ HELP: >signed
|
|||
}
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise prettyprint ;"
|
||||
"HEX: ff 8 >signed ."
|
||||
"0xff 8 >signed ."
|
||||
"-1"
|
||||
}
|
||||
}
|
||||
|
@ -201,7 +201,7 @@ HELP: mask
|
|||
{ $description "After the operation, only the bits that were set in both the mask and the original number are set." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"BIN: 11111111 BIN: 101 mask .b"
|
||||
"0b11111111 0b101 mask .b"
|
||||
"101"
|
||||
}
|
||||
} ;
|
||||
|
@ -214,7 +214,7 @@ HELP: mask-bit
|
|||
{ $description "Turns off all bits besides the nth bit." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ff 2 mask-bit .b"
|
||||
"0xff 2 mask-bit .b"
|
||||
"100"
|
||||
}
|
||||
} ;
|
||||
|
@ -227,12 +227,12 @@ HELP: mask?
|
|||
{ $description "Returns true if all of the bits in the mask " { $snippet "n" } " are set in the integer input " { $snippet "x" } "." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ff HEX: f mask? ."
|
||||
"0xff 0xf mask? ."
|
||||
"t"
|
||||
}
|
||||
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: f0 HEX: 1 mask? ."
|
||||
"0xf0 0x1 mask? ."
|
||||
"f"
|
||||
}
|
||||
} ;
|
||||
|
@ -281,7 +281,7 @@ HELP: toggle-bit
|
|||
"1000"
|
||||
}
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"BIN: 1000 3 toggle-bit .b"
|
||||
"0b1000 3 toggle-bit .b"
|
||||
"0"
|
||||
}
|
||||
} ;
|
||||
|
@ -314,7 +314,7 @@ HELP: unmask
|
|||
{ $description "Clears the bits in " { $snippet "x" } " if they are set in the mask " { $snippet "n" } "." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ff HEX: 0f unmask .h"
|
||||
"0xff 0x0f unmask .h"
|
||||
"f0"
|
||||
}
|
||||
} ;
|
||||
|
@ -327,7 +327,7 @@ HELP: unmask?
|
|||
{ $description "Tests whether unmasking the bits in " { $snippet "x" } " would return an integer greater than zero." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ff HEX: 0f unmask? ."
|
||||
"0xff 0x0f unmask? ."
|
||||
"t"
|
||||
}
|
||||
} ;
|
||||
|
@ -340,7 +340,7 @@ HELP: w*
|
|||
{ $description "Multiplies two integers and wraps the result to a 32-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ffffffff HEX: 2 w* ."
|
||||
"0xffffffff 0x2 w* ."
|
||||
"4294967294"
|
||||
}
|
||||
} ;
|
||||
|
@ -353,7 +353,7 @@ HELP: w+
|
|||
{ $description "Adds two integers and wraps the result to a 32-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ffffffff HEX: 2 w+ ."
|
||||
"0xffffffff 0x2 w+ ."
|
||||
"1"
|
||||
}
|
||||
} ;
|
||||
|
@ -366,7 +366,7 @@ HELP: w-
|
|||
{ $description "Subtracts two integers and wraps the result to a 32-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: 0 HEX: ff w- ."
|
||||
"0x0 0xff w- ."
|
||||
"4294967041"
|
||||
}
|
||||
} ;
|
||||
|
@ -379,7 +379,7 @@ HELP: W*
|
|||
{ $description "Multiplies two integers and wraps the result to a 64-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ffffffffffffffff HEX: 2 W* ."
|
||||
"0xffffffffffffffff 0x2 W* ."
|
||||
"18446744073709551614"
|
||||
}
|
||||
} ;
|
||||
|
@ -392,7 +392,7 @@ HELP: W+
|
|||
{ $description "Adds two integers and wraps the result to 64-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: ffffffffffffffff HEX: 2 W+ ."
|
||||
"0xffffffffffffffff 0x2 W+ ."
|
||||
"1"
|
||||
}
|
||||
} ;
|
||||
|
@ -405,7 +405,7 @@ HELP: W-
|
|||
{ $description "Subtracts two integers and wraps the result to a 64-bit unsigned integer." }
|
||||
{ $examples
|
||||
{ $example "USING: math.bitwise kernel prettyprint ;"
|
||||
"HEX: 0 HEX: ff W- ."
|
||||
"0x0 0xff W- ."
|
||||
"18446744073709551361"
|
||||
}
|
||||
} ;
|
||||
|
@ -419,7 +419,7 @@ HELP: wrap
|
|||
{ $examples "Equivalent to modding by 8:"
|
||||
{ $example
|
||||
"USING: math.bitwise prettyprint ;"
|
||||
"HEX: ffff 8 wrap .h"
|
||||
"0xffff 8 wrap .h"
|
||||
"7"
|
||||
}
|
||||
} ;
|
||||
|
|
|
@ -26,11 +26,11 @@ IN: math.bitwise.tests
|
|||
[ 8 ] [ 0 3 toggle-bit ] unit-test
|
||||
[ 0 ] [ 8 3 toggle-bit ] unit-test
|
||||
|
||||
[ 4 ] [ BIN: 1010101 bit-count ] unit-test
|
||||
[ 0 ] [ BIN: 0 bit-count ] unit-test
|
||||
[ 1 ] [ BIN: 1 bit-count ] unit-test
|
||||
[ 4 ] [ 0b1010101 bit-count ] unit-test
|
||||
[ 0 ] [ 0b0 bit-count ] unit-test
|
||||
[ 1 ] [ 0b1 bit-count ] unit-test
|
||||
[ 2 ] [ B{ 1 1 } bit-count ] unit-test
|
||||
[ 64 ] [ HEX: ffffffffffffffff bit-count ] unit-test
|
||||
[ 64 ] [ 0xffffffffffffffff bit-count ] unit-test
|
||||
|
||||
STRUCT: bit-count-struct { a uint } ;
|
||||
|
||||
|
@ -51,21 +51,21 @@ SPECIALIZED-ARRAY: uint-4
|
|||
[ 1 ] [ B{ 1 0 0 } bit-count ] unit-test
|
||||
[ 3 ] [ B{ 1 1 1 } bit-count ] unit-test
|
||||
|
||||
[ t ] [ BIN: 0 even-parity? ] unit-test
|
||||
[ f ] [ BIN: 1 even-parity? ] unit-test
|
||||
[ f ] [ BIN: 0 odd-parity? ] unit-test
|
||||
[ t ] [ BIN: 1 odd-parity? ] unit-test
|
||||
[ t ] [ 0b0 even-parity? ] unit-test
|
||||
[ f ] [ 0b1 even-parity? ] unit-test
|
||||
[ f ] [ 0b0 odd-parity? ] unit-test
|
||||
[ t ] [ 0b1 odd-parity? ] unit-test
|
||||
|
||||
[ -1 ] [ HEX: ff 4 >signed ] unit-test
|
||||
[ -1 ] [ HEX: ff 8 >signed ] unit-test
|
||||
[ 255 ] [ HEX: ff 16 >signed ] unit-test
|
||||
[ -1 ] [ 0xff 4 >signed ] unit-test
|
||||
[ -1 ] [ 0xff 8 >signed ] unit-test
|
||||
[ 255 ] [ 0xff 16 >signed ] unit-test
|
||||
|
||||
[ 2 ] [ 3 >even ] unit-test
|
||||
[ 3 ] [ 3 >odd ] unit-test
|
||||
[ 5 ] [ 4 >odd ] unit-test
|
||||
|
||||
[ t ] [ HEX: ff 1 mask? ] unit-test
|
||||
[ f ] [ HEX: 0 1 mask? ] unit-test
|
||||
[ t ] [ 0xff 1 mask? ] unit-test
|
||||
[ f ] [ 0x0 1 mask? ] unit-test
|
||||
|
||||
[ 7 ] [ 5 next-odd ] unit-test
|
||||
[ 7 ] [ 6 next-odd ] unit-test
|
||||
|
@ -73,7 +73,7 @@ SPECIALIZED-ARRAY: uint-4
|
|||
[ 6 ] [ 5 next-even ] unit-test
|
||||
[ 8 ] [ 6 next-even ] unit-test
|
||||
|
||||
[ f ] [ HEX: 1 0 bit-clear? ] unit-test
|
||||
[ t ] [ HEX: 0 1 bit-clear? ] unit-test
|
||||
[ f ] [ 0x1 0 bit-clear? ] unit-test
|
||||
[ t ] [ 0x0 1 bit-clear? ] unit-test
|
||||
|
||||
[ -1 bit-count ] [ invalid-bit-count-target? ] must-fail-with
|
||||
|
|
|
@ -77,7 +77,7 @@ DEFER: byte-bit-count
|
|||
\ byte-bit-count
|
||||
256 iota [
|
||||
8 <bits> 0 [ [ 1 + ] when ] reduce
|
||||
] B{ } map-as '[ HEX: ff bitand _ nth-unsafe ]
|
||||
] B{ } map-as '[ 0xff bitand _ nth-unsafe ]
|
||||
( byte -- table ) define-declared
|
||||
|
||||
\ byte-bit-count make-inline
|
||||
|
|
|
@ -8,7 +8,7 @@ IN: math.constants
|
|||
: phi ( -- phi ) 1.61803398874989484820 ; inline
|
||||
: pi ( -- pi ) 3.14159265358979323846 ; inline
|
||||
: 2pi ( -- pi ) 2 pi * ; inline
|
||||
: epsilon ( -- epsilon ) HEX: 3cb0000000000000 bits>double ; foldable
|
||||
: single-epsilon ( -- epsilon ) HEX: 34000000 bits>float ; foldable
|
||||
: smallest-float ( -- x ) HEX: 1 bits>double ; foldable
|
||||
: largest-float ( -- x ) HEX: 7fefffffffffffff bits>double ; foldable
|
||||
: epsilon ( -- epsilon ) 0x3cb0000000000000 bits>double ; foldable
|
||||
: single-epsilon ( -- epsilon ) 0x34000000 bits>float ; foldable
|
||||
: smallest-float ( -- x ) 0x1 bits>double ; foldable
|
||||
: largest-float ( -- x ) 0x7fefffffffffffff bits>double ; foldable
|
||||
|
|
|
@ -42,10 +42,10 @@ os linux? cpu x86.64? and [
|
|||
[ t ] +fp-invalid-operation+ [ -1.0 ] [ fsqrt ] test-fp-exception-compiled unit-test
|
||||
|
||||
[
|
||||
HEX: 3fd5,5555,5555,5555
|
||||
HEX: 3fc9,9999,9999,999a
|
||||
HEX: bfc9,9999,9999,999a
|
||||
HEX: bfd5,5555,5555,5555
|
||||
0x3fd5,5555,5555,5555
|
||||
0x3fc9,9999,9999,999a
|
||||
0xbfc9,9999,9999,999a
|
||||
0xbfd5,5555,5555,5555
|
||||
] [
|
||||
+round-nearest+ [
|
||||
1.0 3.0 /f double>bits
|
||||
|
@ -56,10 +56,10 @@ os linux? cpu x86.64? and [
|
|||
] unit-test
|
||||
|
||||
[
|
||||
HEX: 3fd5,5555,5555,5555
|
||||
HEX: 3fc9,9999,9999,9999
|
||||
HEX: bfc9,9999,9999,999a
|
||||
HEX: bfd5,5555,5555,5556
|
||||
0x3fd5,5555,5555,5555
|
||||
0x3fc9,9999,9999,9999
|
||||
0xbfc9,9999,9999,999a
|
||||
0xbfd5,5555,5555,5556
|
||||
] [
|
||||
+round-down+ [
|
||||
1.0 3.0 /f double>bits
|
||||
|
@ -70,10 +70,10 @@ os linux? cpu x86.64? and [
|
|||
] unit-test
|
||||
|
||||
[
|
||||
HEX: 3fd5,5555,5555,5556
|
||||
HEX: 3fc9,9999,9999,999a
|
||||
HEX: bfc9,9999,9999,9999
|
||||
HEX: bfd5,5555,5555,5555
|
||||
0x3fd5,5555,5555,5556
|
||||
0x3fc9,9999,9999,999a
|
||||
0xbfc9,9999,9999,9999
|
||||
0xbfd5,5555,5555,5555
|
||||
] [
|
||||
+round-up+ [
|
||||
1.0 3.0 /f double>bits
|
||||
|
@ -84,10 +84,10 @@ os linux? cpu x86.64? and [
|
|||
] unit-test
|
||||
|
||||
[
|
||||
HEX: 3fd5,5555,5555,5555
|
||||
HEX: 3fc9,9999,9999,9999
|
||||
HEX: bfc9,9999,9999,9999
|
||||
HEX: bfd5,5555,5555,5555
|
||||
0x3fd5,5555,5555,5555
|
||||
0x3fc9,9999,9999,9999
|
||||
0xbfc9,9999,9999,9999
|
||||
0xbfd5,5555,5555,5555
|
||||
] [
|
||||
+round-zero+ [
|
||||
1.0 3.0 /f double>bits
|
||||
|
@ -99,10 +99,10 @@ os linux? cpu x86.64? and [
|
|||
|
||||
! ensure rounding mode is restored to +round-nearest+
|
||||
[
|
||||
HEX: 3fd5,5555,5555,5555
|
||||
HEX: 3fc9,9999,9999,999a
|
||||
HEX: bfc9,9999,9999,999a
|
||||
HEX: bfd5,5555,5555,5555
|
||||
0x3fd5,5555,5555,5555
|
||||
0x3fc9,9999,9999,999a
|
||||
0xbfc9,9999,9999,999a
|
||||
0xbfd5,5555,5555,5555
|
||||
] [
|
||||
1.0 3.0 /f double>bits
|
||||
1.0 5.0 /f double>bits
|
||||
|
|
|
@ -105,11 +105,11 @@ GENERIC# (set-denormal-mode) 1 ( fp-env mode -- fp-env )
|
|||
|
||||
CONSTANT: vm-error-exception-flag>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 01 }
|
||||
{ +fp-overflow+ HEX: 02 }
|
||||
{ +fp-underflow+ HEX: 04 }
|
||||
{ +fp-zero-divide+ HEX: 08 }
|
||||
{ +fp-inexact+ HEX: 10 }
|
||||
{ +fp-invalid-operation+ 0x01 }
|
||||
{ +fp-overflow+ 0x02 }
|
||||
{ +fp-underflow+ 0x04 }
|
||||
{ +fp-zero-divide+ 0x08 }
|
||||
{ +fp-inexact+ 0x10 }
|
||||
}
|
||||
|
||||
PRIVATE>
|
||||
|
|
|
@ -20,17 +20,17 @@ STRUCT: ppc-vmx-env
|
|||
: set_ppc_fpu_env ( env -- )
|
||||
void { void* } cdecl [
|
||||
0 3 0 LFD
|
||||
HEX: ff 0 0 0 MTFSF
|
||||
0xff 0 0 0 MTFSF
|
||||
] alien-assembly ;
|
||||
|
||||
: get_ppc_vmx_env ( env -- )
|
||||
void { void* } cdecl [
|
||||
0 MFVSCR
|
||||
4 1 16 SUBI
|
||||
5 HEX: f LI
|
||||
5 0xf LI
|
||||
4 4 5 ANDC
|
||||
0 0 4 STVXL
|
||||
5 HEX: c LI
|
||||
5 0xc LI
|
||||
6 5 4 LWZX
|
||||
6 3 0 STW
|
||||
] alien-assembly ;
|
||||
|
@ -38,9 +38,9 @@ STRUCT: ppc-vmx-env
|
|||
: set_ppc_vmx_env ( env -- )
|
||||
void { void* } cdecl [
|
||||
3 1 16 SUBI
|
||||
5 HEX: f LI
|
||||
5 0xf LI
|
||||
4 4 5 ANDC
|
||||
5 HEX: c LI
|
||||
5 0xc LI
|
||||
6 3 0 LWZ
|
||||
6 5 4 STWX
|
||||
0 0 4 LVXL
|
||||
|
@ -64,36 +64,36 @@ M: ppc-vmx-env (set-fp-env-register)
|
|||
M: ppc (fp-env-registers)
|
||||
<ppc-fpu-env> 1array ;
|
||||
|
||||
CONSTANT: ppc-exception-flag-bits HEX: fff8,0700
|
||||
CONSTANT: ppc-exception-flag-bits 0xfff8,0700
|
||||
CONSTANT: ppc-exception-flag>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 2000,0000 }
|
||||
{ +fp-overflow+ HEX: 1000,0000 }
|
||||
{ +fp-underflow+ HEX: 0800,0000 }
|
||||
{ +fp-zero-divide+ HEX: 0400,0000 }
|
||||
{ +fp-inexact+ HEX: 0200,0000 }
|
||||
{ +fp-invalid-operation+ 0x2000,0000 }
|
||||
{ +fp-overflow+ 0x1000,0000 }
|
||||
{ +fp-underflow+ 0x0800,0000 }
|
||||
{ +fp-zero-divide+ 0x0400,0000 }
|
||||
{ +fp-inexact+ 0x0200,0000 }
|
||||
}
|
||||
|
||||
CONSTANT: ppc-fp-traps-bits HEX: f8
|
||||
CONSTANT: ppc-fp-traps-bits 0xf8
|
||||
CONSTANT: ppc-fp-traps>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 80 }
|
||||
{ +fp-overflow+ HEX: 40 }
|
||||
{ +fp-underflow+ HEX: 20 }
|
||||
{ +fp-zero-divide+ HEX: 10 }
|
||||
{ +fp-inexact+ HEX: 08 }
|
||||
{ +fp-invalid-operation+ 0x80 }
|
||||
{ +fp-overflow+ 0x40 }
|
||||
{ +fp-underflow+ 0x20 }
|
||||
{ +fp-zero-divide+ 0x10 }
|
||||
{ +fp-inexact+ 0x08 }
|
||||
}
|
||||
|
||||
CONSTANT: ppc-rounding-mode-bits HEX: 3
|
||||
CONSTANT: ppc-rounding-mode-bits 0x3
|
||||
CONSTANT: ppc-rounding-mode>bit
|
||||
$[ H{
|
||||
{ +round-nearest+ HEX: 0 }
|
||||
{ +round-zero+ HEX: 1 }
|
||||
{ +round-up+ HEX: 2 }
|
||||
{ +round-down+ HEX: 3 }
|
||||
{ +round-nearest+ 0x0 }
|
||||
{ +round-zero+ 0x1 }
|
||||
{ +round-up+ 0x2 }
|
||||
{ +round-down+ 0x3 }
|
||||
} >biassoc ]
|
||||
|
||||
CONSTANT: ppc-denormal-mode-bits HEX: 4
|
||||
CONSTANT: ppc-denormal-mode-bits 0x4
|
||||
|
||||
M: ppc-fpu-env (get-exception-flags) ( register -- exceptions )
|
||||
fpscr>> ppc-exception-flag>bit mask> ; inline
|
||||
|
@ -120,7 +120,7 @@ M: ppc-fpu-env (set-denormal-mode) ( register mode -- register' )
|
|||
} case
|
||||
] curry change-fpscr ; inline
|
||||
|
||||
CONSTANT: vmx-denormal-mode-bits HEX: 10000
|
||||
CONSTANT: vmx-denormal-mode-bits 0x10000
|
||||
|
||||
M: ppc-vmx-env (get-exception-flags) ( register -- exceptions )
|
||||
drop { } ; inline
|
||||
|
|
|
@ -32,36 +32,36 @@ M: x87-env (set-fp-env-register)
|
|||
M: x86 (fp-env-registers)
|
||||
sse2? [ <sse-env> <x87-env> 2array ] [ <x87-env> 1array ] if ;
|
||||
|
||||
CONSTANT: sse-exception-flag-bits HEX: 3f
|
||||
CONSTANT: sse-exception-flag-bits 0x3f
|
||||
CONSTANT: sse-exception-flag>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 01 }
|
||||
{ +fp-overflow+ HEX: 08 }
|
||||
{ +fp-underflow+ HEX: 10 }
|
||||
{ +fp-zero-divide+ HEX: 04 }
|
||||
{ +fp-inexact+ HEX: 20 }
|
||||
{ +fp-invalid-operation+ 0x01 }
|
||||
{ +fp-overflow+ 0x08 }
|
||||
{ +fp-underflow+ 0x10 }
|
||||
{ +fp-zero-divide+ 0x04 }
|
||||
{ +fp-inexact+ 0x20 }
|
||||
}
|
||||
|
||||
CONSTANT: sse-fp-traps-bits HEX: 1f80
|
||||
CONSTANT: sse-fp-traps-bits 0x1f80
|
||||
CONSTANT: sse-fp-traps>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 0080 }
|
||||
{ +fp-overflow+ HEX: 0400 }
|
||||
{ +fp-underflow+ HEX: 0800 }
|
||||
{ +fp-zero-divide+ HEX: 0200 }
|
||||
{ +fp-inexact+ HEX: 1000 }
|
||||
{ +fp-invalid-operation+ 0x0080 }
|
||||
{ +fp-overflow+ 0x0400 }
|
||||
{ +fp-underflow+ 0x0800 }
|
||||
{ +fp-zero-divide+ 0x0200 }
|
||||
{ +fp-inexact+ 0x1000 }
|
||||
}
|
||||
|
||||
CONSTANT: sse-rounding-mode-bits HEX: 6000
|
||||
CONSTANT: sse-rounding-mode-bits 0x6000
|
||||
CONSTANT: sse-rounding-mode>bit
|
||||
$[ H{
|
||||
{ +round-nearest+ HEX: 0000 }
|
||||
{ +round-down+ HEX: 2000 }
|
||||
{ +round-up+ HEX: 4000 }
|
||||
{ +round-zero+ HEX: 6000 }
|
||||
{ +round-nearest+ 0x0000 }
|
||||
{ +round-down+ 0x2000 }
|
||||
{ +round-up+ 0x4000 }
|
||||
{ +round-zero+ 0x6000 }
|
||||
} >biassoc ]
|
||||
|
||||
CONSTANT: sse-denormal-mode-bits HEX: 8040
|
||||
CONSTANT: sse-denormal-mode-bits 0x8040
|
||||
|
||||
M: sse-env (get-exception-flags) ( register -- exceptions )
|
||||
mxcsr>> sse-exception-flag>bit mask> ; inline
|
||||
|
@ -90,24 +90,24 @@ M: sse-env (set-denormal-mode) ( register mode -- register' )
|
|||
|
||||
SINGLETON: +fp-x87-stack-fault+
|
||||
|
||||
CONSTANT: x87-exception-bits HEX: 7f
|
||||
CONSTANT: x87-exception-bits 0x7f
|
||||
CONSTANT: x87-exception>bit
|
||||
H{
|
||||
{ +fp-invalid-operation+ HEX: 01 }
|
||||
{ +fp-overflow+ HEX: 08 }
|
||||
{ +fp-underflow+ HEX: 10 }
|
||||
{ +fp-zero-divide+ HEX: 04 }
|
||||
{ +fp-inexact+ HEX: 20 }
|
||||
{ +fp-x87-stack-fault+ HEX: 40 }
|
||||
{ +fp-invalid-operation+ 0x01 }
|
||||
{ +fp-overflow+ 0x08 }
|
||||
{ +fp-underflow+ 0x10 }
|
||||
{ +fp-zero-divide+ 0x04 }
|
||||
{ +fp-inexact+ 0x20 }
|
||||
{ +fp-x87-stack-fault+ 0x40 }
|
||||
}
|
||||
|
||||
CONSTANT: x87-rounding-mode-bits HEX: 0c00
|
||||
CONSTANT: x87-rounding-mode-bits 0x0c00
|
||||
CONSTANT: x87-rounding-mode>bit
|
||||
$[ H{
|
||||
{ +round-nearest+ HEX: 0000 }
|
||||
{ +round-down+ HEX: 0400 }
|
||||
{ +round-up+ HEX: 0800 }
|
||||
{ +round-zero+ HEX: 0c00 }
|
||||
{ +round-nearest+ 0x0000 }
|
||||
{ +round-down+ 0x0400 }
|
||||
{ +round-up+ 0x0800 }
|
||||
{ +round-zero+ 0x0c00 }
|
||||
} >biassoc ]
|
||||
|
||||
M: x87-env (get-exception-flags) ( register -- exceptions )
|
||||
|
|
|
@ -3,32 +3,32 @@ math tools.test specialized-arrays alien.data classes.struct ;
|
|||
SPECIALIZED-ARRAY: half
|
||||
IN: math.floats.half.tests
|
||||
|
||||
[ HEX: 0000 ] [ 0.0 half>bits ] unit-test
|
||||
[ HEX: 8000 ] [ -0.0 half>bits ] unit-test
|
||||
[ HEX: 3e00 ] [ 1.5 half>bits ] unit-test
|
||||
[ HEX: be00 ] [ -1.5 half>bits ] unit-test
|
||||
[ HEX: 7c00 ] [ 1/0. half>bits ] unit-test
|
||||
[ HEX: fc00 ] [ -1/0. half>bits ] unit-test
|
||||
[ HEX: 7eaa ] [ NAN: aaaaaaaaaaaaa half>bits ] unit-test
|
||||
[ 0x0000 ] [ 0.0 half>bits ] unit-test
|
||||
[ 0x8000 ] [ -0.0 half>bits ] unit-test
|
||||
[ 0x3e00 ] [ 1.5 half>bits ] unit-test
|
||||
[ 0xbe00 ] [ -1.5 half>bits ] unit-test
|
||||
[ 0x7c00 ] [ 1/0. half>bits ] unit-test
|
||||
[ 0xfc00 ] [ -1/0. half>bits ] unit-test
|
||||
[ 0x7eaa ] [ NAN: aaaaaaaaaaaaa half>bits ] unit-test
|
||||
|
||||
! too-big floats overflow to infinity
|
||||
[ HEX: 7c00 ] [ 65536.0 half>bits ] unit-test
|
||||
[ HEX: fc00 ] [ -65536.0 half>bits ] unit-test
|
||||
[ HEX: 7c00 ] [ 131072.0 half>bits ] unit-test
|
||||
[ HEX: fc00 ] [ -131072.0 half>bits ] unit-test
|
||||
[ 0x7c00 ] [ 65536.0 half>bits ] unit-test
|
||||
[ 0xfc00 ] [ -65536.0 half>bits ] unit-test
|
||||
[ 0x7c00 ] [ 131072.0 half>bits ] unit-test
|
||||
[ 0xfc00 ] [ -131072.0 half>bits ] unit-test
|
||||
|
||||
! too-small floats flush to zero
|
||||
[ HEX: 0000 ] [ 1.0e-9 half>bits ] unit-test
|
||||
[ HEX: 8000 ] [ -1.0e-9 half>bits ] unit-test
|
||||
[ 0x0000 ] [ 1.0e-9 half>bits ] unit-test
|
||||
[ 0x8000 ] [ -1.0e-9 half>bits ] unit-test
|
||||
|
||||
[ 0.0 ] [ HEX: 0000 bits>half ] unit-test
|
||||
[ -0.0 ] [ HEX: 8000 bits>half ] unit-test
|
||||
[ 1.5 ] [ HEX: 3e00 bits>half ] unit-test
|
||||
[ -1.5 ] [ HEX: be00 bits>half ] unit-test
|
||||
[ 1/0. ] [ HEX: 7c00 bits>half ] unit-test
|
||||
[ -1/0. ] [ HEX: fc00 bits>half ] unit-test
|
||||
[ 3.0 ] [ HEX: 4200 bits>half ] unit-test
|
||||
[ t ] [ HEX: 7e00 bits>half fp-nan? ] unit-test
|
||||
[ 0.0 ] [ 0x0000 bits>half ] unit-test
|
||||
[ -0.0 ] [ 0x8000 bits>half ] unit-test
|
||||
[ 1.5 ] [ 0x3e00 bits>half ] unit-test
|
||||
[ -1.5 ] [ 0xbe00 bits>half ] unit-test
|
||||
[ 1/0. ] [ 0x7c00 bits>half ] unit-test
|
||||
[ -1/0. ] [ 0xfc00 bits>half ] unit-test
|
||||
[ 3.0 ] [ 0x4200 bits>half ] unit-test
|
||||
[ t ] [ 0x7e00 bits>half fp-nan? ] unit-test
|
||||
|
||||
STRUCT: halves
|
||||
{ tom half }
|
||||
|
|
|
@ -7,21 +7,21 @@ IN: math.floats.half
|
|||
: half>bits ( float -- bits )
|
||||
float>bits
|
||||
[ -31 shift 15 shift ] [
|
||||
HEX: 7fffffff bitand
|
||||
0x7fffffff bitand
|
||||
dup zero? [
|
||||
dup HEX: 7f800000 >= [ -13 shift HEX: 7fff bitand ] [
|
||||
dup 0x7f800000 >= [ -13 shift 0x7fff bitand ] [
|
||||
-13 shift
|
||||
112 10 shift -
|
||||
0 HEX: 7c00 clamp
|
||||
0 0x7c00 clamp
|
||||
] if
|
||||
] unless
|
||||
] bi bitor ;
|
||||
|
||||
: bits>half ( bits -- float )
|
||||
[ -15 shift 31 shift ] [
|
||||
HEX: 7fff bitand
|
||||
0x7fff bitand
|
||||
dup zero? [
|
||||
dup HEX: 7c00 >= [ 13 shift HEX: 7f800000 bitor ] [
|
||||
dup 0x7c00 >= [ 13 shift 0x7f800000 bitor ] [
|
||||
13 shift
|
||||
112 23 shift +
|
||||
] if
|
||||
|
|
|
@ -27,7 +27,7 @@ IN: math.functions.tests
|
|||
[ t ] [ e pi i* ^ imaginary-part -0.00001 0.00001 between? ] unit-test
|
||||
|
||||
[ 1/0. ] [ 2.0 1024 ^ ] unit-test
|
||||
[ HEX: 1.0p-1024 ] [ 2.0 -1024 ^ ] unit-test
|
||||
[ 0x1.0p-1024 ] [ 2.0 -1024 ^ ] unit-test
|
||||
|
||||
[ t ] [ 0 0 ^ fp-nan? ] unit-test
|
||||
[ 0.0 ] [ 0.0 1.0 ^ ] unit-test
|
||||
|
@ -59,8 +59,8 @@ IN: math.functions.tests
|
|||
[ 0.0 ] [ 1.0 log ] unit-test
|
||||
[ 1.0 ] [ e log ] unit-test
|
||||
|
||||
CONSTANT: log-factorial-1000 HEX: 1.71820d04e2eb6p12
|
||||
CONSTANT: log10-factorial-1000 HEX: 1.40f3593ed6f8ep11
|
||||
CONSTANT: log-factorial-1000 0x1.71820d04e2eb6p12
|
||||
CONSTANT: log10-factorial-1000 0x1.40f3593ed6f8ep11
|
||||
|
||||
[ $ log-factorial-1000 t ] [ 1000 factorial [ log ] [ bignum? ] bi ] unit-test
|
||||
[ C{ $ log-factorial-1000 $ pi } t ] [ 1000 factorial neg [ log ] [ bignum? ] bi ] unit-test
|
||||
|
|
|
@ -160,14 +160,14 @@ GENERIC: frexp ( x -- y exp )
|
|||
M: float frexp
|
||||
dup fp-special? [ dup zero? ] unless* [ 0 ] [
|
||||
double>bits
|
||||
[ HEX: 800f,ffff,ffff,ffff bitand 0.5 double>bits bitor bits>double ]
|
||||
[ -52 shift HEX: 7ff bitand 1022 - ] bi
|
||||
[ 0x800f,ffff,ffff,ffff bitand 0.5 double>bits bitor bits>double ]
|
||||
[ -52 shift 0x7ff bitand 1022 - ] bi
|
||||
] if ; inline
|
||||
|
||||
M: integer frexp
|
||||
[ 0.0 0 ] [
|
||||
dup 0 > [ 1 ] [ abs -1 ] if swap dup log2 [
|
||||
52 swap - shift HEX: 000f,ffff,ffff,ffff bitand
|
||||
52 swap - shift 0x000f,ffff,ffff,ffff bitand
|
||||
0.5 double>bits bitor bits>double
|
||||
] [ 1 + ] bi [ * ] dip
|
||||
] if-zero ; inline
|
||||
|
@ -183,11 +183,11 @@ M: complex log >polar [ flog ] dip rect> ; inline
|
|||
<PRIVATE
|
||||
|
||||
: most-negative-finite-float ( -- x )
|
||||
HEX: -1.ffff,ffff,ffff,fp1023 >integer ; inline
|
||||
-0x1.ffff,ffff,ffff,fp1023 >integer ; inline
|
||||
: most-positive-finite-float ( -- x )
|
||||
HEX: 1.ffff,ffff,ffff,fp1023 >integer ; inline
|
||||
CONSTANT: log-2 HEX: 1.62e42fefa39efp-1
|
||||
CONSTANT: log10-2 HEX: 1.34413509f79ffp-2
|
||||
0x1.ffff,ffff,ffff,fp1023 >integer ; inline
|
||||
CONSTANT: log-2 0x1.62e42fefa39efp-1
|
||||
CONSTANT: log10-2 0x1.34413509f79ffp-2
|
||||
|
||||
: (representable-as-float?) ( x -- ? )
|
||||
most-negative-finite-float
|
||||
|
|
|
@ -191,11 +191,11 @@ TUPLE: simd-test-failure
|
|||
] [ = ] check-optimizer
|
||||
] unit-test
|
||||
|
||||
[ HEX: ffffffff ] [ HEX: ffffffff uint-4-with first ] unit-test
|
||||
[ 0xffffffff ] [ 0xffffffff uint-4-with first ] unit-test
|
||||
|
||||
[ HEX: ffffffff ] [ HEX: ffffffff [ uint-4-with ] compile-call first ] unit-test
|
||||
[ 0xffffffff ] [ 0xffffffff [ uint-4-with ] compile-call first ] unit-test
|
||||
|
||||
[ HEX: ffffffff ] [ [ HEX: ffffffff uint-4-with ] compile-call first ] unit-test
|
||||
[ 0xffffffff ] [ [ 0xffffffff uint-4-with ] compile-call first ] unit-test
|
||||
|
||||
"== Checking -boa constructors" print
|
||||
|
||||
|
@ -206,7 +206,7 @@ TUPLE: simd-test-failure
|
|||
] [ = ] check-optimizer
|
||||
] unit-test
|
||||
|
||||
[ HEX: ffffffff ] [ HEX: ffffffff 2 3 4 [ uint-4-boa ] compile-call first ] unit-test
|
||||
[ 0xffffffff ] [ 0xffffffff 2 3 4 [ uint-4-boa ] compile-call first ] unit-test
|
||||
|
||||
"== Checking vector operations" print
|
||||
|
||||
|
@ -566,12 +566,12 @@ TUPLE: inconsistent-vector-test bool branch ;
|
|||
'[ [ _ 1quotation ] dip '[ _ swap nth ] ] [ = ] check-optimizer ; inline
|
||||
|
||||
[ { } ] [ float-4{ 1.0 2.0 3.0 4.0 } test-accesses ] unit-test
|
||||
[ { } ] [ int-4{ HEX: 7fffffff 3 4 -8 } test-accesses ] unit-test
|
||||
[ { } ] [ uint-4{ HEX: ffffffff 2 3 4 } test-accesses ] unit-test
|
||||
[ { } ] [ int-4{ 0x7fffffff 3 4 -8 } test-accesses ] unit-test
|
||||
[ { } ] [ uint-4{ 0xffffffff 2 3 4 } test-accesses ] unit-test
|
||||
|
||||
[ HEX: 7fffffff ] [ int-4{ HEX: 7fffffff 3 4 -8 } first ] unit-test
|
||||
[ -8 ] [ int-4{ HEX: 7fffffff 3 4 -8 } last ] unit-test
|
||||
[ HEX: ffffffff ] [ uint-4{ HEX: ffffffff 2 3 4 } first ] unit-test
|
||||
[ 0x7fffffff ] [ int-4{ 0x7fffffff 3 4 -8 } first ] unit-test
|
||||
[ -8 ] [ int-4{ 0x7fffffff 3 4 -8 } last ] unit-test
|
||||
[ 0xffffffff ] [ uint-4{ 0xffffffff 2 3 4 } first ] unit-test
|
||||
|
||||
[ { } ] [ double-2{ 1.0 2.0 } test-accesses ] unit-test
|
||||
[ { } ] [ longlong-2{ 1 2 } test-accesses ] unit-test
|
||||
|
@ -583,8 +583,8 @@ TUPLE: inconsistent-vector-test bool branch ;
|
|||
'[ [ _ 1quotation ] dip '[ _ vbroadcast ] ] [ = ] check-optimizer ;
|
||||
|
||||
[ { } ] [ float-4{ 1.0 2.0 3.0 4.0 } test-broadcast ] unit-test
|
||||
[ { } ] [ int-4{ HEX: 7fffffff 3 4 -8 } test-broadcast ] unit-test
|
||||
[ { } ] [ uint-4{ HEX: ffffffff 2 3 4 } test-broadcast ] unit-test
|
||||
[ { } ] [ int-4{ 0x7fffffff 3 4 -8 } test-broadcast ] unit-test
|
||||
[ { } ] [ uint-4{ 0xffffffff 2 3 4 } test-broadcast ] unit-test
|
||||
|
||||
[ { } ] [ double-2{ 1.0 2.0 } test-broadcast ] unit-test
|
||||
[ { } ] [ longlong-2{ 1 2 } test-broadcast ] unit-test
|
||||
|
|
|
@ -438,14 +438,14 @@ HELP: vshuffle
|
|||
" { 4 [ uchar-16{ 3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12 } ] }"
|
||||
" } case ;"
|
||||
""
|
||||
"int-4{ HEX: 11223344 HEX: 11223344 HEX: 11223344 HEX: 11223344 }"
|
||||
"int-4{ 0x11223344 0x11223344 0x11223344 0x11223344 }"
|
||||
"4 endian-swap vshuffle"
|
||||
"16 number-base [ . ] with-variable"
|
||||
"""int-4{
|
||||
HEX: 44332211
|
||||
HEX: 44332211
|
||||
HEX: 44332211
|
||||
HEX: 44332211
|
||||
0x44332211
|
||||
0x44332211
|
||||
0x44332211
|
||||
0x44332211
|
||||
}"""
|
||||
}
|
||||
} ;
|
||||
|
|
|
@ -10,7 +10,7 @@ TUPLE: nibble-array
|
|||
|
||||
<PRIVATE
|
||||
|
||||
CONSTANT: nibble BIN: 1111
|
||||
CONSTANT: nibble 0b1111
|
||||
|
||||
: nibbles>bytes ( m -- n ) 1 + 2/ ; inline
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -22,14 +22,14 @@ IN: opengl
|
|||
|
||||
: error>string ( n -- string )
|
||||
H{
|
||||
{ HEX: 0 "No error" }
|
||||
{ HEX: 0501 "Invalid value" }
|
||||
{ HEX: 0500 "Invalid enumerant" }
|
||||
{ HEX: 0502 "Invalid operation" }
|
||||
{ HEX: 0503 "Stack overflow" }
|
||||
{ HEX: 0504 "Stack underflow" }
|
||||
{ HEX: 0505 "Out of memory" }
|
||||
{ HEX: 0506 "Invalid framebuffer operation" }
|
||||
{ 0x0 "No error" }
|
||||
{ 0x0501 "Invalid value" }
|
||||
{ 0x0500 "Invalid enumerant" }
|
||||
{ 0x0502 "Invalid operation" }
|
||||
{ 0x0503 "Stack overflow" }
|
||||
{ 0x0504 "Stack underflow" }
|
||||
{ 0x0505 "Out of memory" }
|
||||
{ 0x0506 "Invalid framebuffer operation" }
|
||||
} at "Unknown error" or ;
|
||||
|
||||
TUPLE: gl-error function code string ;
|
||||
|
|
|
@ -48,11 +48,11 @@ STRUCT: bio
|
|||
{ crypto-ex-data-stack void* }
|
||||
{ crypto-ex-data-dummy int } ;
|
||||
|
||||
CONSTANT: BIO_NOCLOSE HEX: 00
|
||||
CONSTANT: BIO_CLOSE HEX: 01
|
||||
CONSTANT: BIO_NOCLOSE 0x00
|
||||
CONSTANT: BIO_CLOSE 0x01
|
||||
|
||||
CONSTANT: RSA_3 HEX: 3
|
||||
CONSTANT: RSA_F4 HEX: 10001
|
||||
CONSTANT: RSA_3 0x3
|
||||
CONSTANT: RSA_F4 0x10001
|
||||
|
||||
CONSTANT: BIO_C_SET_SSL 109
|
||||
CONSTANT: BIO_C_GET_SSL 110
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue