Commit Graph
100 Commits
Author SHA1 Message Date
Ryan Houdek d7d1d11286 Merge pull request #1722 from Armada651/intel-interface
OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks.
2014-12-19 17:09:01 -06:00
Ryan Houdek b30802e2f0 Merge pull request #1721 from Sonicadvance1/fix_adreno_400
Fixes Adreno 400 performance.
2014-12-19 15:55:50 -06:00
Ryan Houdek 2a95454c01 Merge pull request #1717 from Armada651/geom-shaderpack
VideoCommon: Don't specify the redundant in/out qualifier if GL_ARB_shading_language_420pack is supported.
2014-12-19 15:54:13 -06:00
Ryan Houdek 8c0e26d969 Minor changes to DriverDetails
Fixes a typo where the official IMGTec drivers were said to be the OSS driver support.
Removes Mali GPU family detection just like I removed the Adreno family detection.
We don't support Mali Utgard anyway.
If we need family detection we can properly add it, right now it isn't needed.
2014-12-19 21:41:12 +00:00
Ryan Houdek 0fec69001b Fixes Adreno 400 slow performance.
Adreno 300 and 400 have the same video driver performance issues because they are very similar architectures which use basically the same thing with
everything.
There isn't any need to detect the family of the driver with Qualcomm anyway. If we ever need family specific bugs then we can implement real support
for that.
Performance issue on Adreno 400 series was due to us only detecting Adreno 300 series, and with Adreno 400 it wouldn't use the bugs, which would cause
it to use glBufferSubData, causing the huge performance hit.
2014-12-19 21:31:37 +00:00
Ryan Houdek 02f22152be Merge pull request #1706 from Armada651/line-width
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
2014-12-18 19:43:12 -06:00
Ryan Houdek 57d2469d93 Merge pull request #1680 from degasus/master
PixelShaderGen: merge OGL+D3D bbox
2014-12-09 12:36:38 -06:00
Ryan Houdek 1ad8d4629c Merge pull request #1677 from FioraAeterna/fixtypo
JIT: fix MOVD_xmm order typo in ConvertDoubleToSingle
2014-12-09 08:20:27 -06:00
Ryan Houdek 0578ec92c0 Merge pull request #1665 from Sonicadvance1/yielding_the_dual_core_world
Idle loop in GPU loop on dual core systems.
2014-12-09 02:22:27 -06:00
Ryan Houdek 25feb7d16c Merge pull request #1667 from Sonicadvance1/check_llvm_version
Adds LLVM version check to cmake.
2014-12-07 12:11:06 -06:00
Ryan Houdek ce7c52eca0 Enables stereo rendering with OpenGL ES 3.1 + AEP.
If the host device supports GLES 3.1 and AEP we can have stereo rendering.
Just need to make sure to grab the correct function pointer that GL_EXT_geometry_shader provides, and enable AEP in the shaders.

We can't just check if AEP is in the extension list for support because Qualcomm has failed once more.
With the Nexus 6 it reports support for AEP but doesn't support OpenGL ES 3.1, which is an impossible combination.
From reports on their forum it seems that attempting to use any AEP things results in nothing happening, seems like a stub implementation.
2014-12-07 11:14:35 +00:00
Ryan Houdek b361cc8b51 Adds LLVM version check to cmake.
We require LLVM 3.4 minimum, so if the user has something older make sure to not attempt compiling.
Fixes issues #7858 and #7906.
2014-12-07 10:49:45 +00:00
Ryan Houdek 81cc177c44 Merge pull request #1477 from magcius/nunchuk-cleanup
Nunchuk cleanup
2014-12-07 01:29:59 -06:00
Ryan Houdek d9d0e285c9 Merge pull request #1560 from magcius/pad-cleanup-1
Pad cleanup 1
2014-12-07 01:22:03 -06:00
Ryan Houdek 4e98078daf Merge pull request #1658 from lioncash/locale
Common: Remove locale based functions from CommonFuncs.
2014-12-07 01:12:00 -06:00
Ryan Houdek 9897f7675e Merge pull request #1611 from waddlesplash/dolphin-qt
DolphinQt: various cleanup & fixes.
2014-12-07 01:11:17 -06:00
Ryan Houdek 6d6b425061 Merge pull request #1647 from magumagu/mmu-flag-cleanup
Cleanup: remove unnecessary uses of the bMMU flag
2014-12-07 01:08:30 -06:00
Ryan Houdek dec2f9f89b Merge pull request #1596 from Tilka/wiimote
WiimoteReal: use inheritance instead of #ifdef
2014-12-07 01:03:08 -06:00
Ryan Houdek a48abd7bd2 Merge pull request #1662 from lioncash/tas
TASInputDlg: General cleanup.
2014-12-07 00:58:58 -06:00
Ryan Houdek b9c6ee93b6 Merge pull request #1661 from FioraAeterna/fixloadstorebind
JIT: fix possible panicalert in loadstore
2014-12-07 00:54:59 -06:00
Ryan Houdek 0e1d98a43f Merge pull request #1663 from Buddybenj/Fix-Warning
Remove RunningGamecube (unused variable)
2014-12-07 00:08:07 -06:00
Ryan Houdek d58bba2160 Idle loop in GPU loop on dual core systems.
Previously we had decided to busy loop on systems due to Windows' scheduler being terrible and moving us around CPU cores when we yielded.
Along with context switching being a hot spot.
We had decided to busy loop in these situations instead, which allows us greater CPU performance on the video thread.
This can be attributed to multiple things, CPU not downclocking while busy looping, context switches happening less often, yielding taking more time
than a busy loop, etc.

