platform/upstream/orc.git
13 years agosse,x86: Add some new instruction emission code
David Schleef [Wed, 18 Aug 2010 01:02:40 +0000 (18:02 -0700)]
sse,x86: Add some new instruction emission code

13 years agosse: minor optimization for constant_m=1
David Schleef [Wed, 18 Aug 2010 01:01:54 +0000 (18:01 -0700)]
sse: minor optimization for constant_m=1

13 years agosse: reset more of the compiler after a test loop
David Schleef [Wed, 18 Aug 2010 01:01:11 +0000 (18:01 -0700)]
sse: reset more of the compiler after a test loop

13 years agosse: better choosing of alignment var
David Schleef [Wed, 18 Aug 2010 00:55:58 +0000 (17:55 -0700)]
sse: better choosing of alignment var

This causes a bunch of test programs to increase in speed by 10-20%,
specifically those that have larger source sizes than dest sizes.
The one notable exception is orc_interleave_s16, which decreases in
speed by 50%, even though there is no apparent change in code.  WTF.

13 years agoconfigure: reminder to bump libversion
David Schleef [Wed, 18 Aug 2010 00:55:03 +0000 (17:55 -0700)]
configure: reminder to bump libversion

13 years agoopcodes: fix emulation of ldres* opcodes
David Schleef [Sun, 15 Aug 2010 01:12:39 +0000 (18:12 -0700)]
opcodes: fix emulation of ldres* opcodes

13 years agoorcc: Fix code generation
David Schleef [Sun, 15 Aug 2010 01:06:34 +0000 (18:06 -0700)]
orcc: Fix code generation

Problems with dspp opcodes.  Fix a gcc warning about large numbers
wrapping around to negative on 32-bit.

13 years agosse: remove unused src->dest chaining checks
David Schleef [Sun, 15 Aug 2010 01:05:51 +0000 (18:05 -0700)]
sse: remove unused src->dest chaining checks

13 years agosse: don't unroll larger programs
David Schleef [Sun, 15 Aug 2010 00:58:16 +0000 (17:58 -0700)]
sse: don't unroll larger programs

13 years agotests: Add code for ldres* opcodes
David Schleef [Fri, 13 Aug 2010 18:53:33 +0000 (11:53 -0700)]
tests: Add code for ldres* opcodes

13 years agoAdd ldresnear[bl] and ldreslin[bl] opcodes
David Schleef [Fri, 13 Aug 2010 18:52:35 +0000 (11:52 -0700)]
Add ldresnear[bl] and ldreslin[bl] opcodes

13 years agoFixes to handle opcodes with 3 sources
David Schleef [Fri, 13 Aug 2010 18:50:04 +0000 (11:50 -0700)]
Fixes to handle opcodes with 3 sources

13 years agoRename splatw0q to splatw3q
David Schleef [Fri, 13 Aug 2010 11:36:24 +0000 (04:36 -0700)]
Rename splatw0q to splatw3q

13 years agotest: Remove #undef so it can be overridden in CFLAGS
David Schleef [Fri, 13 Aug 2010 02:27:28 +0000 (19:27 -0700)]
test: Remove #undef so it can be overridden in CFLAGS

13 years agotests: Fix code to not trip new sanity check
David Schleef [Fri, 13 Aug 2010 02:20:56 +0000 (19:20 -0700)]
tests: Fix code to not trip new sanity check

13 years agotest: Decrease n for performance testing
David Schleef [Fri, 13 Aug 2010 02:20:24 +0000 (19:20 -0700)]
test: Decrease n for performance testing

13 years agoneon: new rules, tuning of code generation
David Schleef [Fri, 13 Aug 2010 02:19:44 +0000 (19:19 -0700)]
neon: new rules, tuning of code generation

13 years agoarm: Better checking, add data and nops
David Schleef [Fri, 13 Aug 2010 02:18:19 +0000 (19:18 -0700)]
arm: Better checking, add data and nops

