i#1551 port to ARM: shifted index registers

Adds support for shifted index registers in base-disp operands by storing
the shift type and amount as a union versus the x86 scale field.  Adjusts
all references, and makes opnd_get_scale() invalid on ARM.

Adds conversion of a scale to an LSL shift in existing base-disp creation
routines.

Makes all code referencing opnd_t.seg.segment invalid on ARM.

Adds ARM decoding of shifted index registers.

Adds disassembly by shifting the scale printing to x86/disassemble.c and
adding ARM shift printing to arm/disassemble.c.

git-svn-id: https://dynamorio.googlecode.com/svn/trunk@2961 49cc7528-f6fd-11dd-9d1a-b59b2e1864b6
12 files changed