platform/upstream/orc.git
13 years agoorcc: Fix code generation of test
David Schleef [Mon, 30 Aug 2010 01:09:20 +0000 (18:09 -0700)]
orcc: Fix code generation of test

13 years agotestsuite: Fix cross compiling of orcc test
David Schleef [Mon, 30 Aug 2010 01:01:58 +0000 (18:01 -0700)]
testsuite: Fix cross compiling of orcc test

13 years agoFix typo in function name
David Schleef [Sat, 28 Aug 2010 06:38:47 +0000 (23:38 -0700)]
Fix typo in function name

13 years agoFix MSVC build errors
David Schleef [Sat, 28 Aug 2010 06:37:54 +0000 (23:37 -0700)]
Fix MSVC build errors

13 years agoc: Fix denormal handling
David Schleef [Sat, 28 Aug 2010 06:36:25 +0000 (23:36 -0700)]
c: Fix denormal handling

Turns out the previous macro was using a gcc extension.  MSVC
didn't like that.

13 years agoneon: Fix shift in loadpl
David Schleef [Fri, 27 Aug 2010 23:33:28 +0000 (16:33 -0700)]
neon: Fix shift in loadpl

13 years agoChange constant values to orc_union64 internally
David Schleef [Fri, 27 Aug 2010 22:26:19 +0000 (15:26 -0700)]
Change constant values to orc_union64 internally

Also update the MMX backend.  This implements much of the
infrastructure for 64-bit constants, but parsing of 64-bit
integer constants is broken (no portable strtoll implementation),
and the backends probably don't load 64-bit constants correctly.

13 years agoImplement parsing of float constants
David Schleef [Fri, 27 Aug 2010 21:04:23 +0000 (14:04 -0700)]
Implement parsing of float constants

13 years agoChange meaning of convfl/convdl to be saturated
David Schleef [Fri, 27 Aug 2010 19:42:44 +0000 (12:42 -0700)]
Change meaning of convfl/convdl to be saturated

Some architectures (powerpc) clamp out-of-range values to the
integer range when converting from float to int.  Others (x86)
maps out-of-range values to 0x80000000.  Since we have to choose
one, saturating seems like the better choice.

13 years agoAdd splitql opcode
David Schleef [Fri, 27 Aug 2010 17:45:57 +0000 (10:45 -0700)]
Add splitql opcode

13 years agoc: Fix code for ldreslinl
David Schleef [Fri, 27 Aug 2010 17:45:09 +0000 (10:45 -0700)]
c: Fix code for ldreslinl

13 years agoc: Fix loading of float params
David Schleef [Fri, 27 Aug 2010 00:58:42 +0000 (17:58 -0700)]
c: Fix loading of float params

Float params are loaded from orc_union32 pointers into orc_union32
temporaries, so it's important to not to a float->int conversion
in there.

13 years agoneon: Add a few double rules
David Schleef [Thu, 26 Aug 2010 23:14:42 +0000 (16:14 -0700)]
neon: Add a few double rules

13 years agoAdd int64 and double parameters
David Schleef [Thu, 26 Aug 2010 22:02:53 +0000 (15:02 -0700)]
Add int64 and double parameters

13 years agoUse ULL as qualifier for 64 bit integer constants
Sebastian Dröge [Thu, 26 Aug 2010 19:30:24 +0000 (21:30 +0200)]
Use ULL as qualifier for 64 bit integer constants

13 years agoAdd copyq opcode
Sebastian Dröge [Thu, 26 Aug 2010 16:26:37 +0000 (18:26 +0200)]
Add copyq opcode

13 years agoAdd SSE2 implementations of all double opcodes
Sebastian Dröge [Thu, 26 Aug 2010 16:18:42 +0000 (18:18 +0200)]
Add SSE2 implementations of all double opcodes

13 years agoAdd support for comparing double arrays
Sebastian Dröge [Thu, 26 Aug 2010 16:18:26 +0000 (18:18 +0200)]
Add support for comparing double arrays

13 years agoAdd 64 bit floating point opcodes
Sebastian Dröge [Thu, 26 Aug 2010 15:28:10 +0000 (17:28 +0200)]
Add 64 bit floating point opcodes

13 years agoAdd swapq opcode
Sebastian Dröge [Thu, 26 Aug 2010 14:40:22 +0000 (16:40 +0200)]
Add swapq opcode

13 years agocompiler: allocate correct size for code memory
David Schleef [Thu, 26 Aug 2010 01:37:30 +0000 (18:37 -0700)]
compiler: allocate correct size for code memory

13 years agoFix testing of float params
David Schleef [Wed, 25 Aug 2010 23:00:58 +0000 (16:00 -0700)]
Fix testing of float params

13 years agoc: Handle denormals and nan using bit ops
David Schleef [Wed, 25 Aug 2010 21:51:18 +0000 (14:51 -0700)]
c: Handle denormals and nan using bit ops

13 years agotestsuite: use correct return type
Stefan Kost [Wed, 25 Aug 2010 17:55:59 +0000 (20:55 +0300)]
testsuite: use correct return type

gcc was complaining about the comparision due to wrong type.

13 years agoorcc: remove (fake) dependency on liborc-test
David Schleef [Wed, 25 Aug 2010 10:29:25 +0000 (03:29 -0700)]
orcc: remove (fake) dependency on liborc-test

13 years agoCheck for posix_memalign()
David Schleef [Wed, 25 Aug 2010 10:28:56 +0000 (03:28 -0700)]
Check for posix_memalign()

13 years agoFix cross compiling
David Schleef [Wed, 25 Aug 2010 10:28:16 +0000 (03:28 -0700)]
Fix cross compiling

13 years agotest: Add denormal array pattern
David Schleef [Wed, 25 Aug 2010 10:26:58 +0000 (03:26 -0700)]
test: Add denormal array pattern

13 years agoshow_parse: Allocate array (fix segfault)
David Schleef [Wed, 25 Aug 2010 10:26:20 +0000 (03:26 -0700)]
show_parse: Allocate array (fix segfault)

13 years agoaltivec: Implement lots more rules
David Schleef [Wed, 25 Aug 2010 10:25:14 +0000 (03:25 -0700)]
altivec: Implement lots more rules

13 years agoUse OrcCode structure to handle all executable code
David Schleef [Tue, 24 Aug 2010 20:22:24 +0000 (13:22 -0700)]
Use OrcCode structure to handle all executable code

13 years agoCode memory allocation
David Schleef [Mon, 23 Aug 2010 21:42:29 +0000 (14:42 -0700)]
Code memory allocation

13 years agoAdd OrcCodeRegion
David Schleef [Mon, 23 Aug 2010 21:17:25 +0000 (14:17 -0700)]
Add OrcCodeRegion

13 years agotest: Add special patterns (for floats)
David Schleef [Sun, 22 Aug 2010 23:25:22 +0000 (16:25 -0700)]
test: Add special patterns (for floats)

13 years agoshow_parse: Add -n option
David Schleef [Sun, 22 Aug 2010 23:24:49 +0000 (16:24 -0700)]
show_parse: Add -n option

13 years agosse: Fix some compilation issues on x86-64
David Schleef [Sun, 22 Aug 2010 00:10:32 +0000 (17:10 -0700)]
sse: Fix some compilation issues on x86-64

13 years agosse: add better rules for mulhsl/mulhul
Andrea Canciani [Sat, 21 Aug 2010 21:05:18 +0000 (14:05 -0700)]
sse: add better rules for mulhsl/mulhul

13 years agosse: quit early if error is detected
David Schleef [Sat, 21 Aug 2010 20:46:20 +0000 (13:46 -0700)]
sse: quit early if error is detected

13 years agoc: minor hack for lots of temp vars
David Schleef [Sat, 21 Aug 2010 20:45:52 +0000 (13:45 -0700)]
c: minor hack for lots of temp vars

13 years agotests: Add show_parse
David Schleef [Sat, 21 Aug 2010 20:45:18 +0000 (13:45 -0700)]
tests: Add show_parse

13 years agoAdd ORC_VAR_T16
David Schleef [Fri, 20 Aug 2010 23:15:04 +0000 (16:15 -0700)]
Add ORC_VAR_T16

13 years agocompiler: If compilation fails, go back to backup function
David Schleef [Fri, 20 Aug 2010 23:14:47 +0000 (16:14 -0700)]
compiler: If compilation fails, go back to backup function

13 years agoorcc: Use ORC_RESTRICT for executor structure
David Schleef [Fri, 20 Aug 2010 19:48:27 +0000 (12:48 -0700)]
orcc: Use ORC_RESTRICT for executor structure

13 years agoautogen.sh: Enable --enable-gtk-doc for ds
David Schleef [Fri, 20 Aug 2010 19:48:04 +0000 (12:48 -0700)]
autogen.sh: Enable --enable-gtk-doc for ds

13 years agoFix distcheck for new examples
David Schleef [Fri, 20 Aug 2010 19:47:39 +0000 (12:47 -0700)]
Fix distcheck for new examples

13 years agoUpdate documentation, add tutorial
David Schleef [Fri, 20 Aug 2010 19:15:14 +0000 (12:15 -0700)]
Update documentation, add tutorial

13 years agoc: Add definition of ORC_RESTRICT
David Schleef [Thu, 19 Aug 2010 20:32:10 +0000 (13:32 -0700)]
c: Add definition of ORC_RESTRICT

Theoretically, this should allow gcc to generate better code.

13 years agoAdd perf testing of emulated code
David Schleef [Thu, 19 Aug 2010 20:31:40 +0000 (13:31 -0700)]
Add perf testing of emulated code

13 years agoback to unreleased
David Schleef [Thu, 19 Aug 2010 19:53:17 +0000 (12:53 -0700)]
back to unreleased

13 years agoFix printing of performance data in tests
David Schleef [Thu, 19 Aug 2010 19:42:02 +0000 (12:42 -0700)]
Fix printing of performance data in tests

13 years agoRelease 0.4.7 orc-0.4.7
David Schleef [Thu, 19 Aug 2010 06:54:31 +0000 (23:54 -0700)]
Release 0.4.7

13 years agotest: Improve opcode test program generation
David Schleef [Thu, 19 Aug 2010 01:24:10 +0000 (18:24 -0700)]
test: Improve opcode test program generation

13 years agoneon: Fix div255w rule
David Schleef [Thu, 19 Aug 2010 01:09:58 +0000 (18:09 -0700)]
neon: Fix div255w rule

13 years agommx: update from sse
David Schleef [Wed, 18 Aug 2010 21:23:09 +0000 (14:23 -0700)]
mmx: update from sse

13 years agosse: use pinsrw to load 2-byte values
David Schleef [Wed, 18 Aug 2010 02:22:55 +0000 (19:22 -0700)]
sse: use pinsrw to load 2-byte values

13 years agotest: Add alignment and misalignment to arrays
David Schleef [Wed, 18 Aug 2010 01:34:45 +0000 (18:34 -0700)]
test: Add alignment and misalignment to arrays

This causes most of the performance tests to slow down significantly,
but is a more realistic measurement of actual performance.

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