Skip to content

Commit 3d5df22

Browse files
dcharkescommit-bot@chromium.org
authored andcommitted
[vm/ffi] Support Linux on Arm 32-bit (hardfp)
Implement the hardfp calling convention. Tested QEMU locally as the bots are not online yet. tools/test.py -m debug -a arm -c dartkp --use-qemu ffi_2 ; tools/test.py -m debug -a arm -c dartk --use-qemu ffi_2 Test configuration: custom configuration(architecture: arm, compiler: dartkp, mode: debug, runtime: dart_precompiled, system: linux, use-qemu) Suites tested: ffi_2 [00:45 | 100% | + 189 | - 0] Test configuration: custom configuration(architecture: arm, compiler: dartk, mode: debug, runtime: vm, system: linux, use-qemu) Suites tested: ffi_2 [09:52 | 100% | + 189 | - 0] Fixes: dart-lang#36309 Change-Id: Ic34175bdf9b9f359f1126aeb157362e76443921a Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124136 Commit-Queue: Daco Harkes <[email protected]> Reviewed-by: Martin Kustermann <[email protected]>
1 parent d9ebf43 commit 3d5df22

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

assembler_arm.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3160,6 +3160,13 @@ void Assembler::AddImmediateSetFlags(Register rd,
31603160
}
31613161
}
31623162

3163+
void Assembler::SubImmediate(Register rd,
3164+
Register rn,
3165+
int32_t value,
3166+
Condition cond) {
3167+
AddImmediate(rd, rn, -value, cond);
3168+
}
3169+
31633170
void Assembler::SubImmediateSetFlags(Register rd,
31643171
Register rn,
31653172
int32_t value,

assembler_arm.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,10 @@ class Assembler : public AssemblerBase {
757757
Register rn,
758758
int32_t value,
759759
Condition cond = AL);
760+
void SubImmediate(Register rd,
761+
Register rn,
762+
int32_t value,
763+
Condition cond = AL);
760764
void SubImmediateSetFlags(Register rd,
761765
Register rn,
762766
int32_t value,

0 commit comments

Comments
 (0)