VirtualBox

Changeset 93288 in vbox


Ignore:
Timestamp:
Jan 17, 2022 10:14:56 PM (3 years ago)
Author:
vboxsync
Message:

/Config.kmk,IPRT: Set arch bitness for assembler use through compiler for sparc32 and sparc64. Improve zero-alt.S to handle SPARC.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r93277 r93288  
    17001700VBOX_LDR_FMT_2_FLAGS.macho := -DASM_FORMAT_MACHO
    17011701VBOX_LDR_FMT_2_FLAGS.pe    := -DASM_FORMAT_PE
    1702 VBOX_ASFLAGS   := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT))
    1703 VBOX_ASFLAGS32 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT32))
    1704 VBOX_ASFLAGS64 := -g $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT64))
     1702 if1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
     1703VBOX_ASFLAGS_BITS := -m$(VBOX_HC_ARCH_BITS)
     1704VBOX_ASFLAGS_BITS32 := -m32
     1705VBOX_ASFLAGS_BITS64 := -m64
     1706 endif
     1707VBOX_ASFLAGS   := -g $(VBOX_ASFLAGS_BITS) $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT))
     1708VBOX_ASFLAGS32 := -g $(VBOX_ASFLAGS_BITS32) $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT32))
     1709VBOX_ASFLAGS64 := -g $(VBOX_ASFLAGS_BITS64) $(VBOX_LDR_FMT_2_FLAGS.$(VBOX_LDR_FMT64))
    17051710endif # ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
    17061711
     
    32553260        $(QUIET)$(APPEND) '$@' 'VBOX_LD_no_compact_linkedit    ?= $(call VBOX_GCC_CHECK_LD,-no_compact_linkedit,)'
    32563261endif
     3262ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
    32573263# YASM
    32583264        $(QUIET)$(APPEND) '$@' '# debug: TOOL_YASM_AS="$(TOOL_YASM_AS)"'
     
    32603266# NASM (--allow-64-bit: 2.12rc2)
    32613267        $(QUIET)$(APPEND) '$@' 'VBOX_NASM_allow_64_bit         ?= $(call VBOX_NASM_CHECK,--allow-64-bit,)'
     3268endif
    32623269if1of ($(KBUILD_TARGET), linux)
    32633270 ifeq ($(KBUILD_TARGET),$(KBUILD_HOST))
  • trunk/src/VBox/Runtime/common/misc/zero-alt.S

    r93115 r93288  
    11/* $Id$ */
    22/** @file
    3  * IPRT - Zero Memory, mach-o version (for arm).
     3 * IPRT - Zero Memory, mach-o version (for arm/sparc).
    44 */
    55
     
    2626
    2727
     28#ifdef ASM_FORMAT_MACHO
    2829; Putting it in the code segment/section for now.
    29 #ifdef ASM_FORMAT_MACHO
    3030        .section    __TEXT,__text,regular,pure_instructions
    3131        .section    __TEXT,__const
    3232# define NAME(a) _##a
     33#elif defined(ASM_FORMAT_ELF) && (defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64))
     34! Putting it in the rodata segment/section for now.
     35        .file       "zero-alt.S"
     36        .section    ".rodata"
     37# define NAME(a) a
    3338#else
    3439# error "PORT ME!"
    3540#endif
    3641
    37 ;;
    38 ; 64KB of zero memory with various sized labels.
     42/* 64KB of zero memory with various sized labels. */
    3943        .globl      NAME(g_abRTZeroPage)
    4044#ifdef ASM_FORMAT_ELF
    41         .size       NAME(g_abRTZeroPage),16384
     45# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     46        .hidden     NAME(g_abRTZeroPage)
     47# endif
     48        .type       NAME(g_abRTZeroPage),#object
     49# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     50        .size       NAME(g_abRTZeroPage),8192
     51# else
     52        .size       NAME(g_abRTZeroPage),4096
     53# endif
    4254#endif
    4355NAME(g_abRTZeroPage):
    4456        .globl      NAME(g_abRTZero4K)
    4557#ifdef ASM_FORMAT_ELF
     58# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     59        .hidden     NAME(g_abRTZero4K)
     60# endif
     61        .type       NAME(g_abRTZero4K),#object
    4662        .size       NAME(g_abRTZero4K),4096
    4763#endif
    4864NAME(g_abRTZero4K):
    4965        .globl      NAME(g_abRTZero8K)
    50 NAME(g_abRTZero8K):
    5166#ifdef ASM_FORMAT_ELF
     67# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     68        .hidden     NAME(g_abRTZero8K)
     69# endif
     70        .type       NAME(g_abRTZero8K),#object
    5271        .size       NAME(g_abRTZero8K),8192
    5372#endif
     73NAME(g_abRTZero8K):
    5474        .globl      NAME(g_abRTZero16K)
    55 NAME(g_abRTZero16K):
    5675#ifdef ASM_FORMAT_ELF
     76# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     77        .hidden     NAME(g_abRTZero16K)
     78# endif
     79        .type       NAME(g_abRTZero16K),#object
    5780        .size       NAME(g_abRTZero16K),16384
    5881#endif
     82NAME(g_abRTZero16K):
    5983        .globl      NAME(g_abRTZero32K)
     84#ifdef ASM_FORMAT_ELF
     85# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     86        .hidden     NAME(g_abRTZero32K)
     87# endif
     88        .type       NAME(g_abRTZero32K),#object
     89        .size       NAME(g_abRTZero32K),32768
     90#endif
    6091NAME(g_abRTZero32K):
    6192        .globl      NAME(g_abRTZero64K)
    6293#ifdef ASM_FORMAT_ELF
    63         .size       NAME(g_abRTZero32K),32768
     94# if defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64)
     95        .hidden     NAME(g_abRTZero64K)
     96# endif
     97        .type       NAME(g_abRTZero64K),#object
     98        .size       NAME(g_abRTZero64K),65536
    6499#endif
    65100NAME(g_abRTZero64K):
     101
     102#ifdef ASM_FORMAT_MACHO
    66103        .space      65536
    67 #ifdef ASM_FORMAT_ELF
    68         .size       NAME(g_abRTZero64K),65536
     104#elif defined(ASM_FORMAT_ELF) && (defined(RT_ARCH_SPARC) || defined(RT_ARCH_SPARC64))
     105        .skip       65536
    69106#endif
    70107
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette