Optimized support for 32x32 => 64bit multiplications on ARM

This code uses UMULL and SMULL to perform the multiplications, which
take two 32bit source registers and two 32bit destination registers.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26346 3ad0048d-3df7-0310-abae-a5850022a9f2
Little cleanup in tarmaddnode.second_add64bit

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26347 3ad0048d-3df7-0310-abae-a5850022a9f2
Use optimize_op_const in ARM cg

This uses the generic optimizations done in optimize_op_const. Due to
this we can also drop some of the optimizations done in the arm-specific
code.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26348 3ad0048d-3df7-0310-abae-a5850022a9f2