llvm-6502/utils
Hal Finkel d715c3e9ac Add support for positionally-encoded operands to FixedLenDecoderEmitter
Unfortunately, the PowerPC instruction definitions make heavy use of the
positional operand encoding heuristic to map operands onto bitfield variables
in the instruction definitions. Changing this to use name-based mapping is not
trivial, however, because additional infrastructure needs to be designed to
handle mapping of complex operands (with multiple suboperands) onto multiple
bitfield variables.

In the mean time, this adds support for positionally encoded operands to
FixedLenDecoderEmitter, so that we can generate a disassembler for the PowerPC
backend. To prevent an accidental reliance on this feature, and to prevent an
undesirable interaction with existing disassemblers, a backend must opt-in to
this support by setting the new decodePositionallyEncodedOperands
instruction-set bit to true.

When enabled, this iterates the variables that contribute to the instruction
encoding, just as the encoder does, and emulates the procedure the encoder uses
to map "numbered" operands to variables. The bit range for each variable is
also determined as the encoder determines them. This map is then consulted
during the decoder-generator's loop over operands to decode, allowing the
decoder to understand both position-based and name-based operand-to-variable
mappings.

As noted in the comment on the decodePositionallyEncodedOperands definition,
this support should be removed once it is no longer needed. There should be no
change to existing disassemblers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197691 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-19 16:12:53 +00:00
..
bugpoint
buildit Configure with --enable-terminfo=no for Apple's llvmCore builds. 2013-11-03 05:49:36 +00:00
count
crosstool
emacs Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
FileCheck Expose FileCheck's AddFixedStringToRegEx as Regex::escape 2013-12-12 00:06:41 +00:00
FileUpdate Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
fpcmp Don't use PathV1.h in FileUtilities.h. 2013-06-13 20:41:00 +00:00
git
git-svn Use 'git svn find-rev' in git-svnrevert instead of shell script fu. 2013-04-26 03:27:39 +00:00
jedit
kate Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
KillTheDoctor
lint
lit Tweak lit/TestingConfig.py Py3-compatible. has_key is dead. 2013-12-17 04:14:50 +00:00
llvm-build [llvm-build] Make Py3 compatible. 2013-08-14 23:15:39 +00:00
llvm-lit Add missing trailing comma in llvm-lit.in 2013-12-17 00:55:31 +00:00
Misc Patch that forces MergeFunctions pass for clang. 2013-09-24 20:06:31 +00:00
not Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
PerfectShuffle
release Remove superfluous label. 2013-12-03 07:34:19 +00:00
TableGen Add support for positionally-encoded operands to FixedLenDecoderEmitter 2013-12-19 16:12:53 +00:00
Target/ARM
testgen
textmate
unittest [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
valgrind
vim Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
yaml-bench YAMLBench.cpp: Use llvm_move instead of std::move also here. 2013-10-18 23:25:39 +00:00
check-each-file
clang-parse-diagnostics-file
codegen-diff
countloc.sh
DSAclean.py
DSAextract.py
findmisopt
findoptdiff
findsym.pl
GenLibDeps.pl
GetRepositoryPath Fix the build for git repositories with multiple remotes. 2013-09-16 09:25:49 +00:00
GetSourceVersion
getsrcs.sh
lldbDataFormatters.py Simplify the SmallVector pretty printer for LLDB a bit and make it work with reference types. 2012-11-10 09:45:32 +00:00
llvm-compilers-check
llvm-native-gcc
llvm-native-gxx
llvm.grm
llvm.natvis
LLVMBuild.txt
llvmdo
llvmgrep
Makefile
makellvm
sort_includes.py
test_debuginfo.pl debuginfo-tests: Add support for an lldb wrapper script 2013-09-06 18:12:01 +00:00
UpdateCMakeLists.pl
wciia.py