Graham
f742aba80d
Replace simple if condition swapping heuristic with a smarter one
...
This allows us to change expressions like `!a && !b` to `a || b`. It
isn't perfect, as we will now flip bitwise flag checks (which was one of
the main motivations for the old heuristic).
5 years ago
Graham
e202c4fcb9
Clone if/else arms before swapping them
...
This fixes a bug where some of the later transforms didn't run on the
swapped arms.
5 years ago
Graham
ec53c74aaa
Replace if with string switch
5 years ago
Graham
e647588f67
Switch to Apache Harmony's pack200 implementation
...
The built-in pack200 implementation is deprecated.
5 years ago
Graham
93692f497d
Document that CGL lacks extensions in getExtensionsString
5 years ago
Graham
c17f4922c6
Return empty string if wglGetExtensionsStringEXT is not supported
5 years ago
Graham
3e7c27010c
Disable int to void pointer cast warning
5 years ago
Graham
2454bebc96
Add initial Mac OS X jaggl support
5 years ago
Graham
eec8990481
Add description to all modules
5 years ago
Graham
517032959e
Use immutable collections types from Guava
5 years ago
Graham
012d5ed0db
Simplify combined shift/mask operations
5 years ago
Graham
7d959ed135
Remove and later re-add brackets to simplify intermediate transforms
5 years ago
Graham
578927d2f7
Use the Fluido skin
5 years ago
Graham
dba4189016
Add mac profile
...
It is similar to the existing unix profile. However, it doesn't include
the -fPIC flag, which the NAR plugin already includes on OS X. It also
uses -x to accept Objective-C code even though the file extension is .c
instead of .m.
5 years ago
Graham
4acf1e5b17
Disable unix profile on Mac OS X
5 years ago
Graham
14354a22f3
Transform `-x + y` to `y - x` unless both have side effects
5 years ago
Graham
fcc053270d
Remove NegateExprVisitor
...
It's actually cleaner to do this without one!
5 years ago
Graham
12d3af48dd
Add TernaryTransformer
5 years ago
Graham
eadea9231c
Add AddSubTransformer
5 years ago
Graham
0b1d46eec4
Rename AddSubTransformer to NegativeLiteralTransformer
5 years ago
Graham
f90b959210
Rename 'Deobfuscator' to 'Bytecode Deobfuscator'
5 years ago
Graham
b6007c070b
Add PLUS operator support to BinaryExprOrderTransformer
5 years ago
Graham
85891fc532
Use a local patched copy of JavaParser
5 years ago
Graham
e9b2ad6d62
Add initial BinaryExprOrderTransformer
5 years ago
Graham
5e616b2d88
Use Preconditions.checkArgument() in NegateExprVisitor
5 years ago
Graham
27346725e3
Swap if arms if the condition is inverted
5 years ago
Graham
556923559c
Add initial transformer for reducing nesting in long if/else chains
5 years ago
Graham
bf55b0d901
Add initial AST deobfuscator
5 years ago
Graham
fef902c176
Fix dependency order in pom.xml
5 years ago
Graham
271d2126c0
Use InsnList's iterator instead of getFirst()/getNext()
5 years ago
Graham
24ce226e5c
Replace int with var for consistency
5 years ago
Graham
8613763520
Inline bitwise AND/OR/XOR methods
5 years ago
Graham
95c4741229
Remove all-null parameter arrays from the constArgs map
5 years ago
Graham
1cec2c3739
Remove ILOAD inlining
...
This causes Fernflower to output invalid Java in some cases. Need to
think about how exactly to replace it.
5 years ago
Graham
766b544fc1
Track multiple values in IntInterpreter
...
This helps us catch a few more cases in DummyTransformer.
5 years ago
Graham
3c1ec9f210
Add initial DummyTransformer
5 years ago
Graham
55646c8384
Add newParameterValue() implementation to IntInterpreter
5 years ago
Graham
fc95d5086c
Add {pre,post}Pass methods to Transformer
5 years ago
Graham
a4c6c4774a
Add toString() to IntValue
5 years ago
Graham
6ca8da1cd4
Mark the transform method as final
5 years ago
Graham
9b9bdeae63
Add multi-pass Transformer support
5 years ago
Graham
c9acb16e62
Add bundler module
5 years ago
Graham
115486b12e
Remove unused fernflower formatting scope
5 years ago
Graham
cb49b5aa56
Add description, url and inceptionYear to pom.xml
5 years ago
Graham
60d762c0fe
Add missing unsupported platform branch
5 years ago
Graham
c4776431ef
Update dependencies
5 years ago
Graham
d293176959
Replace maven.multiModuleProjectDirectory with openrs2.root
...
openrs2.root works correctly even if the root of the reactor is a child
project, at the expense of having to re-define the property in each
module.
5 years ago
Graham
56528c2edc
Add natives profile to support users without a C compiler
5 years ago
Graham
fc7583c58a
Build all natives on all platforms
...
On unsupported platforms we stub out the methods.
I'm thinking about using the Maven site plugin to manage the project
website, and it is nicer for documentation purposes for all of the
modules to be available in the site regardless of the platform it is
built on.
5 years ago
Graham
2debabbdcd
Remove fernflower submodule
...
I think it's simpler for our Fernflower fork to be a standalone project
that we pull in via a normal Maven dependency.
5 years ago