Merge pull request #1587 from davidgfnet/master

Minor improvements for ARMv8
This commit is contained in:
David G. F 2019-05-09 18:45:30 +02:00 committed by GitHub
commit 1b89fcd5ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -1420,9 +1420,12 @@ private:
std::vector<const VRegister*> call_fregs;
Arm64RegAlloc regalloc;
RuntimeBlockInfo* block;
const int write_memory_rewrite_size = 3; // same size (fast write) for any size: add, bfc, str
#ifdef EXPLODE_SPANS
const int read_memory_rewrite_size = 6; // worst case for u64: add, bfc, ldr, fmov, lsr, fmov
// FIXME rewrite size per read/write size?
const int write_memory_rewrite_size = 3;
#else
const int read_memory_rewrite_size = 4; // worst case for u64: add, bfc, ldr, str
#endif
};
static Arm64Assembler* compiler;

View File

@ -46,6 +46,7 @@ ifeq (,$(platform))
else ifeq ($(ARCH), $(filter $(ARCH), x86_64 AMD64 amd64))
platform = x64
else ifneq (,$(findstring aarch64,$(ARCH)))
platform = arm64
HARDWARE = $(shell grep Hardware /proc/cpuinfo)
ifneq (,$(findstring Vero4K,$(HARDWARE)))
platform = vero4k
@ -123,6 +124,15 @@ else ifneq (,$(findstring x64,$(platform)))
HAS_SOFTREND := 1
endif
# Generic 64 bit ARM (armv8) Linux
else ifneq (,$(findstring arm64,$(platform)))
NOT_ARM := 1
USE_X11 := 1
ARM64_REC := 1
ISARM64 := 1
CFLAGS += -D TARGET_LINUX_ARMv8 -D TARGET_NO_AREC -fno-builtin-sqrtf
CXXFLAGS += -fexceptions
# Generic 32 bit ARMhf (a.k.a. ARMv7h)
else ifneq (,$(findstring armv7h,$(platform)))
MFLAGS += -marm -mfloat-abi=hard -march=armv7-a -funroll-loops