One thing we had considered when moving over to a busy loop is the issues that dual core systems would now face due to Dolphin eating all of their CPU
resources. Effectively we are starving a dual core system of any time to do anything else due to the CPU thread always being pinned at 100% and then
the GPU thread also always at 100% just spinning around. We noted the potential for a performance regression, but dismissed it as most computers are
now becoming quad core or higher.

This change in particular has performance advantages on the dual core Nvidia Denver due to its architecture being nonstandard. If both CPU cores are
maxed out, the CPU can't effectively take any idle time to recompile host code blocks to its native VLIW architecture.
It can still do so, but it does less frequently which results in performance issues in Dolphin due to most code just running through the in-order
instruction decoder instead of the native VLIW architecture.
In one particular example, yielding moves the performance from 35-40FPS to 50-55FPS. So it is far more noticeable on Denver than any other system.
Of course once a triple or quad core Denver system comes out this will no longer be an issue on this architecture since it'll have a free core to do
all of this work.
2014-12-07 05:36:44 +00:00
Ryan Houdek f9cda79f3a Merge pull request #1659 from rohit-n/ow-the-edge
Fix -Wshadow warning.
2014-12-06 23:34:34 -06:00
Ryan Houdek 40f2333145 Merge pull request #1660 from Tilka/avx_bitwise
Fix opcodes of AVX bitwise instructions
2014-12-06 21:58:35 -06:00
Ryan Houdek a381d25d76 Merge pull request #1651 from Armada651/resolve-layer
FramebufferManager: Bind only the first framebuffer layer when the EFB only has one layer.
2014-12-04 17:52:22 -06:00
Ryan Houdek d8cb976bba Merge pull request #1639 from Sonicadvance1/aarch64_improvements
Aarch64 improvements
2014-12-03 19:15:55 -06:00
Ryan Houdek 303ff79746 Merge pull request #1642 from Sonicadvance1/fix_intel_windows_crap
Works around broken Intel Windows video drivers.
2014-12-03 01:22:09 -06:00
Ryan Houdek 5c3bbf7409 Works around broken Intel Windows video drivers.
Just use regular boolean negation in our pixel shader's depth test everywhere except on Qualcomm.
This works around a bug in the Intel Windows driver where comparing a boolean value against true or false fails but boolean negation works fine.
Quite silly.