13 years agosse: be more careful about keeping stack aligned
David Schleef [Thu, 12 Aug 2010 01:22:43 +0000 (18:22 -0700)]
sse: be more careful about keeping stack aligned

13 years agoUpdate generated code due to orcc changes
David Schleef [Thu, 12 Aug 2010 01:04:02 +0000 (18:04 -0700)]
Update generated code due to orcc changes

13 years agoorcc: Don't use ORC_INLINE for inline generation
David Schleef [Thu, 12 Aug 2010 01:03:14 +0000 (18:03 -0700)]
orcc: Don't use ORC_INLINE for inline generation

13 years agoparser: Add .init directive
David Schleef [Thu, 12 Aug 2010 00:46:30 +0000 (17:46 -0700)]
parser: Add .init directive

13 years agoorcc: Add --inline and --init-function
David Schleef [Thu, 12 Aug 2010 00:31:23 +0000 (17:31 -0700)]
orcc: Add --inline and --init-function

13 years agoc: Fix emulation opcode generation due to previous changes
David Schleef [Wed, 11 Aug 2010 22:22:15 +0000 (15:22 -0700)]
c: Fix emulation opcode generation due to previous changes

Also update generated code.

13 years agoc: implement x2/x4 prefix
David Schleef [Wed, 11 Aug 2010 22:04:51 +0000 (15:04 -0700)]
c: implement x2/x4 prefix

13 years agoorcc: Handle x2/x4 prefix for tests
David Schleef [Wed, 11 Aug 2010 22:04:00 +0000 (15:04 -0700)]
orcc: Handle x2/x4 prefix for tests

13 years agoautogen: remove --enable-gtk-doc
David Schleef [Wed, 11 Aug 2010 20:44:10 +0000 (13:44 -0700)]
autogen: remove --enable-gtk-doc

13 years agoconfigure: fix AC_HELP_STRING
David Schleef [Wed, 11 Aug 2010 20:43:51 +0000 (13:43 -0700)]
configure: fix AC_HELP_STRING

13 years agotests: Add more programs to test.orc
David Schleef [Wed, 11 Aug 2010 10:02:50 +0000 (03:02 -0700)]
tests: Add more programs to test.orc

13 years agoorcc: create inline functions
David Schleef [Wed, 11 Aug 2010 10:01:38 +0000 (03:01 -0700)]
orcc: create inline functions

This is turned on by default, and doesn't generate backup functions,
so it might cause problems.

13 years agoUse instruction size for loadp, not var size
David Schleef [Wed, 11 Aug 2010 10:00:54 +0000 (03:00 -0700)]
Use instruction size for loadp, not var size

13 years agoUse ORC_N_COMPILER_VARIABLES where appropriate
David Schleef [Wed, 11 Aug 2010 08:37:40 +0000 (01:37 -0700)]
Use ORC_N_COMPILER_VARIABLES where appropriate

13 years agoc: Fix generation of loadoff, loadup code
David Schleef [Wed, 11 Aug 2010 08:36:45 +0000 (01:36 -0700)]
c: Fix generation of loadoff, loadup code

13 years agoFix warnings
David Schleef [Wed, 11 Aug 2010 08:35:38 +0000 (01:35 -0700)]
Fix warnings

13 years agoorcc: Fix warning in generated code
David Schleef [Wed, 11 Aug 2010 07:26:19 +0000 (00:26 -0700)]
orcc: Fix warning in generated code

13 years agoFix segfault in test programs
David Schleef [Wed, 11 Aug 2010 07:24:57 +0000 (00:24 -0700)]
Fix segfault in test programs

Emulation requires that the program be compiled.

13 years agosse: use fewer temporary registers
David Schleef [Wed, 11 Aug 2010 06:31:15 +0000 (23:31 -0700)]
sse: use fewer temporary registers

13 years agoMake sure there are enough registers for temps
David Schleef [Wed, 11 Aug 2010 06:30:19 +0000 (23:30 -0700)]
Make sure there are enough registers for temps

