mirror of
https://github.com/HarbourMasters/Starship
synced 2026-05-22 22:44:42 -04:00
ll.c
This commit is contained in:
@@ -194,6 +194,8 @@ build/src/libultra/2D300.o: OPTFLAGS := -O1 -g0
|
||||
build/src/libultra/io/controller.o: OPTFLAGS := -O1 -g0
|
||||
build/src/libultra/libc/string.o: OPTFLAGS := -O2 -g0
|
||||
build/src/libultra/libc/ldiv.o: OPTFLAGS := -O2 -g0
|
||||
build/src/libultra/libc/ll.o: OPTFLAGS := -O1 -g0
|
||||
build/src/libultra/libc/ll.o: MIPS_VERSION := -mips3 -32
|
||||
build/src/libultra/gu/ortho.o: OPTFLAGS := -O3 -g0
|
||||
build/src/libultra/gu/lookat.o: OPTFLAGS := -O3 -g0
|
||||
|
||||
@@ -201,6 +203,8 @@ build/src/libultra/gu/lookat.o: OPTFLAGS := -O3 -g0
|
||||
CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(IDO) -- $(AS) $(ASFLAGS) --
|
||||
build/src/libultra/gu/lookat.o: CC := $(IDO)
|
||||
build/src/libultra/gu/ortho.o: CC := $(IDO)
|
||||
build/src/libultra/libc/ll.o: CC := $(IDO)
|
||||
|
||||
#build/src/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(IDO) -- $(AS) $(ASFLAGS) --
|
||||
|
||||
all: uncompressed
|
||||
@@ -298,6 +302,14 @@ $(BUILD_DIR)/%.o: %.c
|
||||
$(OBJDUMP_CMD)
|
||||
$(RM_MDEBUG)
|
||||
|
||||
# Patch ll.o
|
||||
build/src/libultra/libc/ll.o: src/libultra/libc/ll.c
|
||||
$(CC_CHECK) $(CC_CHECK_FLAGS) $(IINC) -I $(dir $*) $(CHECK_WARNINGS) $(BUILD_DEFINES) $(COMMON_DEFINES) $(RELEASE_DEFINES) $(GBI_DEFINES) $(C_DEFINES) $(MIPS_BUILTIN_DEFS) -o $@ $<
|
||||
$(CC) -c $(CFLAGS) $(BUILD_DEFINES) $(IINC) $(WARNINGS) $(MIPS_VERSION) $(ENDIAN) $(COMMON_DEFINES) $(RELEASE_DEFINES) $(GBI_DEFINES) $(C_DEFINES) $(OPTFLAGS) -o $@ $<
|
||||
$(PYTHON) tools/set_o32abi_bit.py $@
|
||||
$(OBJDUMP_CMD)
|
||||
$(RM_MDEBUG)
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
||||
# Print target for debugging
|
||||
|
||||
+36
-11
@@ -1,21 +1,46 @@
|
||||
#include "common.h"
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ull_rshift.s")
|
||||
long long __ull_rshift(unsigned long long left, unsigned long long right) {
|
||||
return left >> right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ull_rem.s")
|
||||
unsigned long long __ull_rem(unsigned long long left, unsigned long long right) {
|
||||
return left % right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ull_div.s")
|
||||
unsigned long long __ull_div(unsigned long long left, unsigned long long right) {
|
||||
return left / right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_lshift.s")
|
||||
long long __ll_lshift(long long left, long long right) {
|
||||
return left << right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_rem.s")
|
||||
long long __ll_rem(long long left, unsigned long long right) {
|
||||
return left % right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_div.s")
|
||||
long long __ll_div(long long left, long long right) {
|
||||
return left / right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_mul.s")
|
||||
long long __ll_mul(long long left, long long right) {
|
||||
return left * right;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ull_divremi.s")
|
||||
void __ull_divremi(unsigned long long* quotient, unsigned long long* remainder, unsigned long long dividend,
|
||||
unsigned short divisor) {
|
||||
*quotient = dividend / divisor;
|
||||
*remainder = dividend % divisor;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_mod.s")
|
||||
long long __ll_mod(long long left, long long right) {
|
||||
long long rem = left % right;
|
||||
if (((rem < 0) && (right > 0)) || ((rem > 0) && (right < 0))) {
|
||||
rem += right;
|
||||
}
|
||||
return rem;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/libc/ll/__ll_rshift.s")
|
||||
long long __ll_rshift(long long left, long long right) {
|
||||
return left >> right;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user