Should fix issues #7830 and #7899.
2014-12-03 00:33:42 -06:00
Ryan Houdek 71e4e67ae1 [AArch64] Only flush registers that are needed with interpreter fallback.
We try to keep as many registers as possible in callee saved registers, so if we have guest registers in the correct registers and the interpreter
call we are falling back to doesn't need the registers then we can dump just those ones. Which means we don't have to dump 100% of our register state
when falling to the interpreter.
2014-12-02 21:08:38 -06:00
Ryan Houdek 71b77f3173 [AArch64] Makes some integer instructions more clear what they're doing.
ComputeRC was a bit unclear by using 64bit registers for setting the immediate and then calling SXTW on a 6b4it register which is just a bit obscure.
When the source register is an immediate in cntlzwx, just use the built in GCC function instead of our own implementing for counting leading zeros.
2014-12-02 21:08:38 -06:00
Ryan Houdek 8dfb8d8ad5 [AArch64] Implements HLE function injection 2014-12-02 21:08:38 -06:00
Ryan Houdek 51ad798105 [AArch64] Implements block linking.
Before block linking was enabled but it wasn't ever implemented.
Implements link blocks and destroy block functions and moves the downcount check in the WriteExit function so it doesn't get overwritten when linking.
2014-12-02 21:08:38 -06:00
Ryan Houdek ca04601b14 [AArch64] Fixes the dispatcher
Changes the dispatcher to make sure to we are saving the LR(X30) to the stack. Also makes sure to keep the stack aligned.
AArch64's AAPCS64 mandates the stack to be quad-word aligned.

