use radix literals

db4
Joe Groff 2011-11-23 18:49:33 -08:00
parent e738c7206c
commit 943596575a
279 changed files with 10239 additions and 10239 deletions

View File

@ -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

View File

@ -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
] [

View File

@ -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 ;

View File

@ -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 -- )

View File

@ -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

View File

@ -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

View File

@ -87,7 +87,7 @@ SYMBOL: objects
! Constants
CONSTANT: image-magic HEX: 0f0e0d0c
CONSTANT: image-magic 0x0f0e0d0c
CONSTANT: image-version 4
CONSTANT: data-base 1024

View File

@ -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 }

View File

@ -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 ;

View File

@ -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.

View File

@ -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

View File

@ -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" ]
[

View File

@ -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 <

View File

@ -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

View File

@ -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 ;

View File

@ -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> ;

View File

@ -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

View File

@ -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

View File

@ -17,7 +17,7 @@ CONSTANT: NSApplicationDelegateReplyFailure 2
: NSApp ( -- app ) NSApplication -> sharedApplication ;
CONSTANT: NSAnyEventMask HEX: ffffffff
CONSTANT: NSAnyEventMask 0xffffffff
FUNCTION: void NSBeep ( ) ;

View File

@ -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 ) ;

View File

@ -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

View File

@ -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 ;

View File

@ -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 }
}
] [
{

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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 )

View File

@ -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 ) ;

View File

@ -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 -- )

View File

@ -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 ;

View File

@ -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

View File

@ -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* ]

View File

@ -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 ;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 -- )
[

View File

@ -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

View File

@ -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

View File

@ -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 ;

View File

@ -56,7 +56,7 @@ HELP: printf
"00123" }
{ $example
"USING: formatting ;"
"HEX: ff \"%04X\" printf"
"0xff \"%04X\" printf"
"00FF" }
{ $example
"USING: formatting ;"

View File

@ -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

View File

@ -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

View File

@ -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 ;

View File

@ -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
{

View File

@ -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

View File

@ -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<< ]

View File

@ -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

View File

@ -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 )

View File

@ -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 )

View File

@ -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 ;

View File

@ -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

View File

@ -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

View File

@ -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 )

View File

@ -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

View File

@ -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

View File

@ -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&& ;

View File

@ -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

View File

@ -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 }

View File

@ -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!" ;

View File

@ -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

View File

@ -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 ;

View File

@ -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

View File

@ -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

View File

@ -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 ] [

View File

@ -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 ;"

View File

@ -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? ;

View File

@ -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

View File

@ -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' )

View File

@ -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 )
[

View File

@ -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

View File

@ -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

View File

@ -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"
}
} ;

View File

@ -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 }" }
} ;

View File

@ -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

View File

@ -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"
}
} ;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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 )

View File

@ -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 }

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}"""
}
} ;

View File

@ -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

View File

@ -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 ;

View File

@ -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