OSDN Git Service

MIPS64: Properly preserve $gp in art_quick_test_suspend
authorGoran Jakovljevic <Goran.Jakovljevic@imgtec.com>
Tue, 9 Aug 2016 13:15:39 +0000 (15:15 +0200)
committerGoran Jakovljevic <Goran.Jakovljevic@imgtec.com>
Tue, 9 Aug 2016 14:01:54 +0000 (16:01 +0200)
commit2e42cf12e7bd62c5455a9c5ac0fc072de0f31884
treef96f8455575b02f5617572668338c9dda8926821
parentc8ba678762430abd4169b0416d51129f7397915a
MIPS64: Properly preserve $gp in art_quick_test_suspend

$gp register was restored in RESTORE_SAVE_EVERYTHING_CALLEE_SAVE_FRAME
with value from $t8, but $t8 has been clobbered in the meantime.

Calculation of $gp is done as a part of the macro
SETUP_SAVE_EVERYTHING_CALLEE_SAVE_FRAME. This allows us to use version
of .cpsetup where $gp is preserved on the stack, instead in another
register.

This fixes over 60 ART tests.

Additionally this suppresses assembler warnings for MIPS32 and MIPS64:
    Warning: used $at without ".set noat"

Test: mma test-art-target-run-test on QEMU

Change-Id: Ic92680c3cb2a4405353b3640c836e92c0231bd15
runtime/arch/mips/quick_entrypoints_mips.S
runtime/arch/mips64/quick_entrypoints_mips64.S