/* memset.S */12#include <asm/linkage.h>34#if defined(__H8300H__)5.h8300h6#endif7#if defined(__H8300S__)8.h8300s9#endif10.text1112.global SYMBOL_NAME(memset)1314;;void *memset(*ptr, int c, size_t count)15;; ptr = er016;; c = er1(r1l)17;; count = er218SYMBOL_NAME_LABEL(memset)19btst #0,r0l20beq 2f2122;; odd address231:24mov.b r1l,@er025adds #1,er026dec.l #1,er227beq 6f2829;; even address302:31mov.l er2,er332cmp.l #4,er233blo 4f34;; count>=4 -> count/435#if defined(__H8300H__)36shlr.l er237shlr.l er238#endif39#if defined(__H8300S__)40shlr.l #2,er241#endif42;; byte -> long43mov.b r1l,r1h44mov.w r1,e1453:46mov.l er1,@er047adds #4,er048dec.l #1,er249bne 3b504:51;; count % 452and.b #3,r3l53beq 6f545:55mov.b r1l,@er056adds #1,er057dec.b r3l58bne 5b596:60rts616263