Fixes the dispatcher from infinite looping due to a downcount check jumping to the dispatcher. This was because checking exceptions and the state
pointer wouldn't reset the global conditional flags. So it would leave the timing/exception, jump to the start of the dispatcher and then jump back
again due to the conditional branch.
2014-12-02 21:08:38 -06:00
Ryan Houdek c3c80e9440 [AArch64] Improves the register cache.
Removes the REG_AWAY nonsense I was doing. I've got to get the JIT more up to speed before thinking of insane register cache things.
Also fixes a bug in immediate setting where if the register being set to an immediate already had a host register tied to it then it wouldn't free the
register it had. Resulting in register exhaustion.
2014-12-02 21:08:38 -06:00
Ryan Houdek 2c39d4044d [AArch64] Add loadstore paired emitter instructions. 2014-12-02 21:08:34 -06:00
Ryan Houdek eea3039a6a Merge pull request #1636 from Sonicadvance1/ppcanalyst-fix
Fix register usage detection in PPCAnalyst.
2014-12-02 18:59:42 -06:00
Ryan Houdek 08660c89ad Fix register usage detection in PPCAnalyst.
lmw/stmw weren't properly setting input and output registers since they use multiple registers.
dcbz was just missing a flag in the instruction tables.
2014-12-02 16:12:33 -06:00
Ryan Houdek e40f129fdd Merge pull request #1635 from FioraAeterna/fixprofiler2
JIT: fix profiler call
2014-12-02 14:39:25 -06:00
Ryan Houdek 64124a0d21 Merge pull request #1628 from lioncash/tl
InputConfigDiag: Clean up dialog title translation handling
2014-12-01 20:40:49 -06:00
Ryan Houdek 4946c6876d Merge pull request #1607 from Sonicadvance1/armv7-optimizations
A whole bunch of ARMv7 optimizations and minor fixes.
2014-11-30 15:48:27 -06:00
Ryan Houdek 414e36d8c9 Merge pull request #1258 from FioraAeterna/avoidfmulround
JIT: optimize single-precision ops based on knowledge of their inputs
2014-11-30 15:47:34 -06:00
Ryan Houdek db9cd8e3d7 Merge pull request #1615 from Sonicadvance1/fix_cpu_helper
[Android] Removes CPU architecture number from CPU helper.
2014-11-30 15:43:47 -06:00
Ryan Houdek d3c278cc33 Merge pull request #1610 from rohit-n/sign-compare
VideoCommon: Fix -Wsign-compare warnings.
2014-11-30 15:42:34 -06:00
Ryan Houdek 7c38d04a40 Merge pull request #1614 from Sonicadvance1/fix_aarch64_bswap
[AArch64] Workaround builtin byteswap bug.
2014-11-30 15:41:35 -06:00
Ryan Houdek 4a687f2641 Merge pull request #1616 from Sonicadvance1/asimd_is_neon
[Android] Fix NEON detection with AArch64
2014-11-30 15:41:28 -06:00
Ryan Houdek 50582b1d74 [Android] Fix NEON detection with AArch64
On AArch64 asimd is the new name for NEON.
This fixes a message on application start in Android about the device not supporting NEON.
If it's AArch64 then it supports NEON!
2014-11-30 01:33:11 -06:00
Ryan Houdek c27ee21dd9 [AArch64] Workaround builtin byteswap bug.
The builtin byteswap routines cause critical failure on AArch64 when built with the Android toolchain.
I didn't experience this issue when building for Linux using a local qemu chroot.
Seems to be only an issue with the Android toolchain when building AArch64.
Use our generic version instead.
2014-11-30 01:23:03 -06:00
Ryan Houdek 496f9d678a [Android] Removes CPU architecture number from CPU helper.
This was '7' on all ARMv7 devices but was 'AArch64' on the Nexus 9.
Trying to cast to integer was causing a crash. We don't even use this so may as well as wipe it.
Also adds Nvidia to the CPU implementers list.
2014-11-30 01:17:05 -06:00
Ryan Houdek b689954a71 Update the android cmake toolchain to latest.
To properly support 64bit architectures and clang we need the latest version.
2014-11-30 01:05:37 -06:00
Ryan Houdek cd13d2d66f [ARM32] Fix a couple bugs in the paired loadstore routines.
This code was obviously wrong, we were sign extending 8 bit unsigned values and loading from the wrong offset as well.
This fixes a bug in Muramasa where some colours were going insane.
2014-11-30 04:10:17 +00:00
Ryan Houdek b848365f78 [ARM32] Minor optimization in paired loadstores.
When the offset can fit in the instruction encoding make sure to do so.
2014-11-30 04:10:16 +00:00
Ryan Houdek 52c6fb180b [ARM32] Moves loadstore extend flag to backpatch code. 2014-11-30 04:10:16 +00:00
Ryan Houdek 32dc105aa3 [ARM32] Eat a register to store our memory base.
This saves at least two instructions per fastmem operation.
2014-11-30 04:10:16 +00:00
Ryan Houdek e2f8286415 [ARM32] Adds unsigned compares.
Superscedes PR #1131.
Optimizes cmpi a bit.
2014-11-30 04:10:16 +00:00
Ryan Houdek 581ab9edec [ARM32] cntlzwx optimization if source is immediate 2014-11-30 04:10:16 +00:00
Ryan Houdek 9c82adb14f [ARM32] negx optimization if source is immediate 2014-11-30 04:10:15 +00:00
Ryan Houdek 1dbb39f791 [ARM32] srawix optimization when source is an immediate. 2014-11-30 04:10:15 +00:00
Ryan Houdek fca0fd9dd5 [ARM32] rlwimix and rlwnmx optimizations. 2014-11-30 04:10:15 +00:00
Ryan Houdek d4125231f3 Merge pull request #1608 from Sonicadvance1/fix-gles3-rendering
Fixes OpenGL ES rendering.
2014-11-29 01:28:36 -06:00
Ryan Houdek 38dfc970df Fixes OpenGL ES rendering.
sampler2DArray doesn't have a default precision, so we need to set it ourselves.
2014-11-29 01:27:47 -06:00
Ryan Houdek f588a82b9a Merge pull request #1294 from FioraAeterna/noaccuratefcmp
JIT: remove "accurate fcmp" option
2014-11-28 22:48:11 -06:00
Ryan Houdek 1aed2542c7 Merge pull request #1602 from FioraAeterna/fixforce25bitimprecise
JIT: fix Force25BitPrecision with accurate single precision mode off
2014-11-28 22:42:44 -06:00
Ryan Houdek e7daf6b3bc Merge pull request #1606 from FioraAeterna/vertexloadercall
Vertex loader: use ABI_CallFunction
2014-11-28 22:40:06 -06:00
Ryan Houdek 5003618587 Merge pull request #1605 from FioraAeterna/fixcrormerge
JIT: fix fcmp+cror merging bug
2014-11-28 22:39:13 -06:00
Ryan Houdek 1a85df0459 Merge pull request #1603 from FioraAeterna/nofastinterrupts
JIT: remove "fast interrupts" option set and then used nowhere
2014-11-28 22:37:52 -06:00
Ryan Houdek 2d2baec65d Merge pull request #1595 from degasus/master
OGL: require GL version >= 3.0
2014-11-28 22:37:35 -06:00
Ryan Houdek ec3d6da7b5 [ARM32] Remove conditional execution from store instructions. 2014-11-29 02:44:17 +00:00
Ryan Houdek 6c399ce9ae [ARM32] Removes a block of conditional execution in the dispatcher. 2014-11-29 02:42:30 +00:00
Ryan Houdek e358696d46 [ARM32] Removes conditional execution from ARMv7's Jit function. 2014-11-29 02:42:22 +00:00
Ryan Houdek ce059769f6 Merge pull request #1439 from Armada651/ogl-stereo-3d
OGL: Stereoscopic 3D Support
2014-11-28 11:45:38 -06:00
Ryan Houdek f151f5ed23 Merge pull request #1594 from rohit-n/build-pch
Fix building with PCH disabled.
2014-11-26 10:40:07 -06:00
Ryan Houdek 2fdeefb65b Adds support for OpenGL ES draw_elements_base_vertex.
This is the same extension that we all know and love but under a different name with some different requirements.
In regular OpenGL fashion, you can't just move a desktop OpenGL extension to OpenGL ES without ratifying a new extension, which is why this falls
under a EXT extension, which in turn causes it to have suffixes attached to their function names.

