Merge "thumb: Adjust the conversion of the position independent switch"

This commit is contained in:
Johann 2013-05-21 15:44:52 -07:00 коммит произвёл Gerrit Code Review
Родитель 4641e750ba 5d2f6baac3
Коммит f5d3be7e96
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -53,9 +53,10 @@ sub FixThumbInstructions($)
# Convert a conditional addition to the pc register into a series of
# instructions. This converts "addlt pc, pc, r3, lsl #2" into
# "ittt lt", "addlt.w r12, pc, #10", "addlt.w r12, r12, r3, lsl #2",
# "movlt.n pc, r12". This assumes that r12 is free at this point.
s/^(\s*)addlt(\s+)pc,\s*pc,\s*(\w+),\s*lsl\s*#(\d+)/$1ittt$2lt\n$1addlt.w$2r12, pc, #10\n$1addlt.w$2r12, r12, $3, lsl #$4\n$1movlt.n$2pc, r12/g;
# "itttt lt", "movlt.n r12, pc", "addlt.w r12, #12",
# "addlt.w r12, r12, r3, lsl #2", "movlt.n pc, r12".
# This assumes that r12 is free at this point.
s/^(\s*)addlt(\s+)pc,\s*pc,\s*(\w+),\s*lsl\s*#(\d+)/$1itttt$2lt\n$1movlt.n$2r12, pc\n$1addlt.w$2r12, #12\n$1addlt.w$2r12, r12, $3, lsl #$4\n$1movlt.n$2pc, r12/g;
# Convert "mov pc, lr" into "bx lr", since the former only works
# for switching from arm to thumb (and only in armv7), but not