From f62345ee64147f0bf0e6748eb6d7ae7078e8e42b Mon Sep 17 00:00:00 2001 From: mintsuki Date: Tue, 28 Jun 2022 08:47:40 +0200 Subject: [PATCH] build: Add generic x86 asm extension grouping --- common/GNUmakefile | 21 ++++++++++++++++--- ...reloc.asm_ia32 => multiboot_reloc.asm_x86} | 2 ++ 2 files changed, 20 insertions(+), 3 deletions(-) rename common/protos/{multiboot_reloc.asm_ia32 => multiboot_reloc.asm_x86} (99%) diff --git a/common/GNUmakefile b/common/GNUmakefile index 5996ebdc..2eef40e1 100644 --- a/common/GNUmakefile +++ b/common/GNUmakefile @@ -143,22 +143,25 @@ endif override C_FILES := $(shell find ./ -type f -name '*.c') ifeq ($(TARGET), bios) +override ASMX86_FILES := $(shell find ./ -type f -name '*.asm_x86') override ASM32_FILES := $(shell find ./ -type f -name '*.asm_ia32') override ASMB_FILES := $(shell find ./ -type f -name '*.asm_bios_ia32') -override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM32_FILES:.asm_ia32=.o) $(ASMB_FILES:.asm_bios_ia32=.o)) +override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM32_FILES:.asm_ia32=.o) $(ASMB_FILES:.asm_bios_ia32=.o) $(ASMX86_FILES:.asm_x86=.o)) endif ifeq ($(TARGET), uefi-x86-64) +override ASMX86_FILES := $(shell find ./ -type f -name '*.asm_x86') override ASM64_FILES := $(shell find ./ -type f -name '*.asm_x86_64') override ASM64U_FILES := $(shell find ./ -type f -name '*.asm_uefi_x86_64') -override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM64_FILES:.asm_x86_64=.o) $(ASM64U_FILES:.asm_uefi_x86_64=.o)) +override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM64_FILES:.asm_x86_64=.o) $(ASM64U_FILES:.asm_uefi_x86_64=.o) $(ASMX86_FILES:.asm_x86=.o)) endif ifeq ($(TARGET), uefi-ia32) +override ASMX86_FILES := $(shell find ./ -type f -name '*.asm_x86') override ASM32_FILES := $(shell find ./ -type f -name '*.asm_ia32') override ASM32U_FILES := $(shell find ./ -type f -name '*.asm_uefi_ia32') -override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM32_FILES:.asm_ia32=.o) $(ASM32U_FILES:.asm_uefi_ia32=.o)) +override OBJ := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.o) $(ASM32_FILES:.asm_ia32=.o) $(ASM32U_FILES:.asm_uefi_ia32=.o) $(ASMX86_FILES:.asm_x86=.o)) endif override HEADER_DEPS := $(addprefix $(call MKESCAPE,$(BUILDDIR))/, $(C_FILES:.c=.d)) @@ -408,6 +411,10 @@ $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_ia32 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_bios_ia32 mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)' + +$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86 + mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" + nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)' endif ifeq ($(TARGET), uefi-x86-64) @@ -418,6 +425,10 @@ $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86_64 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_uefi_x86_64 mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)' + +$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86 + mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" + nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)' endif ifeq ($(TARGET), uefi-ia32) @@ -428,4 +439,8 @@ $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_ia32 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_uefi_ia32 mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)' + +$(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86 + mkdir -p "$$(dirname '$(call SHESCAPE,$@)')" + nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)' endif diff --git a/common/protos/multiboot_reloc.asm_ia32 b/common/protos/multiboot_reloc.asm_x86 similarity index 99% rename from common/protos/multiboot_reloc.asm_ia32 rename to common/protos/multiboot_reloc.asm_x86 index 8ae1d423..821b9d83 100644 --- a/common/protos/multiboot_reloc.asm_ia32 +++ b/common/protos/multiboot_reloc.asm_x86 @@ -1,5 +1,7 @@ section .data +bits 32 + global multiboot_reloc_stub multiboot_reloc_stub: jmp .code