Tim-Philipp Müller [Mon, 30 Dec 2013 13:32:14 +0000 (13:32 +0000)]
testsuite: fix file descriptor leak in benchmorc
Coverity CID 1147543
Olivier Crête [Mon, 14 Oct 2013 19:25:14 +0000 (15:25 -0400)]
Make it ANSI-C
Use /* */ instead of //
Define _GNU_SOURCE in the ORC_CFLAGS
Edward Hervey [Fri, 20 Sep 2013 09:52:21 +0000 (11:52 +0200)]
autogen.sh: Allow calling from out of tree
This is similar to the fix that was done for gstreamer
https://bugzilla.gnome.org/show_bug.cgi?id=667664
Edward Hervey [Fri, 20 Sep 2013 10:04:25 +0000 (12:04 +0200)]
configure: version back to unreleased
David Schleef [Sat, 24 Aug 2013 17:23:53 +0000 (10:23 -0700)]
Release 0.4.18
Tim-Philipp Müller [Mon, 19 Aug 2013 17:12:21 +0000 (18:12 +0100)]
orcbytecode: Fix parsing of 32 bit values from bytecode as well
The shift by 24 bits has to be casted as well, otherwise we
shift into the sign bit which causes undefined behaviour.
See https://bugzilla.gnome.org/show_bug.cgi?id=698520
Sebastian Dröge [Mon, 19 Aug 2013 15:02:24 +0000 (17:02 +0200)]
orcbytecode: Fix parsing of 64 bit values from bytecode
The shift by 24 bits has to be casted already, otherwise we shift
into the sign bit which causes undefined behaviour.
Thanks to Edward Hervey for debugging this.
https://bugzilla.gnome.org/show_bug.cgi?id=698520
Stefan Sauer [Thu, 6 Jun 2013 07:03:48 +0000 (09:03 +0200)]
docs: add more opcode descriptions
Stefan Sauer [Thu, 6 Jun 2013 06:06:05 +0000 (08:06 +0200)]
docs: hook up generate_table tools
Add a makefile-target in docs to update the tables (for a release). Emit a
comment at the top of the generated files which tool produces them so that
people don't edit them manually.
Stefan Sauer [Wed, 5 Jun 2013 19:50:26 +0000 (21:50 +0200)]
accumulator: use the local variable 'var'
The code already had the local var, but barely used it.
Stefan Sauer [Wed, 5 Jun 2013 18:11:43 +0000 (20:11 +0200)]
tests: use the ORC_STATIC_OPCODE_FLOAT flag to simplify the tests
Stefan Sauer [Mon, 3 Jun 2013 19:53:13 +0000 (21:53 +0200)]
orcparse: fix copy and paste of error message
Stefan Sauer [Mon, 3 Jun 2013 16:20:10 +0000 (18:20 +0200)]
docs: add docs for the program directives
Stefan Sauer [Mon, 3 Jun 2013 05:49:23 +0000 (07:49 +0200)]
orcprogram-c: fix indent for 2 opcodes
Stefan Sauer [Wed, 29 May 2013 08:30:16 +0000 (10:30 +0200)]
generate-*: cosmetic changes
Print the file name if we use the default. Consider the header_flag for the
default name. Correct the help() desc for the --header flag (it takes no arg).
Stefan Sauer [Tue, 28 May 2013 21:03:17 +0000 (23:03 +0200)]
generate-*: add missing flag to help()
Stefan Sauer [Tue, 28 May 2013 21:11:46 +0000 (23:11 +0200)]
generate-bytecode: add ORC_BC_INSTRUCTION_FLAGS to generator
The checked in orcbytecodes.h already uses the flag.
Sebastian Dröge [Mon, 27 May 2013 11:52:40 +0000 (13:52 +0200)]
orc-test: Fix typo in #ifdef
Andoni Morales Alastruey [Thu, 25 Apr 2013 15:09:22 +0000 (17:09 +0200)]
orc: fix cache flush for iOS
Apple does not provide an implementation of __clear_cache in ARM
but sys_icache_invalidate can be used instead
review-by: Sebastian Dröge
David Schleef [Mon, 1 Apr 2013 18:31:59 +0000 (11:31 -0700)]
configure: version back to unreleased
Guillaume Emont [Fri, 29 Mar 2013 16:34:33 +0000 (11:34 -0500)]
mips: deactivate loadupdb implementation as it is broken
Josep Torra [Sat, 30 Mar 2013 11:57:10 +0000 (12:57 +0100)]
pkgconfig: in -uninstalled ensure to link with the proper library
Fixes build of GStreamer in gst-uninstalled on OSX with older liborc
installed from macports at '/opt/local'.
Josep Torra [Sat, 30 Mar 2013 11:52:33 +0000 (12:52 +0100)]
configure: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
AM_CONFIG_HEADER has been removed in the just-released automake 1.13:
https://lists.gnu.org/archive/html/automake/2012-12/msg00038.html
David Schleef [Sun, 10 Mar 2013 19:16:49 +0000 (12:16 -0700)]
Merge branch '0.4.17'
Sebastian Dröge [Wed, 20 Feb 2013 15:04:01 +0000 (16:04 +0100)]
Fix build on Android
Android doesn't have a libpthread and includes all relevant functions
in libc.
Josep Torra [Wed, 20 Feb 2013 14:32:49 +0000 (15:32 +0100)]
orcc: workaround a bug in the gcc 4.2 provided by XCode 3.2.6
When building orc in OSX Snow Leopard with '-O2 -arch i386 -m32' a bug in
the compiler is triggered and wrong assembly is generated with
the following messages:
'non-relocatable subtraction expression, "LC0" minus "L00000000008$pb"'
'symbol: "L00000000008$pb" can't be undefined in a subtraction expression'
'undefined local symbol L00000000008$pb'
The issue is triggered when the compiler tries to optimize for a constant
value in the code but it does a bad job. Declaring 'volatile' the variable
that holds the constant prevents this optimization to be performed and the
orc C generated code can be properly built.
David Schleef [Wed, 20 Feb 2013 06:21:00 +0000 (22:21 -0800)]
Release 0.4.17
David Schleef [Wed, 20 Feb 2013 04:02:03 +0000 (20:02 -0800)]
test: Fix recent commit
Separate allocated data and aligned data.
David Schleef [Wed, 20 Feb 2013 03:41:36 +0000 (19:41 -0800)]
neon: move orc_arm_loadw out of arm backend
David Schleef [Wed, 20 Feb 2013 01:40:14 +0000 (17:40 -0800)]
ARM backend is disabled until it has decent coverage
David Schleef [Wed, 20 Feb 2013 01:15:53 +0000 (17:15 -0800)]
gitignore: change 0.4 to *
David Schleef [Wed, 20 Feb 2013 01:04:21 +0000 (17:04 -0800)]
test: Use the aligned pointer, not something else
Tim-Phillip Müller [Tue, 19 Feb 2013 20:23:16 +0000 (12:23 -0800)]
orcc: add --internal option to mark symbols with internal visibility
Fixes: #52184
Sebastian Dröge [Thu, 10 Jan 2013 17:13:32 +0000 (18:13 +0100)]
orccompiler: Allow fallback to backup/emulation if the target specific register allocation fails
The OrcCode of the program wouldn't be filled with all required fields
if the register allocation happens to early.
Guillaume Emont [Thu, 27 Dec 2012 15:01:16 +0000 (16:01 +0100)]
mips: do loads as early as possible
Guillaume Emont [Fri, 21 Dec 2012 13:06:15 +0000 (14:06 +0100)]
mips: loadb: with shift 1, use lh if aligned
Guillaume Emont [Fri, 21 Dec 2012 13:05:37 +0000 (14:05 +0100)]
mips: copyb: only do something if source and dest are different
Guillaume Emont [Fri, 21 Dec 2012 13:04:56 +0000 (14:04 +0100)]
mips: fixed prefetching instruction calculation, but deactivated prefetching for now (no measurable performance improvements)
Guillaume Emont [Wed, 19 Dec 2012 13:39:05 +0000 (14:39 +0100)]
mips: added cache prefetching hints
Guillaume Emont [Tue, 18 Dec 2012 19:47:37 +0000 (20:47 +0100)]
mips: introduced loop unrolling
For now, this only happens in the main loop, and is decided by the
ORC_UNROLL_SHIFT environment variable.
Guillaume Emont [Tue, 18 Dec 2012 19:21:09 +0000 (20:21 +0100)]
add forgotten headers to include in make dist
Guillaume Emont [Sat, 15 Dec 2012 18:15:43 +0000 (19:15 +0100)]
mips: implemented select0wb, select1wb, select0lw, select1lw, splatbw, splitlw, splitwb, shruw and swapw
Guillaume Emont [Sat, 15 Dec 2012 18:14:56 +0000 (19:14 +0100)]
mips: added emit functions for shrl.ph and precrq.qb.ph
Guillaume Emont [Sat, 15 Dec 2012 17:27:40 +0000 (18:27 +0100)]
mips: added convwb
Guillaume Emont [Sat, 15 Dec 2012 16:48:43 +0000 (17:48 +0100)]
mips: loadupib, loadupdb: error (not implemented) if source argument is not source var
Only source vars can get a ptr_offset, and we need one in these operations as
they are implemented now.
Guillaume Emont [Sat, 15 Dec 2012 16:47:46 +0000 (17:47 +0100)]
mips: shrs, shra.ph: error if shift amount is not a const
Guillaume Emont [Thu, 13 Dec 2012 17:04:11 +0000 (18:04 +0100)]
mips: mulswl: sign extend words before multiplying
Guillaume Emont [Thu, 13 Dec 2012 17:03:49 +0000 (18:03 +0100)]
mips: added emit function for seh
Guillaume Emont [Thu, 13 Dec 2012 16:57:08 +0000 (17:57 +0100)]
mips: convssslw: fix typo on minimum value to compare
Guillaume Emont [Thu, 13 Dec 2012 16:46:59 +0000 (17:46 +0100)]
mips: convsbw: spread bytes when we have an instruction shift
Guillaume Emont [Thu, 13 Dec 2012 16:28:30 +0000 (17:28 +0100)]
mips: fix endianness of result of loadupib and loadupdb
Guillaume Emont [Thu, 13 Dec 2012 14:41:06 +0000 (15:41 +0100)]
mips: added copyright headers
Guillaume Emont [Wed, 12 Dec 2012 16:11:05 +0000 (17:11 +0100)]
mips: fixes in mergebw and mergewl
Guillaume Emont [Wed, 12 Dec 2012 16:10:30 +0000 (17:10 +0100)]
mips: addw/addb: always use vectorial operation, whatever the shift
Guillaume Emont [Wed, 12 Dec 2012 16:09:47 +0000 (17:09 +0100)]
mips: load: use lbu instead of lb
Guillaume Emont [Wed, 12 Dec 2012 11:10:31 +0000 (12:10 +0100)]
mips: convubw: extract bytes into 2 halfwords when shift==1
Guillaume Emont [Wed, 12 Dec 2012 11:09:26 +0000 (12:09 +0100)]
mips: convsuswb and convssswb: put results in lower half
Guillaume Emont [Wed, 12 Dec 2012 11:08:24 +0000 (12:08 +0100)]
mips: _rule_load(): directly concatenate bytes for byte loads with shift 1
Guillaume Emont [Wed, 12 Dec 2012 11:07:16 +0000 (12:07 +0100)]
mips: added emit for precr.qb.ph
Guillaume Emont [Tue, 11 Dec 2012 15:34:47 +0000 (16:34 +0100)]
mips: fix shra.ph: correctly get shift value
Guillaume Emont [Tue, 11 Dec 2012 13:47:13 +0000 (14:47 +0100)]
mips: loadp: load as quad bytes or paired halfword for values of (resp) 1 or 2 bytes
Guillaume Emont [Tue, 11 Dec 2012 13:36:49 +0000 (14:36 +0100)]
mips: added emit functions for subu.ph and replv.ph
Guillaume Emont [Tue, 11 Dec 2012 13:36:19 +0000 (14:36 +0100)]
mips: mark t3->t5 as unavailable
Guillaume Emont [Tue, 11 Dec 2012 13:24:16 +0000 (14:24 +0100)]
mips: made convubw a no-op
Guillaume Emont [Tue, 11 Dec 2012 13:22:25 +0000 (14:22 +0100)]
mips: avoid orc_compiler_get_temp_reg()
Guillaume Emont [Mon, 10 Dec 2012 17:22:24 +0000 (18:22 +0100)]
mips: added rules for convsuswb, convubw, avgub, subw
Guillaume Emont [Mon, 10 Dec 2012 17:06:11 +0000 (18:06 +0100)]
mips: add missing nop in a branch delay slot
Guillaume Emont [Mon, 10 Dec 2012 15:39:08 +0000 (16:39 +0100)]
mips: added _emit() for lbu, subq.ph and preceu.ph.qbr
Guillaume Emont [Fri, 7 Dec 2012 13:05:44 +0000 (14:05 +0100)]
mips: implement swapl
Guillaume Emont [Fri, 7 Dec 2012 13:05:20 +0000 (14:05 +0100)]
mips: _emit() for wsbh
Guillaume Emont [Fri, 7 Dec 2012 12:45:01 +0000 (13:45 +0100)]
mips: implement loadupdb
Guillaume Emont [Wed, 5 Dec 2012 19:06:55 +0000 (20:06 +0100)]
mips: made sure more registers are available and use temporary registers more consistently
Guillaume Emont [Wed, 5 Dec 2012 18:23:34 +0000 (19:23 +0100)]
mips: implement loadupib
Guillaume Emont [Wed, 5 Dec 2012 18:22:32 +0000 (19:22 +0100)]
mips: initialise pointer offset registers when they exist
Guillaume Emont [Wed, 5 Dec 2012 18:21:17 +0000 (19:21 +0100)]
mips: handle various update types for vars
Guillaume Emont [Wed, 5 Dec 2012 18:17:49 +0000 (19:17 +0100)]
mips: emit functions for adduh_r.qb, rpelv.qb and packrl.ph
Guillaume Emont [Tue, 4 Dec 2012 18:32:39 +0000 (19:32 +0100)]
mips: implemented orc instructions subb, mullw, convssswb, mergebw, subssw, shrsw
Guillaume Emont [Tue, 4 Dec 2012 18:27:30 +0000 (19:27 +0100)]
mips: added emit for subu.qb, subq_s.ph, and, mul.ph, repl.ph, cmp.lt.ph, pick.ph
Guillaume Emont [Fri, 30 Nov 2012 18:23:17 +0000 (19:23 +0100)]
mips: implement convsbw
Guillaume Emont [Fri, 30 Nov 2012 18:23:05 +0000 (19:23 +0100)]
mips: emit functions for shll.ph and shra.ph
Guillaume Emont [Wed, 28 Nov 2012 19:15:26 +0000 (20:15 +0100)]
mips: implement flush_cache, fixing segfaults on actual hardware
Guillaume Emont [Wed, 28 Nov 2012 13:45:06 +0000 (14:45 +0100)]
mips: frame pointer when ORC_CODE=debug
Guillaume Emont [Thu, 22 Nov 2012 18:41:52 +0000 (19:41 +0100)]
mips: emit invariant instructions in _load_constants_inner()
Guillaume Emont [Thu, 22 Nov 2012 18:39:39 +0000 (19:39 +0100)]
mips: fixed convssslw, implementing it with slt/movn
Guillaume Emont [Thu, 22 Nov 2012 18:38:33 +0000 (19:38 +0100)]
mips: _emit_slt() and _emit_movn()
Guillaume Emont [Thu, 22 Nov 2012 18:38:02 +0000 (19:38 +0100)]
mips: change insn shift when x2/x4 is present
Guillaume Emont [Thu, 22 Nov 2012 18:37:03 +0000 (19:37 +0100)]
mips: $t3 is now our tmpreg
Guillaume Emont [Thu, 22 Nov 2012 18:28:41 +0000 (19:28 +0100)]
mips: implement loadp* orc instructions
Guillaume Emont [Thu, 22 Nov 2012 14:12:18 +0000 (15:12 +0100)]
mips: add _emit_lui()
Guillaume Emont [Tue, 20 Nov 2012 18:58:46 +0000 (19:58 +0100)]
mips: rules for mergewl and addssw
Guillaume Emont [Tue, 20 Nov 2012 18:57:33 +0000 (19:57 +0100)]
mips: add emit method for addq_s.ph
Guillaume Emont [Tue, 20 Nov 2012 17:55:48 +0000 (18:55 +0100)]
mips: rules for mulswl, shrsl and convssslw
Guillaume Emont [Tue, 20 Nov 2012 17:54:30 +0000 (18:54 +0100)]
mips: add emit methods for sra, mul, mtlo and extr_s.h
Guillaume Emont [Fri, 16 Nov 2012 17:33:37 +0000 (18:33 +0100)]
mips: fix stride handling in 2d
Guillaume Emont [Thu, 15 Nov 2012 15:32:56 +0000 (16:32 +0100)]
mips: handle case when n < (# of iterations to reach alignment)
Guillaume Emont [Thu, 15 Nov 2012 15:32:00 +0000 (16:32 +0100)]
mips: addedsupport for bltz,bgtz with immediate offset
Guillaume Emont [Thu, 15 Nov 2012 12:29:44 +0000 (13:29 +0100)]
mips: _assemble: ensure we load n after LABEL_OUTER_LOOP
Guillaume Emont [Mon, 12 Nov 2012 19:31:01 +0000 (20:31 +0100)]
mips: handle 2d loops
Guillaume Emont [Fri, 9 Nov 2012 18:27:32 +0000 (19:27 +0100)]
mips: generate loops for all (or most) alignment cases
Guillaume Emont [Fri, 9 Nov 2012 17:32:49 +0000 (18:32 +0100)]
mips: addede orc_mips_emit_conditional_branch_with_offset()