More testing

This commit is contained in:
Johan B.W. de Vries 2026-01-18 14:21:48 +01:00
parent 098ab080ca
commit 1671ce2285
2 changed files with 72 additions and 0 deletions

View File

@ -2,5 +2,6 @@
/lang0ll*.exe /lang0ll*.exe
/lang0ll*.ll /lang0ll*.ll
/lang0ll*.o /lang0ll*.o
/lang0ll*.s
/foo.exe /foo.exe
/foo.ll /foo.ll

71
3-lang0ll/backup.ll Normal file
View File

@ -0,0 +1,71 @@
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
declare noalias i8* @malloc(i64)
define i8* @__add(i8* %lft, i8* %rgt)
{
%lft_len = call i64 @__strlen(i8* %lft)
%rgt_len = call i64 @__strlen(i8* %rgt)
%new_len = add i64 %lft_len, %rgt_len
%res = call i8* @malloc(i64 %new_len)
; todo: copy lft
; todo: copy rgt
; todo: set 0 byte
ret i8* %res
}
define i64 @__strlen(i8* %str)
{
start:
br label %loop_start
loop_start:
%i.0 = phi i64 [0, %start], [%i.new, %loop]
%c_adr = getelementptr i8, i8* %str, i64 %i.0
%c = load i8, i8* %c_adr
%done = icmp eq i8 %c, 0
br i1 %done, label %exit, label %loop
loop:
%i.new = add i64 %i.0, 1
br label %loop_start
exit:
ret i64 %i.0
}
define i8* @__mapgetkey(i8* %mapname, i8* %key, i8* %def)
{
; todo
ret i8* %def
}
define i8* @addstringchar(i8* %0, i8* %1)
{
; todo
ret i8* %0
}
define i8* @registerid(i8* %id_id)
{
%id_idname = call i8* @__mapgetkey(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @str.01, i64 0, i64 0), i8* %id_id, i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @str.011, i64 0, i64 0))
%1 = call i64 @__strlen(i8* %id_idname)
%11 = icmp ne i64 %1, 0
br i1 %11, label %lbl1, label %lbl11
lbl1:
ret i8* %id_idname
lbl11:
%id_idnamea = call i8* @__add(i8* noundef getelementptr inbounds ([14 x i8], [14 x i8]* @str.0111, i64 0, i64 0), i8* %id_id)
ret i8* %id_idnamea
}
define i64 @main() {
%res = call i64 @__strlen(i8* @str.01)
ret i64 %res
}
@str.01 = internal constant [11 x i8] c"REGISTERID\00"
@str.011 = internal constant [0 x i8] c""
@str.0111 = internal constant [3 x i8] c"id_"