13 years agoLook for rules in reverse order
David Schleef [Wed, 11 Aug 2010 06:28:48 +0000 (23:28 -0700)]
Look for rules in reverse order

That way, we'll find the SSSE3 rules before SSE2.  Duh.

13 years agoFix sanity check for loadp
David Schleef [Wed, 11 Aug 2010 06:17:17 +0000 (23:17 -0700)]
Fix sanity check for loadp

13 years agoBetter constant loading
David Schleef [Wed, 11 Aug 2010 05:16:50 +0000 (22:16 -0700)]
Better constant loading

13 years agocompiler: additional sanity check for loadp
David Schleef [Wed, 11 Aug 2010 05:15:33 +0000 (22:15 -0700)]
compiler: additional sanity check for loadp

13 years agosse: switch to orc_compiler_get_temp_reg()
David Schleef [Wed, 11 Aug 2010 03:42:36 +0000 (20:42 -0700)]
sse: switch to orc_compiler_get_temp_reg()

13 years agoDynamically allocate temporary registers
David Schleef [Wed, 11 Aug 2010 02:39:41 +0000 (19:39 -0700)]
Dynamically allocate temporary registers

13 years agosse: improve constant loading
David Schleef [Wed, 11 Aug 2010 02:38:33 +0000 (19:38 -0700)]
sse: improve constant loading

13 years agosse: fix divluw implementation
David Schleef [Wed, 11 Aug 2010 00:06:57 +0000 (17:06 -0700)]
sse: fix divluw implementation

Also slightly faster.

13 years agoAdd orc_program_append_2() for instruction flags
David Schleef [Mon, 9 Aug 2010 23:56:13 +0000 (16:56 -0700)]
Add orc_program_append_2() for instruction flags

13 years agoAdd divluw opcode
David Schleef [Mon, 9 Aug 2010 23:47:38 +0000 (16:47 -0700)]
Add divluw opcode

13 years agoFix splatw0q opcode to be useful for pixman
David Schleef [Mon, 9 Aug 2010 23:45:39 +0000 (16:45 -0700)]
Fix splatw0q opcode to be useful for pixman

13 years agotest: Add x4 prefix program
David Schleef [Mon, 9 Aug 2010 23:39:57 +0000 (16:39 -0700)]
test: Add x4 prefix program

13 years agoRefactor instruction flags
David Schleef [Mon, 9 Aug 2010 23:31:58 +0000 (16:31 -0700)]
Refactor instruction flags

13 years agosse: Fix recently broken convsuslw rule
David Schleef [Sun, 8 Aug 2010 19:56:46 +0000 (12:56 -0700)]
sse: Fix recently broken convsuslw rule

13 years agoAdd low-level opcodes for compositing
David Schleef [Sat, 7 Aug 2010 01:43:41 +0000 (18:43 -0700)]
Add low-level opcodes for compositing

13 years agoAdd some 64-bit opcodes, and SSE rules
David Schleef [Sat, 7 Aug 2010 00:50:39 +0000 (17:50 -0700)]
Add some 64-bit opcodes, and SSE rules

13 years agoremove old style of opcode emulation
David Schleef [Fri, 6 Aug 2010 20:42:49 +0000 (13:42 -0700)]
remove old style of opcode emulation

13 years agoGenerate header file for opcode emulation
David Schleef [Fri, 6 Aug 2010 20:33:32 +0000 (13:33 -0700)]
Generate header file for opcode emulation

13 years agosse: better implementation of addssl
David Schleef [Fri, 6 Aug 2010 20:03:51 +0000 (13:03 -0700)]
sse: better implementation of addssl

13 years agosse: implement more rules
David Schleef [Fri, 6 Aug 2010 18:46:57 +0000 (11:46 -0700)]
sse: implement more rules

13 years agoc: Fix loadupib code
David Schleef [Fri, 6 Aug 2010 02:52:52 +0000 (19:52 -0700)]
c: Fix loadupib code

13 years agosse: Add more slow rules
David Schleef [Fri, 6 Aug 2010 01:08:25 +0000 (18:08 -0700)]
sse: Add more slow rules

13 years agotest.orc: Add a function with loadupdb
David Schleef [Thu, 5 Aug 2010 21:22:40 +0000 (14:22 -0700)]
test.orc: Add a function with loadupdb

13 years agotests: don't run compare programs
David Schleef [Thu, 5 Aug 2010 21:22:15 +0000 (14:22 -0700)]
tests: don't run compare programs

For MMX/SSE only.

13 years agosse: implement loadoff, loadup opcodes
David Schleef [Thu, 5 Aug 2010 21:21:34 +0000 (14:21 -0700)]
sse: implement loadoff, loadup opcodes

13 years agosse: implement mulhul
David Schleef [Thu, 5 Aug 2010 21:20:58 +0000 (14:20 -0700)]
sse: implement mulhul

13 years agoAdd loadoff[bwl], loadup[id]b opcodes
David Schleef [Thu, 5 Aug 2010 21:18:42 +0000 (14:18 -0700)]
Add loadoff[bwl], loadup[id]b opcodes

13 years agoemulation: Add offset to emulation functions
David Schleef [Thu, 5 Aug 2010 21:16:12 +0000 (14:16 -0700)]
emulation: Add offset to emulation functions

13 years agoAdd OrcCode structure
David Schleef [Thu, 5 Aug 2010 21:10:19 +0000 (14:10 -0700)]
Add OrcCode structure

13 years agoUpdate gitignore
Jan Schmidt [Sat, 31 Jul 2010 07:04:15 +0000 (17:04 +1000)]
Update gitignore

13 years agoUse AM_PROG_CC_C_O to support per-target compilation flags.
Jan Schmidt [Sat, 31 Jul 2010 06:51:21 +0000 (16:51 +1000)]
Use AM_PROG_CC_C_O to support per-target compilation flags.

Fixes an automake warning.

13 years agoFix dependencies of the generate-emulation binary.
Jan Schmidt [Sat, 31 Jul 2010 06:49:34 +0000 (16:49 +1000)]
Fix dependencies of the generate-emulation binary.

Makes parallel builds succeed.

13 years agoFix distcheck
Jan Schmidt [Sat, 31 Jul 2010 06:46:28 +0000 (16:46 +1000)]
Fix distcheck

Add orcemulateopcodes.h to the dist.
Fix gtk-doc.make copying version.entities to the srcdir.

13 years agoc: cleanup pointer updating
David Schleef [Tue, 3 Aug 2010 07:56:33 +0000 (00:56 -0700)]
c: cleanup pointer updating

13 years agosse: Fix accsadubl rule
David Schleef [Tue, 3 Aug 2010 07:45:25 +0000 (00:45 -0700)]
sse: Fix accsadubl rule

13 years agotest: Add disabled code for Cortex-A8 benchmarking
David Schleef [Tue, 3 Aug 2010 07:44:47 +0000 (00:44 -0700)]
test: Add disabled code for Cortex-A8 benchmarking

13 years agoc: convert to load/store opcodes
David Schleef [Tue, 3 Aug 2010 07:42:02 +0000 (00:42 -0700)]
c: convert to load/store opcodes

13 years agoaltivec: implement load/store opcodes
David Schleef [Tue, 3 Aug 2010 02:30:52 +0000 (19:30 -0700)]
altivec: implement load/store opcodes

13 years agoarm: Add runtime detection of EDSP
David Schleef [Tue, 3 Aug 2010 01:00:10 +0000 (18:00 -0700)]
arm: Add runtime detection of EDSP

13 years agoarm: Add load/store opcodes
David Schleef [Tue, 3 Aug 2010 00:59:54 +0000 (17:59 -0700)]
arm: Add load/store opcodes

13 years agoneon: improve select1wb/lw rules
David Schleef [Tue, 3 Aug 2010 00:04:58 +0000 (17:04 -0700)]
neon: improve select1wb/lw rules