This is the first step in our way towards conquering all mobile GPUs that don't support desktop OpenGL, hopefully we also can add support for
buffer_storage to OpenGL ES as well so we can make full use of this extension.
2014-11-21 18:57:32 -06:00
Ryan Houdek e84999386b Merge pull request #1579 from Sonicadvance1/armv7-fastmem-rewrite
Rewrites ARMv7 fastmem entirely.
2014-11-21 14:54:05 -06:00
Ryan Houdek bfbbddd76f Rewrites ARMv7 fastmem entirely.
This is a fairly lengthy change that can't be separated out to multiple commits well due to the nature of fastmem being a bit of an intertangled mess.
This makes my life easier for maintaining fastmem on ARMv7 because I now don't have to do any terrible instruction counting and NOP padding. Really
makes my brain stop hurting when working with it.

This enables fastmem for a whole bunch of new instructions, which basically means that all instructions now have fastmem working for them. This also
rewrites the floating point loadstores again because the last implementation was pretty crap when it comes to performance, even if they were the
cleanest implementation from my point of view.

This initially started with me rewriting the fastmem routines to work just like the previous/current implementation of floating loadstores. That was
when I noticed that the performance tanked and decided to rewrite all of it.

This also happens to implement gatherpipe optimizations alongside constant address optimization.

Overall this comment brings a fairly large speedboost when using fastmem.
2014-11-21 05:21:57 -06:00
Ryan Houdek a3f9f21e08 Merge pull request #1571 from degasus/master
OGL: fix buffer destruction
2014-11-19 02:13:36 -06:00
Ryan Houdek 3bfa15d2e1 Fixes GLExtensions for GL 2.1 or GLES 2 devices.
This wasn't too much of a concern since we normally don't care about this feature set, but it is nice when testing on new devices and they don't
support the higher feature sets but want to run under software renderer.

The Mesa softpipe and PowerVR 5xx drivers don't support higher GL versions, but they shouldn't exit out just because they couldn't get a GL3 function
pointer that isn't even going to be used at that point.
2014-11-16 22:59:29 -06:00
Ryan Houdek f9208dcc13 Fixes ARMv7 FP loadstores using fastmem when not enabled. 2014-11-16 21:12:11 -06:00
Ryan Houdek 30e1749d00 Implements block time profiling on ARMv7.
This was interesting implementing.
Our generic QueryPerformanceCounter function on ARMv7 was so slow that profiling a block was impossible.
I waited about five minutes and I couldn't even get a single frame to output.
This instead uses ARMv7's PMU to get cycle counts, which are a relatively minor performance drop in my testing.
One disadvantage of this method is that the kernel can lock us out of using these co-processor registers, but it seems to work on my Jetson board.
Another disadvantage is that we aren't having block times in "real" time but cycles instead, not too big of a deal.

This also removes instruction run counts from profiling because that's just annoying and we don't expose an interface for even getting those results
from our UI.
2014-11-16 09:29:27 +00:00
Ryan Houdek b24197f913 Adds MCR/MRC to the ARMv7 emitter. 2014-11-16 09:29:27 +00:00
Ryan Houdek 6683b194ff ARMv7 register cache optimizations.
Enable support for not loading a destination register on FPR cache.
Dump registers if they won't be used later in the block. Stolen from Fiora.
2014-11-16 09:29:22 +00:00
Ryan Houdek 4ce1b33e55 Merge pull request #1551 from Sonicadvance1/armv7-float-fastmem
Reimplements fastmem for ARMv7 floating point loadstores.
2014-11-15 15:32:17 -06:00
Ryan Houdek 181f16c5f0 Reimplements fastmem for ARMv7 floating point loadstores.
This implements a new system for fastmem backpatching on ARMv7 that is less of a mindfsck to deal with.
This also implements stfs under the default loadstore path as well, not sure why it was by itself in the first place.

