Slava Pestov
48f87e03e3
cpu.x86: fix callbacks receiving stack parameters on Win64
2010-05-23 23:08:07 -04:00
Doug Coleman
af2a5eb18d
Merge branch 'master' of git://factorcode.org/git/factor
2010-05-23 21:34:37 -05:00
Slava Pestov
6b87f0d0d9
opengl.gl.unix renamed to opengl.gl.x11
2010-05-23 22:25:17 -04:00
Slava Pestov
cd5c1ab499
ui.backend.x11: fix load error
2010-05-23 22:08:24 -04:00
Doug Coleman
591a77700d
Remove typo slot, fix scheduling formula, record initial iteration nano-count
2010-05-23 18:44:04 -05:00
Slava Pestov
c8af0e4d5c
alarms: add unit test for race condition
2010-05-23 18:38:37 -04:00
Slava Pestov
66fcab3721
Fixes for out parameter changes
2010-05-23 03:27:40 -05:00
Slava Pestov
70a99e1cdb
Updating code to use with-out-parameters
2010-05-23 03:07:47 -04:00
Slava Pestov
c9ad0856d5
cpu.x86.64: callback prologue was clobbering 5th parameter register on x86-64
2010-05-23 03:00:53 -04:00
Joe Groff
6fb91a042e
system-info.windows.nt: lingering string C type
2010-05-22 19:23:45 -07:00
Slava Pestov
ba7cb61133
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Doug Coleman
61184af840
Clarify and reword alarms documentation
2010-05-22 00:17:30 -05:00
Doug Coleman
8935105537
Remove alarms from using list, minor refactoring
2010-05-21 20:48:33 -05:00
Doug Coleman
6e8e487b6b
Rotate logs every day, but wait a day first
2010-05-21 20:44:38 -05:00
Doug Coleman
e75b85de30
Update code base for new alarms api
2010-05-21 20:42:12 -05:00
Doug Coleman
09d2a7dbc7
Cleaner implementation of alarms. Separate creating alarm from starting/stopping them.
2010-05-21 20:29:25 -05:00
Doug Coleman
4116d8a159
Make the alarm test wait for the promise to be fulfilled instead of returning immediately and failing
2010-05-21 20:03:32 -05:00
Joe Groff
896949fbb8
Merge branch 'master' of factorcode.org:/git/factor
2010-05-21 16:40:41 -07:00
Niklas.Waern
0be7a74e64
x11.xinput2.ffi: make XI*Mask less ugly
2010-05-22 01:36:04 +02:00
Slava Pestov
949712243f
io.backend.unix: make timeouts work on stdin once Doug fixes alarms
2010-05-21 19:09:15 -04:00
Slava Pestov
0e496c8693
alarms: add a couple of unit tests
2010-05-21 19:09:01 -04:00
Niklas.Waern
15f0ff877e
x11.xlib: add GenericEvent constant
2010-05-22 00:29:38 +02:00
Niklas.Waern
35f7d049ae
x11.xinput2: xi2-available?
2010-05-22 00:12:51 +02:00
Niklas.Waern
e06ba797ca
x11.xlib: add a few things for xinput2
2010-05-22 00:12:51 +02:00
Niklas.Waern
715973905f
x11.xinput2.ffi
2010-05-22 00:12:51 +02:00
Niklas.Waern
af7f389b97
x11.xinput2.constants
2010-05-22 00:12:50 +02:00
Niklas.Waern
6247181026
create basis/x11/xinput2
2010-05-22 00:12:50 +02:00
Doug Coleman
01e14d1430
Fix using list in sequences.unrolled, keys/values was not appropriate in several locations
2010-05-21 15:28:05 -05:00
Doug Coleman
547746db9f
Change alarm start variable to store nano-count of start time instead of (nano-count + interval)
2010-05-21 13:28:03 -05:00
Doug Coleman
f3c9eab1f5
Simplify the alarms implementation a bit
2010-05-21 13:19:15 -05:00
Doug Coleman
61b9f7a6d5
- Change alarms to run in a single spawned green thread instead of spawning a new thread for each iteration of the alarm so game.loop can use alarms -- the old behavior can be embedded by calling in-thread in your alarm handler quotation
...
- Remove current-alarm dynamic variable in favor of optionally passing the alarm on the stack to the quotation
- Reschedule alarms based on a multiple of the interval from the original start time to eliminate alarm drift over time
- Clarify alarm contract in docs
- Fix later example
2010-05-21 12:48:05 -05:00
Doug Coleman
bdecd564a3
Use keys/values where appropriate
2010-05-21 12:48:04 -05:00
Joe Groff
ed6b1dab02
sequences.unrolled vocab with fixed-length unrolling versions of some each and map combinators
2010-05-19 16:22:22 -07:00
Slava Pestov
dc1aca7ae2
specialized-arrays: fix typo
2010-05-19 03:23:26 -04:00
Slava Pestov
9e59192c73
compiler.cfg.builder.alien: use ##local-allot to fix value struct passing on Win64
2010-05-19 01:53:32 -04:00
Slava Pestov
9730ec1707
cpu.x86.32: fix load error
2010-05-19 01:29:52 -04:00
Slava Pestov
91cd3b854d
Use ##local-allot to simplify longlong unboxing
2010-05-19 01:07:22 -04:00
Slava Pestov
0a0ebcd71d
compiler.tree.propagation.known-words: fix load error
2010-05-19 00:51:03 -04:00
Slava Pestov
86358b1dc3
alien.data: add with-scoped-allocation combinator for stack-allocating C data
2010-05-19 00:33:36 -04:00
Slava Pestov
77516c6932
compiler.cfg: generalize ##prepare-struct-caller instruction to alloca()-like ##local-allot
2010-05-19 00:33:15 -04:00
Slava Pestov
7c85fdc1e5
stack-checker.alien: callback and assembly quotations can be callables
2010-05-19 00:31:46 -04:00
Slava Pestov
a8098e3182
specialized-arrays: rename byte-array>T-array to T-array-cast, and make it work with anything that responds to >c-ptr / byte-length
2010-05-18 23:09:34 -04:00
Slava Pestov
4dd58ce40e
compiler.tests: fix test for generalizations change
2010-05-18 23:08:37 -04:00
Slava Pestov
e30a429985
Fixing fallout from sequences.generalizations change
2010-05-18 22:59:07 -04:00
Slava Pestov
cf7451131e
libc: use size_t instead of ulong for correct behavior on win64
2010-05-18 22:34:52 -04:00
Slava Pestov
4d66f52777
alien.c-types: make a couple of words private
2010-05-18 22:34:42 -04:00
Slava Pestov
b67080b69d
cpu.x86.assembler: drop useless ST0 operand from some x87 instructions
2010-05-18 19:37:59 -04:00
Slava Pestov
11511167e2
cpu.x86.x87: compares were clobbering ST0
2010-05-18 19:18:53 -04:00
Slava Pestov
1834241e5a
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
2010-05-18 18:46:31 -04:00
Slava Pestov
ea726f5680
Move remaining sequence operations from generalizations to sequences.generalizations where they belong
2010-05-18 18:36:47 -04:00
Slava Pestov
2dde83767c
cpu.x86.assembler: fix typo
2010-05-18 17:59:34 -04:00
Slava Pestov
0aa6ae0feb
cpu.x86.x87: use FISTPD to convert floats to integers, instead of the SSE3 instruction FISTTPD
2010-05-18 17:10:58 -04:00
Slava Pestov
f5a951801e
cpu.x86.assembler: AH CH DH BH register operands now work properly
2010-05-18 17:10:32 -04:00
Slava Pestov
be733cd797
compiler.cfg.value-numbering: constant folding for ##shuffle-vector
2010-05-18 04:22:21 -04:00
Slava Pestov
53a51957df
compiler.cfg.value-numbering: add constant folding for ##gather-vector instructions, and fix ##scalar>vector constant folding for integers
2010-05-18 03:56:07 -04:00
Slava Pestov
3104ad779a
cpu.x86.64: call check-sse to ensure that cpu.x86.sse is loaded
2010-05-17 11:43:42 -04:00
Slava Pestov
6eaf2d7534
cpu.x86: add x87 codegen for Model T enthusiasts
2010-05-17 11:35:47 -04:00
Slava Pestov
41d929a201
compiler.cfg.ssa.interference: implement linear-time interference test
2010-05-17 05:50:13 -04:00
Slava Pestov
6b7260a4a7
compiler.cfg.ssa.interference.live-ranges: compute correct live ranges for ##phi instructions
2010-05-17 05:50:13 -04:00
Slava Pestov
0955f2c7eb
compiler.cfg.linear-scan: fix typo
2010-05-17 05:50:13 -04:00
Joe Groff
93abc7d169
cpu.x86.assembler: a choice selection of x87 instructions
2010-05-17 02:02:40 -07:00
Slava Pestov
db5b33977b
cpu.x86.32: clean up %unary/binary-float-function
2010-05-17 04:03:13 -04:00
Slava Pestov
7ff309d50e
cpu.x86: get rid of this extra-stack-space nonsense
2010-05-17 02:14:44 -04:00
Slava Pestov
3f8e13bf66
compiler.cfg: refactor stack frame code and fix frame pointer usage in callbacks
2010-05-16 21:04:40 -04:00
Slava Pestov
a7b5957f6d
compiler: hack to make XCreateIC() work on x86-64
2010-05-16 04:49:53 -04:00
Slava Pestov
8ebecac4d2
Merge branch 'master' of git://factorcode.org/git/factor
2010-05-16 04:10:03 -04:00
Slava Pestov
e6abc0be15
Fixes for FFI changes
2010-05-16 04:09:47 -04:00
Joe Groff
67ea40ade3
compiler.cfg.intrinsics.simd: use ^^select-vector for simd constant nth when available
2010-05-16 00:50:20 -07:00
Joe Groff
645164188d
compiler.cfg.instructions: ##select-vector instruction mapping to SSE4 PEXTR*
2010-05-16 00:50:19 -07:00
Slava Pestov
5b48cd2a63
FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing
2010-05-16 03:43:23 -04:00
Joe Groff
0c27f30475
compiler.cfg.intrinsics.simd: use new ##gather-int-vector insns to construct int vectors when available
2010-05-15 23:59:27 -07:00
Joe Groff
8c878ada17
compiler.cfg.instructions: ##gather-int-vector-2/4 instructions that map to SSE4 PINSR/PEXTR
2010-05-15 23:48:22 -07:00
Joe Groff
7c0cd6dc37
cpu.x86: fix bootstrap load error
2010-05-15 15:28:22 -07:00
Joe Groff
3de020c18a
cpu.x86: don't enable bit-count intrinsic by default
2010-05-15 14:52:00 -07:00
Joe Groff
3956dd1516
cpu.x86.features: ( int alien-assembly ) c-bool> ==> ( bool alien-assembly )
2010-05-15 14:33:19 -07:00
Joe Groff
009408dd11
cpu.x86: enable bit-count intrinsic if POPCNT available
2010-05-15 14:00:12 -07:00
Joe Groff
5d35917061
compiler.cfg.intrinsics: intrinsic for fixnum-bit-count
2010-05-15 13:59:47 -07:00
Joe Groff
7fec53b509
compiler.cfg.instructions: ##bit-count insn
2010-05-15 13:57:35 -07:00
Joe Groff
7c6c4ef8ae
math.bitwise: factor M\ fixnum (bit-count) to a separate word so it can be made intrinsic
2010-05-15 13:27:26 -07:00
Joe Groff
c00272d80a
cpu.x86.features: add popcnt? test
2010-05-15 13:26:14 -07:00
Joe Groff
d5b7ec3348
cpu.x86.assembler: SETcc instructions
2010-05-15 13:14:27 -07:00
Joe Groff
986ed057d8
cpu.x86.assembler: BT family instructions
2010-05-15 13:08:22 -07:00
Joe Groff
010b5069bd
opengl.textures: borrow get-texture-float and get-texture-int helper words from gpu.textures
2010-05-15 12:09:50 -07:00
Slava Pestov
5c0c87fcaa
compiler.cfg.value-numbering.comparisons: ##test-imm rewrite rule must check that the immediate fits
2010-05-15 03:19:24 -04:00
Slava Pestov
ad7636045f
compiler: fix bad unit test
2010-05-14 18:37:11 -04:00
Slava Pestov
62eadda2aa
cpu.x86.bootstrap: use TEST instruction
2010-05-14 18:37:10 -04:00
Slava Pestov
5ecd2b61c7
compiler.cfg: more silly optimizations
2010-05-14 18:37:09 -04:00
Slava Pestov
1a61c50896
compiler.cfg.instructions: change vreg-insn from a mixin into a superclass
2010-05-14 18:37:09 -04:00
Slava Pestov
6d30bb8bf4
compiler.cfg.linear-scan: pointless optimizations
2010-05-14 18:37:08 -04:00
Slava Pestov
291543c300
compiler.cfg.ssa.live-ranges: clean up
2010-05-14 18:37:08 -04:00
Slava Pestov
2a137bed0e
bootstrap.compiler.timing: small update
2010-05-14 18:37:07 -04:00
Slava Pestov
d1e422c981
compiler.cfg.alias-analysis: simplify and speed up
2010-05-14 18:37:07 -04:00
Slava Pestov
5a67711bfd
compiler.cfg: use x86 TEST instruction to optimize 'bitand 0 ='
2010-05-14 18:37:06 -04:00
Joe Groff
22625469bc
sequences.cords: specialize vshuffle-elements to use vshuffle2-elements on cord components
2010-05-14 13:29:37 -07:00
Joe Groff
8f1751cd54
math.vectors.simd.intrinsics: fix scalar fallback for (simd-vshuffle2-elements)
2010-05-14 02:47:39 -07:00
Joe Groff
2744816209
math.vectors, math.vectors.simd: add user-facing vshuffle2 word
2010-05-14 02:47:05 -07:00
Joe Groff
465a1673eb
compiler.cfg.intrinsics.simd: mod shuffle indices for shuffle-2-vectors-imm intrinsic so they wrap like a real instruction would
2010-05-14 01:20:05 -07:00
Joe Groff
9f9e145819
math.vectors.simd.intrinsics: (simd-vshuffle2-elements) intrinsic that creates a vector by selecting elements from two input vectors. use ##shuffle-vector-halves-imm to implement for double-2s with SSE
2010-05-14 01:16:29 -07:00
Joe Groff
3766abd65e
compiler.cfg.instructions: ##shuffle-vector-halves-imm insn to map to SSE's two-input SHUFPS/SHUFPD
2010-05-14 00:20:21 -07:00
Slava Pestov
fe30355ec7
math.vectors.simd.cords: implement new-sequence and like methods on cords to make cross product work
2010-05-13 21:55:19 -04:00