Skip to content

Commit

Permalink
添加github action
Browse files Browse the repository at this point in the history
  • Loading branch information
copi143 committed Oct 24, 2024
1 parent 81ba1cb commit 665b6e3
Show file tree
Hide file tree
Showing 3 changed files with 145 additions and 1 deletion.
65 changes: 65 additions & 0 deletions .github/workflows/cmake-multi-platform.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: CMake on multiple platforms

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
os: [ubuntu-latest]
build_type: [Release]
c_compiler: [gcc, clang]
include:
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++

steps:
- uses: actions/checkout@v4

- name: Install dependencies
run: |
sudo apt update
sudo apt install -y nasm mtools qemu-system-i386 libfreetype-dev extra-cmake-modules
- name: Build
shell: bash
run: ./init.sh

- name: Upload (clang)
uses: actions/upload-artifact@v4
if: matrix.c_compiler == 'clang'
with:
name: Plant-OS (clang)
path: |
${{ github.workspace }}/bin/
compression-level: 9

- name: Upload (gcc)
uses: actions/upload-artifact@v4
if: matrix.c_compiler == 'gcc'
with:
name: Plant-OS (gcc)
path: |
${{ github.workspace }}/bin/
compression-level: 9
79 changes: 79 additions & 0 deletions src/libc-base/math/i64-div.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
bits 32
section .text
global __udivmoddi4, __divmoddi4, __udivdi3, __umoddi3, __divdi3, __moddi3
__udivmoddi4:
db 0x55, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x57, 0x56, 0x53, 0x83, 0xec, 0x0c, 0x8b, 0x74, 0x24, 0x20
db 0x8b, 0x44, 0x24, 0x28, 0x8b, 0x54, 0x24, 0x2c, 0x8b, 0x7c, 0x24, 0x24, 0x39, 0xf0, 0x89, 0xd3
db 0x19, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x73, 0x21, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00
db 0x01, 0xc0, 0x11, 0xd2, 0x01, 0xc9, 0x11, 0xdb, 0x89, 0xd5, 0x39, 0xf0, 0x19, 0xfd, 0x72, 0xf0
db 0x89, 0xcd, 0x09, 0xdd, 0x0f, 0x84, 0x96, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x24, 0x00, 0x00, 0x00
db 0x00, 0xc7, 0x44, 0x24, 0x04, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x25, 0x2e, 0x8d, 0xb4, 0x26, 0x00
db 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00
db 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0x74, 0x26, 0x00
db 0x39, 0xf0, 0x89, 0xd5, 0x19, 0xfd, 0x73, 0x0b, 0x29, 0xc6, 0x19, 0xd7, 0x09, 0x0c, 0x24, 0x09
db 0x5c, 0x24, 0x04, 0x0f, 0xac, 0xd9, 0x01, 0xd1, 0xeb, 0x89, 0xcd, 0x0f, 0xac, 0xd0, 0x01, 0xd1
db 0xea, 0x09, 0xdd, 0x75, 0xdb, 0x8b, 0x54, 0x24, 0x30, 0x85, 0xd2, 0x74, 0x10, 0x8b, 0x5c, 0x24
db 0x30, 0x8b, 0x04, 0x24, 0x8b, 0x54, 0x24, 0x04, 0x89, 0x03, 0x89, 0x53, 0x04, 0x8b, 0x44, 0x24
db 0x34, 0x85, 0xc0, 0x74, 0x09, 0x8b, 0x44, 0x24, 0x34, 0x89, 0x30, 0x89, 0x78, 0x04, 0x83, 0xc4
db 0x0c, 0x5b, 0x5e, 0x5f, 0x5d, 0xc3, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x66, 0x90
db 0xc7, 0x04, 0x24, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x44, 0x24, 0x04, 0x00, 0x00, 0x00, 0x00, 0xeb
db 0xb4
__divmoddi4:
db 0x55, 0x57, 0x56, 0x53, 0x83, 0xec, 0x1c, 0x8b, 0x4c, 0x24, 0x30, 0x8b, 0x5c, 0x24, 0x34, 0x89
db 0x0c, 0x24, 0x8b, 0x4c, 0x24, 0x38, 0x89, 0x5c, 0x24, 0x04, 0x8b, 0x5c, 0x24, 0x3c, 0x89, 0x4c
db 0x24, 0x10, 0x89, 0x5c, 0x24, 0x14, 0x8b, 0x5c, 0x24, 0x10, 0x8b, 0x6c, 0x24, 0x14, 0xf7, 0xdb
db 0x83, 0xd5, 0x00, 0x89, 0xe9, 0xf7, 0xd9, 0x0f, 0x48, 0x5c, 0x24, 0x10, 0x89, 0xd8, 0x89, 0xcb
db 0x0f, 0x48, 0x5c, 0x24, 0x14, 0x8b, 0x4c, 0x24, 0x04, 0x89, 0xda, 0x8b, 0x1c, 0x24, 0xf7, 0xdb
db 0x83, 0xd1, 0x00, 0xf7, 0xd9, 0x0f, 0x48, 0x1c, 0x24, 0x0f, 0x48, 0x4c, 0x24, 0x04, 0x89, 0xde
db 0x39, 0xd8, 0x89, 0xd3, 0x89, 0xcf, 0x19, 0xcb, 0xb9, 0x01, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00
db 0x00, 0x00, 0x73, 0x26, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x74, 0x26, 0x00
db 0x01, 0xc0, 0x11, 0xd2, 0x01, 0xc9, 0x11, 0xdb, 0x89, 0xd5, 0x39, 0xf0, 0x19, 0xfd, 0x72, 0xf0
db 0x89, 0xcd, 0x09, 0xdd, 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, 0xc7, 0x44, 0x24, 0x08, 0x00, 0x00
db 0x00, 0x00, 0xc7, 0x44, 0x24, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00
db 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x8d, 0xb6, 0x00, 0x00, 0x00, 0x00
db 0x39, 0xf0, 0x89, 0xd5, 0x19, 0xfd, 0x73, 0x0c, 0x29, 0xc6, 0x19, 0xd7, 0x09, 0x4c, 0x24, 0x08
db 0x09, 0x5c, 0x24, 0x0c, 0x0f, 0xac, 0xd9, 0x01, 0xd1, 0xeb, 0x89, 0xcd, 0x0f, 0xac, 0xd0, 0x01
db 0xd1, 0xea, 0x09, 0xdd, 0x75, 0xda, 0x8b, 0x4c, 0x24, 0x40, 0x85, 0xc9, 0x74, 0x1b, 0x8b, 0x54
db 0x24, 0x14, 0x33, 0x54, 0x24, 0x04, 0x78, 0x48, 0x8b, 0x5c, 0x24, 0x40, 0x8b, 0x44, 0x24, 0x08
db 0x8b, 0x54, 0x24, 0x0c, 0x89, 0x03, 0x89, 0x53, 0x04, 0x8b, 0x54, 0x24, 0x44, 0x85, 0xd2, 0x74
db 0x11, 0x8b, 0x44, 0x24, 0x04, 0x85, 0xc0, 0x78, 0x17, 0x8b, 0x44, 0x24, 0x44, 0x89, 0x30, 0x89
db 0x78, 0x04, 0x83, 0xc4, 0x1c, 0x5b, 0x5e, 0x5f, 0x5d, 0xc3, 0x8d, 0xb6, 0x00, 0x00, 0x00, 0x00
db 0xf7, 0xde, 0x83, 0xd7, 0x00, 0xf7, 0xdf, 0xeb, 0xe0, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00
db 0xf7, 0x5c, 0x24, 0x08, 0x83, 0x54, 0x24, 0x0c, 0x00, 0xf7, 0x5c, 0x24, 0x0c, 0xeb, 0xa9, 0x90
db 0xc7, 0x44, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x44, 0x24, 0x0c, 0x00, 0x00, 0x00, 0x00
db 0xeb, 0x84
__udivdi3:
db 0x55, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x57, 0x56, 0x53, 0x83, 0xec, 0x0c, 0x8b, 0x74, 0x24, 0x20
db 0x8b, 0x44, 0x24, 0x28, 0x8b, 0x54, 0x24, 0x2c, 0x8b, 0x7c, 0x24, 0x24, 0x39, 0xf0, 0x89, 0xd3
db 0x19, 0xfb, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x73, 0x1d, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00
db 0x01, 0xc0, 0x11, 0xd2, 0x01, 0xc9, 0x11, 0xdb, 0x89, 0xd5, 0x39, 0xf0, 0x19, 0xfd, 0x72, 0xf0
db 0x89, 0xcd, 0x09, 0xdd, 0x74, 0x72, 0xc7, 0x04, 0x24, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x44, 0x24
db 0x04, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x29, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e
db 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e
db 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x90
db 0x39, 0xf0, 0x89, 0xd5, 0x19, 0xfd, 0x73, 0x0b, 0x29, 0xc6, 0x19, 0xd7, 0x09, 0x0c, 0x24, 0x09
db 0x5c, 0x24, 0x04, 0x0f, 0xac, 0xd9, 0x01, 0xd1, 0xeb, 0x89, 0xcd, 0x0f, 0xac, 0xd0, 0x01, 0xd1
db 0xea, 0x09, 0xdd, 0x75, 0xdb, 0x8b, 0x04, 0x24, 0x8b, 0x54, 0x24, 0x04, 0x83, 0xc4, 0x0c, 0x5b
db 0x5e, 0x5f, 0x5d, 0xc3, 0x8d, 0x74, 0x26, 0x00, 0xc7, 0x04, 0x24, 0x00, 0x00, 0x00, 0x00, 0x8b
db 0x04, 0x24, 0xc7, 0x44, 0x24, 0x04, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x54, 0x24, 0x04, 0x83, 0xc4
db 0x0c, 0x5b, 0x5e, 0x5f, 0x5d, 0xc3
__umoddi3:
db 0x55, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x57, 0x56, 0x53, 0x83, 0xec, 0x0c, 0x8b, 0x6c, 0x24, 0x20
db 0x8b, 0x44, 0x24, 0x28, 0x8b, 0x54, 0x24, 0x2c, 0x8b, 0x74, 0x24, 0x24, 0x39, 0xe8, 0x89, 0xd3
db 0x89, 0x74, 0x24, 0x04, 0x19, 0xf3, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x73, 0x19, 0x8d, 0x76, 0x00
db 0x01, 0xc0, 0x11, 0xd2, 0x01, 0xc9, 0x11, 0xdb, 0x89, 0xd7, 0x39, 0xe8, 0x19, 0xf7, 0x72, 0xf0
db 0x89, 0xce, 0x09, 0xde, 0x74, 0x4a, 0x8b, 0x7c, 0x24, 0x04, 0x89, 0xee, 0x2e, 0x8d, 0xb4, 0x26
db 0x00, 0x00, 0x00, 0x00, 0x2e, 0x8d, 0xb4, 0x26, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x74, 0x26, 0x00
db 0x39, 0xf0, 0x89, 0xd5, 0x19, 0xfd, 0x73, 0x04, 0x29, 0xc6, 0x19, 0xd7, 0x0f, 0xac, 0xd9, 0x01
db 0xd1, 0xeb, 0x89, 0xcd, 0x0f, 0xac, 0xd0, 0x01, 0xd1, 0xea, 0x09, 0xdd, 0x75, 0xe2, 0x83, 0xc4
db 0x0c, 0x89, 0xf0, 0x89, 0xfa, 0x5b, 0x5e, 0x5f, 0x5d, 0xc3, 0x8d, 0xb6, 0x00, 0x00, 0x00, 0x00
db 0x8b, 0x7c, 0x24, 0x04, 0x89, 0xee, 0x83, 0xc4, 0x0c, 0x5b, 0x89, 0xf0, 0x5e, 0x89, 0xfa, 0x5f
db 0x5d, 0xc3
__divdi3:
db 0x83, 0xec, 0x14, 0x6a, 0x00, 0x8d, 0x44, 0x24, 0x0c, 0x50, 0xff, 0x74, 0x24, 0x2c, 0xff, 0x74
db 0x24, 0x2c, 0xff, 0x74, 0x24, 0x2c, 0xff, 0x74, 0x24, 0x2c, 0xe8, 0xfc, 0xff, 0xff, 0xff, 0x8b
db 0x44, 0x24, 0x20, 0x8b, 0x54, 0x24, 0x24, 0x83, 0xc4, 0x2c, 0xc3
__moddi3:
db 0x83, 0xec, 0x14, 0x8d, 0x44, 0x24, 0x08, 0x50, 0x6a, 0x00, 0xff, 0x74, 0x24, 0x2c, 0xff, 0x74
db 0x24, 0x2c, 0xff, 0x74, 0x24, 0x2c, 0xff, 0x74, 0x24, 0x2c, 0xe8, 0xfc, 0xff, 0xff, 0xff, 0x8b
db 0x44, 0x24, 0x20, 0x8b, 0x54, 0x24, 0x24, 0x83, 0xc4, 0x2c, 0xc3
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// This code is released under the MIT License

#include <libc-base.h>
#include <define.h>

// 在 32 位下支持 64 位整数除法
#if NO_STD && defined __i686__
Expand Down

0 comments on commit 665b6e3

Please sign in to comment.