path: root/docs/Bytecode
diff options
authorJohn Mark Bell <>2008-11-23 09:58:48 +0000
committerJohn Mark Bell <>2008-11-23 09:58:48 +0000
commita3b7632e61981a730a8883a13f36f19be75647f1 (patch)
tree07ec4da268fb7e7f9aa2ddc20c5379e7f5982003 /docs/Bytecode
parent1f0c609def5cff6b7bc16ddeefafb1654b11cb71 (diff)
All numerical values are represented in 22:10 fixed point.
svn path=/trunk/libcss/; revision=5762
Diffstat (limited to 'docs/Bytecode')
1 files changed, 4 insertions, 9 deletions
diff --git a/docs/Bytecode b/docs/Bytecode
index e7bb2fa..0b5ec74 100644
--- a/docs/Bytecode
+++ b/docs/Bytecode
@@ -23,21 +23,16 @@ Parameters are opcode-specific. Each parameter must begin on a 4 byte boundary.
Datatype storage
-8 and 16 bit integers are stored as 32bit values.
-32 bit integers are stored in their natural format.
-Floats are stored in their natural format.
-Integers wider than 32 bits are not supported.
-Doubles are not supported.
+All numeric values are stored in a 32bit wide field. This field contains
+a fixed point value with 22 bits assigned to the integer part and 10 bits
+assigned to the fractional part.
Strings are stored as <pointer,length> pairs, as per css_string.
Pointer's width is the native width of a pointer on the platform.
Length's width is the native width of a size_t on the platform.
CSS dimensions are stored as two 32bit values: <length, units>.
-Length is a 32bit integer and unit is as follows:
+Length is a 32bit numeric value (as described above) and unit is as follows:
bit 8 clear => length unit
bits 9-31: MBZ