From dbd961bdd59189401003818c650bb4c05f9af205 Mon Sep 17 00:00:00 2001 From: aht2nguy <aht2nguy@student.cs.uwaterloo.ca> Date: Sun, 20 May 2018 12:33:43 -0400 Subject: [PATCH] all the .a .s. .o --- src/Makefile | 6 +-- src/main.o | Bin 676 -> 1424 bytes src/main.s | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 4 deletions(-) diff --git a/src/Makefile b/src/Makefile index 1cb6bbd..042bde1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -46,11 +46,9 @@ task-descriptor.o: task-descriptor.s bwio.o: bwio.s $(AS) $(ASFLAGS) -o bwio.o bwio.s -clean: - -rm -f *.elf *.s *.o *.a *~ ../../lib/*.a main.elf: main.o scheduler.o task-descriptor.o scheduler.o bwio.o - $(LD) $(LDFLAGS) -o $@ main.o scheduler.o task-descriptor.o scheduler.o bwio.o -lgcc #-lbwio + $(LD) $(LDFLAGS) -o $@ main.o scheduler.o task-descriptor.o scheduler.o bwio.o -lgcc clean: - -rm -f *.elf *.s *.o *.map \ No newline at end of file + -rm -f *.elf *.s *.o diff --git a/src/main.o b/src/main.o index a1e35354b3bb9a576f984e954fef13f5a77ef7ff..5a9f227b9916dfedff9f54073ec4a82cd1f66939 100644 GIT binary patch literal 1424 zcmah}O-~b16um=RK`J_unpBIi3ruRn$w*izD++-ctzrTsE==mQ9c5xaOqnPc6HR1c z-1rL!vvlFY_zPJ016Ufv0!o^ou1r{q=giELu_XGE_s%`%-gn>adw2SBx;Ue0nkC`T zBqy38!2OVn`C3l;rB?<vydC*+<y-t?u`Tb{_I$n-@V?F4?YrK3r{8<GoswiHttUI0 zc)JtkdM9SS-Hz$r&aZ=mAJoh)P3c2jy1sd<Eg#nQijlf#M(c><Tpj22sd~ctSP%6S z>NvqXUH%mOL-1$ePfMo58pQN=bu-zS6!}gqr3ZS{*3C>uGheqEM>{5SyVpg&a&Jt$ z9d*`YyS41NMrAyE!>-ku{R61`P|H_b=c(m7jYo7G>V;;rT3)d!7N(}gv$?{Zg-h8n z!!$-kjHQ*jYn6d+E5Jo%wd|VV+RLsORm-)+C@(FE(P{>y(yZ6*hTC<C|DYG(<MSU2 zW7q>Dk>-epdIoqrv<bO{$Re;0li`e`eKF)QAjgA9E^<XL!)E;d;>>VQ50HcTCVVSc zRDIV#Rc?Abkij6tUzP7Pm^zb=PjKY@h+t81M0F-TtJpLFk$1rN<+(a0c{JZ=I4o#t zsC<emjOuaud7yM+?5|%!9zB6P?%$o-({m&~AxY)*G2z#m`lBV}4D68zKL>j`<Qnqv zZQg|ZX#QhzKJ@Vp1`$6Dq|F@Ud|x%F2mdXBLVgpI`O}z;UjTZTSxoZ#zzxh=$fa&M z4WlB%==kE4$>l1SQ5mlCqhiws-<Fi0J!v@&_o0*u#o5Vxu{1j~GdDe7n$J%br%U2A z9M`dG&U0H9twyzG`>An^-&dJaBJ;3`_lS6G)<DkRb{56I0H%9IUJ-Fot3))y7BGVb T+XHH7o_+F@BtSG{8c6*&?g#AI delta 226 zcmbQhy@Yjwg2)jD2rvOt8VsBaYz&hV81p7yV)PP{1`09)F&jh;g9*drIwmn8MW`?{ zs<1kc%K^k_!a7jZObFHIn8ZXu7J|%%ff67?XmTTy@MIol0oFDk&vvpRvofy^P+tL% s2Qry`av-xb>l~m6$K*ohKt`s?o0%0QfD&-P%)rXPkeis9r<cqC0LSGR%>V!Z diff --git a/src/main.s b/src/main.s index 6cff729..1db42fb 100644 --- a/src/main.s +++ b/src/main.s @@ -1,4 +1,16 @@ .file "main.c" + .text + .align 2 + .global kerent + .type kerent, %function +kerent: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + ldmfd sp, {fp, sp, pc} + .size kerent, .-kerent .section .rodata .align 2 .LC0: @@ -9,4 +21,110 @@ .align 2 .LC2: .ascii "kerxit.c: Goodbye\012\015\000" + .text + .align 2 + .global kerxit + .type kerxit, %function +kerxit: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {sl, fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + ldr sl, .L6 +.L5: + add sl, pc, sl + str r0, [fp, #-20] + str r1, [fp, #-24] + mov r0, #1 + ldr r3, .L6+4 + add r3, sl, r3 + mov r1, r3 + bl bwprintf(PLT) + mov r0, #1 + ldr r3, .L6+8 + add r3, sl, r3 + mov r1, r3 + bl bwprintf(PLT) + bl kerent(PLT) + mov r0, #1 + ldr r3, .L6+12 + add r3, sl, r3 + mov r1, r3 + bl bwprintf(PLT) + sub sp, fp, #16 + ldmfd sp, {sl, fp, sp, pc} +.L7: + .align 2 +.L6: + .word _GLOBAL_OFFSET_TABLE_-(.L5+8) + .word .LC0(GOTOFF) + .word .LC1(GOTOFF) + .word .LC2(GOTOFF) + .size kerxit, .-kerxit + .align 2 + .global initialize + .type initialize, %function +initialize: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #4 + str r0, [fp, #-16] + ldmfd sp, {r3, fp, sp, pc} + .size initialize, .-initialize + .align 2 + .global handle + .type handle, %function +handle: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + str r0, [fp, #-16] + str r1, [fp, #-20] + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size handle, .-handle + .align 2 + .global main + .type main, %function +main: + @ args = 0, pretend = 0, frame = 20 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + stmfd sp!, {fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #20 + str r0, [fp, #-28] + str r1, [fp, #-32] + ldr r0, [fp, #-24] + bl initialize(PLT) + mov r3, #0 + str r3, [fp, #-16] + b .L13 +.L14: + ldr r0, [fp, #-24] + ldr r1, [fp, #-20] + bl kerxit(PLT) + ldr r0, [fp, #-24] + ldr r1, [fp, #-20] + bl handle(PLT) + ldr r3, [fp, #-16] + add r3, r3, #1 + str r3, [fp, #-16] +.L13: + ldr r3, [fp, #-16] + cmp r3, #3 + ble .L14 + mov r3, #0 + mov r0, r3 + sub sp, fp, #12 + ldmfd sp, {fp, sp, pc} + .size main, .-main .ident "GCC: (GNU) 4.0.2" -- GitLab