I'll be moving the rest of the loadstore methods over to this new way in a few days.
2014-11-15 21:17:50 +00:00
Ryan Houdek be44fdf0ec Merge pull request #1542 from Sonicadvance1/armv7-fixes
Reenables the ARMv7 FPR cache + minor ARMv7 things.
2014-11-14 09:25:32 -06:00
Ryan Houdek eb7543d139 Enables ARMv7 build options entirely on ARM.
We only support ARMv7 with Dolphin, so if we are building on ARM have our target be for armv7-a.
2014-11-14 15:14:53 +00:00
Ryan Houdek b0becf7af8 Enables the ARMv7 FPR cache.
The problem instructions with the FPR are disabled in the previous commit. This can now be reenabled for fairly large performance gains.
2014-11-14 15:14:10 +00:00
Ryan Houdek 69c3e6516c Disables NEON optimized instructions.
These are causing issues in games. In particular you get pink on the screen in Animal Crossing.
Disable until fully investigated.

This also disables fastmem on floating point loadstore instructions which are horribly broken and won't actually backpatch when an invalid read/write
is encountered.
2014-11-14 15:13:13 +00:00
Ryan Houdek 75df11335a Merge pull request #1491 from FioraAeterna/fixdumbmistake
JIT: fix typo in optimization patch
2014-11-04 04:57:01 -06:00
Ryan Houdek 8c981aad04 Merge pull request #1481 from FioraAeterna/fixclrcr
JIT: fix dumb mistake in crclr optimization patch
2014-11-03 14:43:38 -06:00
Ryan Houdek 1bbe56746f Merge pull request #1484 from magcius/memmap-cleanup
MemArena: Fix the launching of non-Wii games
2014-11-03 14:37:09 -06:00
Ryan Houdek 204598a082 Merge pull request #1350 from FioraAeterna/integeropts
Various smallish JIT optimizations
2014-11-02 20:13:20 -06:00
Ryan Houdek 1c41acaddd Merge pull request #1264 from Stevoisiak/GCM-to-ISO
Gcm to iso
2014-11-02 11:29:41 -06:00
Ryan Houdek b8cba759f4 Merge pull request #1398 from Stevoisiak/setDefaultISOFiletypes
ConfigMain: Added missing filetypes to default ISO options
2014-11-02 11:24:43 -06:00
Ryan Houdek 66f0ac2417 Merge pull request #1401 from Stevoisiak/updateResolutionTooltip
VideoConfigDiag: Updated video resolution description
2014-11-02 11:13:29 -06:00
Ryan Houdek 6e43562496 Merge pull request #1468 from Tilka/cleanup
Small cleanup
2014-11-02 11:02:35 -06:00
Ryan Houdek 2c602137b1 Merge pull request #1472 from lioncash/i18n
DolphinWX: Make the TAS dialog window titles translatable.
2014-11-02 09:58:10 -06:00
Ryan Houdek 13d58b3f16 Merge pull request #1460 from phire/moreGetPointer
Remove GetPointers in VideoSoftware.
2014-11-02 09:57:16 -06:00
Ryan Houdek cd64253cb4 Merge pull request #1459 from Buddybenj/nunchuk
Nunchuck -> Nunchuk Fixes
2014-11-02 09:44:43 -06:00
Ryan Houdek 2b69d76e88 Merge pull request #1448 from skidau/mmio-read32
Fixed the endianess of the 32bit MMIO reads.
2014-11-02 09:36:43 -06:00
Ryan Houdek 0d70880d89 Merge pull request #1466 from Sonicadvance1/ARMv7-and-optimization
Optimizes ARMv7 andi{s,}_rc implementations.
2014-11-02 09:33:37 -06:00
Ryan Houdek 824bad458c Merge pull request #1454 from lioncash/interp
Interpreter: Remove a redundant macro
2014-11-02 09:33:19 -06:00