Zucchini: Add ARM Support |
|
Issue descriptionThere are two main parts to this task: (1) Add ARM support (ARM32 and AArch64) for ELF. This makes Zucchini more useful for mobile usage. This is already implemented "Trunk" Zucchini, and is the final step needed for Zucchini's Chromium repo to catch up with "Trunk". (2) Add ARM support for PE (EXE and DLL): This involves some new code, but should be relatively simple.
,
Jan 16
(6 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/64b76696cded1502e1f9dd055dd3e2a51fa70f80 commit 64b76696cded1502e1f9dd055dd3e2a51fa70f80 Author: Samuel Huang <huangs@chromium.org> Date: Wed Jan 16 15:31:06 2019 [Zucchini] ARM code: Fix counting mistake; rename T21 to T20. ARM instruction B encoding T3 specifies: |code|: 11110Scc cciiiiii 10(J1)0(J2)jjj jjjjjjjj |disp|: SSSSSSSS SSSS(J2)(J1)ii iiiijjjj jjjjjjj0 There are 20 bits in |code| dedicated for |disp|: S iiiiii (J1)(J2)jjj jjjjjjjj Previously this was miscounted as 21! This CL corrects the mistake, and renames "T21" to "T20". There's no change in behavior. Bug: 918867 Change-Id: Ie571bc1a413c4b77f2017cfd2ffe8bf99975ef7a Reviewed-on: https://chromium-review.googlesource.com/c/1413352 Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#623243} [modify] https://crrev.com/64b76696cded1502e1f9dd055dd3e2a51fa70f80/components/zucchini/arm_utils.cc [modify] https://crrev.com/64b76696cded1502e1f9dd055dd3e2a51fa70f80/components/zucchini/arm_utils.h [modify] https://crrev.com/64b76696cded1502e1f9dd055dd3e2a51fa70f80/components/zucchini/arm_utils_unittest.cc
,
Jan 18
(4 days ago)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/88de28e56330d97fe046755fee972495d5e5749d commit 88de28e56330d97fe046755fee972495d5e5749d Author: Samuel Huang <huangs@chromium.org> Date: Fri Jan 18 19:36:50 2019 [Zucchini] ARM code: Add alignment checks for Read*() / Write*(); add tests. Read*() / Write*() functions for ARM code take |instr_rva|, and translate |code| <-> |target_rva|. Both |instr_rva| and |target_rva| must be properly aligned (2-bytes or 4-bytes), but previously such checks were only done on |target_rva - PC(instr_rva)|. This CL adds: * Alignment checks for input params of Read*() / Write*(). * Unit tests for Read*() / Write*(). Also update high-level comments in arm_utils.h. Bug: 918867 Change-Id: Ie37d2df621411920b54ef699edaed1d90eacba88 Reviewed-on: https://chromium-review.googlesource.com/c/1415753 Reviewed-by: Samuel Huang <huangs@chromium.org> Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#624236} [modify] https://crrev.com/88de28e56330d97fe046755fee972495d5e5749d/components/zucchini/arm_utils.cc [modify] https://crrev.com/88de28e56330d97fe046755fee972495d5e5749d/components/zucchini/arm_utils.h [modify] https://crrev.com/88de28e56330d97fe046755fee972495d5e5749d/components/zucchini/arm_utils_unittest.cc |
|
►
Sign in to add a comment |
|
Comment 1 by bugdroid1@chromium.org
, Jan 11