diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2020-07-17 22:59:07 +0200 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2020-09-30 03:08:36 +0200 |
commit | 03aacdb73d2f797768129d54ac971b48756fa51a (patch) | |
tree | 7902012ef175d3649d404e0eaa0e739b924414ec /solenv | |
parent | f11dc8335c9bae837823c14d059388b8d5965dcb (diff) |
bridges: add a Windows Arm64 UNO bridge
Since Microsoft follows the general ARM64 ABI calling conventions,
and the SEH exception handling is the same, this result is a mixed
port of the gcc3_linux_aarch64 bridge and the refactored x86-64
exception handling.
I have no idea, if the complicated 32-bit handling in RaiseInfo()
is needed, as the ARM64 trampolines definitly use 64-bit code.
But since this is the first working version, I currently don't
mind much ;-)
There is definitly more potential for refactoring in the whole
bridges directory...
Change-Id: I9782a2e99c0231cdd1286af156ad312229eccf39
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103642
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gbuild/platform/com_MSC_class.mk | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk index 09dd48dc8754..8a71ca3422bb 100644 --- a/solenv/gbuild/platform/com_MSC_class.mk +++ b/solenv/gbuild/platform/com_MSC_class.mk @@ -134,6 +134,21 @@ fi endef # AsmObject class +ifeq ($(CPUNAME),ARM64) +gb_AsmObject_get_source = $(1)/$(2).S + +# Code needs a preprozessor step .S -> .asm -> .o +define gb_AsmObject__command +$(call gb_Output_announce,$(2),$(true),ASM,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) $(dir $(4)) && \ + "$(CC)" -nologo -EP -D_M_ARM64 $(SOLARINC) $(3) > $(subst .o,.asm,$(1)) && \ + "$(ML_EXE)" $(gb_AFLAGS) -g -errorReport:prompt -o $(1) $(subst .o,.asm,$(1)), \ + ) && \ + echo "$(1) : $(3)" > $(4) +endef + +else # !ARM64 gb_AsmObject_get_source = $(1)/$(2).asm define gb_AsmObject__command @@ -146,6 +161,7 @@ $(call gb_Helper_abbreviate_dirs,\ echo "$(1) : $(3)" > $(4) endef +endif # LinkTarget class |