13 years agoneon: Add more rules
David Schleef [Mon, 2 Aug 2010 23:09:46 +0000 (16:09 -0700)]
neon: Add more rules

13 years agoFix mulhul opcode and update generated code
David Schleef [Mon, 2 Aug 2010 23:09:02 +0000 (16:09 -0700)]
Fix mulhul opcode and update generated code

13 years agoneon: Add splitwb/splitlw
David Schleef [Mon, 2 Aug 2010 22:23:47 +0000 (15:23 -0700)]
neon: Add splitwb/splitlw

13 years agoneon: add load/store opcodes
David Schleef [Mon, 2 Aug 2010 21:59:15 +0000 (14:59 -0700)]
neon: add load/store opcodes

13 years agosse: Fix pmulld emission
David Schleef [Mon, 2 Aug 2010 19:31:47 +0000 (12:31 -0700)]
sse: Fix pmulld emission

13 years agosse: Fix mxcsr save/restore on x86-64
David Schleef [Mon, 2 Aug 2010 19:31:19 +0000 (12:31 -0700)]
sse: Fix mxcsr save/restore on x86-64

13 years agocompiler: increase number of temp variables
David Schleef [Mon, 2 Aug 2010 19:30:58 +0000 (12:30 -0700)]
compiler: increase number of temp variables

13 years agoconfigure: Add dragonflybsd to mmap code alloc
David Schleef [Mon, 2 Aug 2010 19:22:57 +0000 (12:22 -0700)]
configure: Add dragonflybsd to mmap code alloc

14 years agommx: Fix problems in recent commit
David Schleef [Mon, 2 Aug 2010 01:34:41 +0000 (18:34 -0700)]
mmx: Fix problems in recent commit

14 years agoAdd performance comparison tests
David Schleef [Mon, 2 Aug 2010 01:33:27 +0000 (18:33 -0700)]
Add performance comparison tests

14 years agotest: Fix perf_opcodes_sys for acc opcodes
David Schleef [Mon, 2 Aug 2010 01:02:48 +0000 (18:02 -0700)]
test: Fix perf_opcodes_sys for acc opcodes

14 years agommx: update from sse
David Schleef [Mon, 2 Aug 2010 00:36:30 +0000 (17:36 -0700)]
mmx: update from sse

14 years agoChanges to allow generation of mmx code from sse
David Schleef [Mon, 2 Aug 2010 00:35:48 +0000 (17:35 -0700)]
Changes to allow generation of mmx code from sse

14 years agoBetter handling of invariants
David Schleef [Sun, 1 Aug 2010 22:41:36 +0000 (15:41 -0700)]
Better handling of invariants

14 years agocompiler: add flag for allowing gp regs on stack
David Schleef [Sun, 1 Aug 2010 22:22:26 +0000 (15:22 -0700)]
compiler: add flag for allowing gp regs on stack

14 years agocompiler: don't load constants for scalar opcodes
David Schleef [Fri, 30 Jul 2010 23:19:08 +0000 (16:19 -0700)]
compiler: don't load constants for scalar opcodes

14 years agotests: handle scalar opcodes in perf test
David Schleef [Fri, 30 Jul 2010 23:17:01 +0000 (16:17 -0700)]
tests: handle scalar opcodes in perf test

14 years agosse: Add more fallback rules
David Schleef [Fri, 30 Jul 2010 23:16:31 +0000 (16:16 -0700)]
sse: Add more fallback rules

14 years agoDon't allocate registers for const and param
David Schleef [Fri, 30 Jul 2010 01:34:58 +0000 (18:34 -0700)]
Don't allocate registers for const and param

14 years agosse: implement faster permute rules
David Schleef [Fri, 30 Jul 2010 01:34:03 +0000 (18:34 -0700)]
sse: implement faster permute rules

14 years agotests: Add more test orc code
David Schleef [Fri, 30 Jul 2010 00:13:02 +0000 (17:13 -0700)]
tests: Add more test orc code