David Schleef [Wed, 28 Jul 2010 00:21:48 +0000 (17:21 -0700)]
sse: only set mxcsr if float opcodes are used
David Schleef [Wed, 28 Jul 2010 00:21:08 +0000 (17:21 -0700)]
tests: quiet test output
David Schleef [Wed, 28 Jul 2010 00:08:02 +0000 (17:08 -0700)]
Reimplement emulation
David Schleef [Tue, 27 Jul 2010 23:55:42 +0000 (16:55 -0700)]
update orcfunctions.c
David Schleef [Tue, 27 Jul 2010 02:27:31 +0000 (19:27 -0700)]
test: quiet test_accsadubl
David Schleef [Mon, 26 Jul 2010 21:52:52 +0000 (14:52 -0700)]
Use TMPDIR for temporary code memory files
Also better error reporting.
Stuart Henderson [Wed, 21 Jul 2010 21:08:49 +0000 (14:08 -0700)]
arm: more fixes for ARMv6 rules
Signed-off-by: David Schleef <ds@schleef.org>
David Schleef [Wed, 21 Jul 2010 20:53:29 +0000 (13:53 -0700)]
memcpy_speed: make default upper limit lower
If the cache size is not known, max out at 1 MB.
Better for slow systems.
Tim-Philipp Müller [Sat, 26 Jun 2010 11:51:03 +0000 (12:51 +0100)]
.gitignore: ignore more stuff
Tim-Philipp Müller [Sat, 26 Jun 2010 11:46:26 +0000 (12:46 +0100)]
docs: fix version.entities include problems
Copy the generated version.entities file into the xml/ directory,
which is where it's expected. Fixes include warnings when building
docs. There doesn't seem to be a way to achieve this without
modifying the original gtk-doc.make file yet.
David Schleef [Wed, 21 Jul 2010 05:07:11 +0000 (22:07 -0700)]
arm: Another try with ARMv6 rules
David Schleef [Wed, 21 Jul 2010 00:07:41 +0000 (17:07 -0700)]
arm: move more opcodes that use ARMv6 instructions
Noticed by Brad <brad@comstyle.com>.
David Schleef [Tue, 20 Jul 2010 20:59:15 +0000 (13:59 -0700)]
back to unreleased
David Schleef [Tue, 20 Jul 2010 20:58:38 +0000 (13:58 -0700)]
arm: mark some rules as ARM v6 only
David Schleef [Wed, 14 Jul 2010 00:45:03 +0000 (17:45 -0700)]
Release 0.4.6
David Schleef [Wed, 14 Jul 2010 00:43:45 +0000 (17:43 -0700)]
win32: Fix DllMain definition
David Schleef [Tue, 13 Jul 2010 23:10:59 +0000 (16:10 -0700)]
tests: don't run neon tests
David Schleef [Tue, 13 Jul 2010 21:12:50 +0000 (14:12 -0700)]
update release docs
David Schleef [Tue, 13 Jul 2010 20:54:10 +0000 (13:54 -0700)]
don't unlink tmp file if debug flag is used
David Schleef [Sat, 10 Jul 2010 21:17:09 +0000 (14:17 -0700)]
Remove orc-float
David Schleef [Sun, 11 Jul 2010 02:24:27 +0000 (19:24 -0700)]
Add cache information
David Schleef [Sat, 10 Jul 2010 00:20:35 +0000 (17:20 -0700)]
neon: Fix aligned load
David Schleef [Fri, 9 Jul 2010 20:47:49 +0000 (13:47 -0700)]
memcpy_speed: inline orc_memcpy
David Schleef [Fri, 9 Jul 2010 20:45:19 +0000 (13:45 -0700)]
memcpy_speed: flush/populate cache for hot/cold testing
David Schleef [Thu, 8 Jul 2010 23:53:29 +0000 (16:53 -0700)]
neon: Add short-array unaligned speedup
David Schleef [Thu, 8 Jul 2010 02:52:27 +0000 (19:52 -0700)]
neon: Add load/store of 256-bit vectors
David Schleef [Thu, 8 Jul 2010 03:40:59 +0000 (20:40 -0700)]
neon: Only preload for each cache line
David Schleef [Thu, 8 Jul 2010 02:41:02 +0000 (19:41 -0700)]
neon: Add handling of different size regions
David Schleef [Wed, 7 Jul 2010 02:06:37 +0000 (19:06 -0700)]
arm/neon: use subs for loop counter
David Schleef [Tue, 6 Jul 2010 23:48:29 +0000 (16:48 -0700)]
neon: add preload
David Schleef [Tue, 6 Jul 2010 23:35:51 +0000 (16:35 -0700)]
neon: add loop unrolling
David Schleef [Tue, 6 Jul 2010 21:55:50 +0000 (14:55 -0700)]
neon: Fix rules for quad usage
David Schleef [Tue, 6 Jul 2010 19:32:20 +0000 (12:32 -0700)]
memcpy_speed: take unalignment parameter on cmd line
David Schleef [Tue, 6 Jul 2010 21:01:00 +0000 (14:01 -0700)]
neon: Fix store of l vectors
David Schleef [Tue, 6 Jul 2010 20:19:00 +0000 (13:19 -0700)]
neon: Add quad load/store
David Schleef [Tue, 6 Jul 2010 19:39:09 +0000 (12:39 -0700)]
neon: Use faster opcodes for aligned store
David Schleef [Tue, 6 Jul 2010 19:33:28 +0000 (12:33 -0700)]
Add simple constant folding
David Schleef [Tue, 6 Jul 2010 19:31:47 +0000 (12:31 -0700)]
neon: Use unaligned ops instead of mask register
David Schleef [Tue, 6 Jul 2010 19:29:23 +0000 (12:29 -0700)]
Improve compile debugging
David Schleef [Tue, 6 Jul 2010 19:28:49 +0000 (12:28 -0700)]
test: remove adjustment of performance number
David Schleef [Tue, 6 Jul 2010 19:56:47 +0000 (12:56 -0700)]
test: switch neon test back to neon
David Schleef [Fri, 9 Jul 2010 08:05:19 +0000 (01:05 -0700)]
win32: Fix initialization of once mutex
David Schleef [Mon, 5 Jul 2010 22:21:20 +0000 (15:21 -0700)]
arm: Fix register moving
David Schleef [Mon, 5 Jul 2010 21:44:29 +0000 (14:44 -0700)]
arm: fix some compile mismatches
David Schleef [Thu, 1 Jul 2010 16:49:29 +0000 (09:49 -0700)]
arm: Fix a bunch of rules
David Schleef [Thu, 1 Jul 2010 16:41:25 +0000 (09:41 -0700)]
arm: fix compile error
David Schleef [Thu, 1 Jul 2010 02:34:01 +0000 (19:34 -0700)]
arm: mark rules known to be buggy
David Schleef [Thu, 1 Jul 2010 02:33:39 +0000 (19:33 -0700)]
arm: Implement 2d support
David Schleef [Thu, 1 Jul 2010 02:09:00 +0000 (19:09 -0700)]
arm: implement load/store of b, l
David Schleef [Thu, 1 Jul 2010 01:41:00 +0000 (18:41 -0700)]
arm: arm backend code gen fixes
David Schleef [Thu, 1 Jul 2010 00:14:54 +0000 (17:14 -0700)]
neon: check for NEON support on CPU
David Schleef [Wed, 30 Jun 2010 02:43:50 +0000 (19:43 -0700)]
sse: handle NANs and denormals
Set the DAZ and FTZ flags in the MXCSR, to set proper
denormal behavior. Implement NAN handling for maxf and
minf.
David Schleef [Wed, 30 Jun 2010 02:37:11 +0000 (19:37 -0700)]
opcodes: Make flushing denormals the default behavior
Flushing denormals is a better default behavior for SIMD
engines, since they tend handle denormals slowly (SSE,
Altivec) or not at all (NEON). Unfortunately, that
behavior is expensive to emulate on IEEE-compliant FPUs,
since you need to check for denormal before and after
every operation. At this point, the emulator flushes
denormals and C code does not.
David Schleef [Tue, 29 Jun 2010 06:29:41 +0000 (23:29 -0700)]
x86: Fix register popping for x86_64
David Schleef [Tue, 29 Jun 2010 06:22:35 +0000 (23:22 -0700)]
opcodes: Add code for handling denormals
David Schleef [Tue, 29 Jun 2010 05:51:48 +0000 (22:51 -0700)]
opcodes: check for NaN in maxf/minf
David Schleef [Tue, 29 Jun 2010 05:49:13 +0000 (22:49 -0700)]
tests: better float comparison
Allow denormals to be flushed to 0. Check for NaNs.
David Schleef [Tue, 29 Jun 2010 05:29:36 +0000 (22:29 -0700)]
neon: Fix accumulator opcodes
David Schleef [Tue, 29 Jun 2010 02:16:23 +0000 (19:16 -0700)]
neon: implement 2d arrays
David Schleef [Mon, 28 Jun 2010 20:43:31 +0000 (13:43 -0700)]
Fix segfaults if no targets are available
David Schleef [Mon, 28 Jun 2010 20:09:32 +0000 (13:09 -0700)]
Add support for OpenBSD in CPU detection
From Brad <brad@comstyle.com>.
David Schleef [Sat, 26 Jun 2010 21:34:17 +0000 (14:34 -0700)]
tools: add orc-bugreport
Sebastian Dröge [Sat, 26 Jun 2010 07:54:51 +0000 (09:54 +0200)]
orcc: Add --quiet and --benchmark parameters to generated test programs
Sebastian Dröge [Wed, 16 Jun 2010 06:00:12 +0000 (08:00 +0200)]
orcc: Improve test program generation
Output something if a check has passed instead of being completely silent
David Schleef [Sat, 26 Jun 2010 20:53:45 +0000 (13:53 -0700)]
target: add function to return flag names
David Schleef [Thu, 24 Jun 2010 19:52:15 +0000 (12:52 -0700)]
arm: disable unused CPU detection
David Schleef [Tue, 15 Jun 2010 19:21:04 +0000 (12:21 -0700)]
orcc: make the test program quieter
Sebastian Dröge [Tue, 15 Jun 2010 09:40:38 +0000 (11:40 +0200)]
tests: Fix compilation of the ABI test on 64 bit architectures
Casting a pointer to a plain int will cause a compiler error, use long instead.
David Schleef [Tue, 15 Jun 2010 05:57:36 +0000 (22:57 -0700)]
Add handling of ORC_CODE environment variable
A comma delimited string of values that control how the
compiler works. Possible values are "backup", which causes
backup functions to be used instead of compiling, and "debug",
which causes the SSE backend to create frame pointers, which
produces slower code, but allows backtraces in a debugger.
David Schleef [Tue, 15 Jun 2010 01:22:14 +0000 (18:22 -0700)]
tests: scripts to build/run against old versions
David Schleef [Tue, 15 Jun 2010 00:38:45 +0000 (17:38 -0700)]
tests: Fix 2-dest opcodes
David Schleef [Mon, 14 Jun 2010 23:20:41 +0000 (16:20 -0700)]
tests: Add ABI check for code_exec
David Schleef [Mon, 14 Jun 2010 22:57:57 +0000 (15:57 -0700)]
Fix API for 2-dest opcodes
Without this, splitwb and splitlw are effectively useless.
David Schleef [Mon, 14 Jun 2010 22:54:15 +0000 (15:54 -0700)]
Fix ABI issues caused by
5bfde389c78155
Although OrcVariable and OrcProgram are completely private,
orcc generates code that digs deep into OrcProgram for code_exec.
We're requiring that generated code is ABI compatible, so that
means the offset of code_exec in OrcProgram is part of the ABI.
Oops.
David Schleef [Mon, 14 Jun 2010 19:05:12 +0000 (12:05 -0700)]
orcc: Add --compat
This enables checking of parsed orc code for compatibility with
older versions of Orc. Right now, this means that if --compat 0.4.5
is specified, you cannot use float parameters, since that feature
was introduced after 0.4.5.
Sebastian Dröge [Mon, 14 Jun 2010 12:47:04 +0000 (14:47 +0200)]
mmx: Only mark the MMX target as executable if the CPU has MMX support
David Schleef [Mon, 14 Jun 2010 19:11:23 +0000 (12:11 -0700)]
c: Fix code for int parameters
Bug caused by
5bfde389
Stefan Kost [Thu, 10 Jun 2010 19:11:55 +0000 (22:11 +0300)]
logging: remove double newlines from logging
Stefan Kost [Thu, 10 Jun 2010 19:08:34 +0000 (22:08 +0300)]
compiler: output the target name in errors too
David Schleef [Mon, 14 Jun 2010 18:37:29 +0000 (11:37 -0700)]
Add float parameters
David Schleef [Mon, 14 Jun 2010 17:38:41 +0000 (10:38 -0700)]
orcc: make test program quieter
David Schleef [Mon, 14 Jun 2010 18:36:24 +0000 (11:36 -0700)]
sse: Fix leal emission on x86-64
Reported by slomo.
David Schleef [Sun, 13 Jun 2010 21:18:50 +0000 (14:18 -0700)]
mmx,sse: use shuffle macros
David Schleef [Sun, 13 Jun 2010 20:54:09 +0000 (13:54 -0700)]
mmx: port sse backend to mmx again
Main differences between SSE and MMX backends:
- different loop_shift
- mmx emits emms
- handling the accumulator before storing
- different default flags
- mmx only has 8 registers even on x86-64
Sebastian Dröge [Sat, 12 Jun 2010 10:36:35 +0000 (12:36 +0200)]
Add SSE implementation of muluwl
David Schleef [Sun, 13 Jun 2010 19:26:32 +0000 (12:26 -0700)]
clean up memcpy_speed
David Schleef [Sun, 13 Jun 2010 19:26:07 +0000 (12:26 -0700)]
todo: update
David Schleef [Sun, 13 Jun 2010 19:17:07 +0000 (12:17 -0700)]
sse: set target as not executable if no SSE2
David Schleef [Sat, 12 Jun 2010 22:18:50 +0000 (15:18 -0700)]
c: Use 'int' for parameters, not orc_union32
David Schleef [Sat, 12 Jun 2010 22:17:42 +0000 (15:17 -0700)]
sse: use register for loop counter
David Schleef [Sat, 12 Jun 2010 22:15:45 +0000 (15:15 -0700)]
sse: use leal for non-recorded addition
David Schleef [Sat, 12 Jun 2010 05:37:48 +0000 (22:37 -0700)]
revert removal of orc-stdint.h
Turns out this is part of the API. Oops.
David Schleef [Thu, 10 Jun 2010 17:52:20 +0000 (10:52 -0700)]
doc: NEON backend is open source
David Schleef [Thu, 10 Jun 2010 06:03:30 +0000 (23:03 -0700)]
orcc: put typedefs before prototypes
David Schleef [Thu, 10 Jun 2010 02:14:08 +0000 (19:14 -0700)]
more conversion to orc int types
David Schleef [Thu, 10 Jun 2010 01:30:02 +0000 (18:30 -0700)]
orcc: remove unused declaration
David Schleef [Thu, 10 Jun 2010 01:29:34 +0000 (18:29 -0700)]
more conversion to orc int types
David Schleef [Thu, 10 Jun 2010 01:29:10 +0000 (18:29 -0700)]
remove code for reading /proc
David Schleef [Thu, 10 Jun 2010 01:27:16 +0000 (18:27 -0700)]
test: Use rdtsc when available
David Schleef [Wed, 9 Jun 2010 23:19:09 +0000 (16:19 -0700)]
regenerate generated code