<commit_before>    .extern    viewport

    .globl	M3D_transform
    .type	M3D_transform, @function
M3D_transform:
    movm.l %d2-%d5/%a2-%a5,-(%sp)

    move.l 36(%sp),%a2             	| a2 = &transform

    tst.w (%a2)
    jeq .L45

    move.l %a2,-(%sp)
    jsr M3D_buildMat3D
    addq.l #4,%sp

.L45:
    move.l 2(%a2),%a0               | a0 = &translation
    movem.w (%a0)+,%a3-%a5          | a3 = translation.x   a4 = translation.y   a5 = translation.z

    move.l 40(%sp),%a0              | a0 = src
    move.l 44(%sp),%a1              | a1 = dest
    lea    10(%a2),%a2              | a2 = &(transform.mat)
    move.w 50(%sp),%d5              | d5 = numv

    subq.w #1,%d5
    jmi    .L50

.L48:
    movem.w (%a0)+,%d2-%d4          | d2 = sx        d3 = sy        d4 = sz

    move.w (%a2)+,%d0               | d0 = mat.a.x
    muls.w %d2,%d0                  | d0 = mat.a.x * sx
    move.w (%a2)+,%d1               | d1 = mat.a.y
    muls.w %d3,%d1                  | d1 = mat.a.y * sy
    add.l %d1,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy)
    move.w (%a2)+,%d1               | d1 = mat.a.z
    muls.w %d4,%d1                  | d1 = mat.a.z * sz
    add.l %d1,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz)
    asr.l #6,%d0
    add.w %a3,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz) + translation.x
    move.w %d0,(%a1)+               | dest++ = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz) + translation.x

    move.w (%a2)+,%d0               | d0 = mat.b.x
    muls.w %d2,%d0                  | d0 = mat.b.x * sx
    move.w (%a2)+,%d1               | d1 = mat.b.y
    muls.w %d3,%d1                  | d1 = mat.b.y * sy
    add.l %d1,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy)
    move.w (%a2)+,%d1               | d1 = mat.b.z
    muls.w %d4,%d1                  | d1 = mat.b.z * sz
    add.l %d1,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz)
    asr.l #6,%d0
    add.w %a4,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz) + translation.y
    move.w %d0,(%a1)+               | dest++ = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz) + translation.y

    muls.w (%a2)+,%d2               | d2 = mat.c.x * sx
    muls.w (%a2)+,%d3               | d3 = mat.c.y * sy
    add.l %d3,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy)
    muls.w (%a2)+,%d4               | d4 = mat.c.z * sz
    add.l %d4,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz)
    asr.l #6,%d2
    add.w %a5,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz) + translation.z
    move.w %d2,(%a1)+               | dest++ = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz) + translation.z

    lea -18(%a2),%a2                | a2 = &(transform.mat)
    dbra %d5,.L48

.L50:
    movem.l (%sp)+,%d2-%d5/%a2-%a5
    rts


    .globl    M3D_project_f16
    .type    M3D_project_f16, @function
M3D_project_f16:
    movem.l %d2-%d7/%a2-%a3,-(%sp)

    move.l 36(%sp),%a0                      | a0 = s = src
    move.l 40(%sp),%a1                      | a1 = d = dst
    move.w 46(%sp),%d7                      | d7 = i = numv

    subq.w #1,%d7
    jmi .L42

    lea context3D,%a2

    move.w (%a2)+,%d5
    lsl.w #5,%d5                            | d5 = centerX = intToFix16(viewport.x / 2)<commit_msg>jump label fix<commit_after>    .extern    viewport

    .globl	M3D_transform
    .type	M3D_transform, @function
M3D_transform:
    movm.l %d2-%d5/%a2-%a5,-(%sp)

    move.l 36(%sp),%a2             	| a2 = &transform

    tst.w (%a2)
    jeq .L45

    move.l %a2,-(%sp)
    jsr M3D_buildMat3D
    addq.l #4,%sp

.L45:
    move.l 2(%a2),%a0               | a0 = &translation
    movem.w (%a0)+,%a3-%a5          | a3 = translation.x   a4 = translation.y   a5 = translation.z

    move.l 40(%sp),%a0              | a0 = src
    move.l 44(%sp),%a1              | a1 = dest
    lea    10(%a2),%a2              | a2 = &(transform.mat)
    move.w 50(%sp),%d5              | d5 = numv

    subq.w #1,%d5
    jmi    .L50

.L48:
    movem.w (%a0)+,%d2-%d4          | d2 = sx        d3 = sy        d4 = sz

    move.w (%a2)+,%d0               | d0 = mat.a.x
    muls.w %d2,%d0                  | d0 = mat.a.x * sx
    move.w (%a2)+,%d1               | d1 = mat.a.y
    muls.w %d3,%d1                  | d1 = mat.a.y * sy
    add.l %d1,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy)
    move.w (%a2)+,%d1               | d1 = mat.a.z
    muls.w %d4,%d1                  | d1 = mat.a.z * sz
    add.l %d1,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz)
    asr.l #6,%d0
    add.w %a3,%d0                   | d0 = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz) + translation.x
    move.w %d0,(%a1)+               | dest++ = (mat.a.x * sx) + (mat.a.y * sy) + (mat.a.z * sz) + translation.x

    move.w (%a2)+,%d0               | d0 = mat.b.x
    muls.w %d2,%d0                  | d0 = mat.b.x * sx
    move.w (%a2)+,%d1               | d1 = mat.b.y
    muls.w %d3,%d1                  | d1 = mat.b.y * sy
    add.l %d1,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy)
    move.w (%a2)+,%d1               | d1 = mat.b.z
    muls.w %d4,%d1                  | d1 = mat.b.z * sz
    add.l %d1,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz)
    asr.l #6,%d0
    add.w %a4,%d0                   | d0 = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz) + translation.y
    move.w %d0,(%a1)+               | dest++ = (mat.b.x * sx) + (mat.b.y * sy) + (mat.b.z * sz) + translation.y

    muls.w (%a2)+,%d2               | d2 = mat.c.x * sx
    muls.w (%a2)+,%d3               | d3 = mat.c.y * sy
    add.l %d3,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy)
    muls.w (%a2)+,%d4               | d4 = mat.c.z * sz
    add.l %d4,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz)
    asr.l #6,%d2
    add.w %a5,%d2                   | d2 = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz) + translation.z
    move.w %d2,(%a1)+               | dest++ = (mat.c.x * sx) + (mat.c.y * sy) + (mat.c.z * sz) + translation.z

    lea -18(%a2),%a2                | a2 = &(transform.mat)
    dbra %d5,.L48

.L50:
    movem.l (%sp)+,%d2-%d5/%a2-%a5
    rts


    .globl    M3D_project_f16
    .type    M3D_project_f16, @function
M3D_project_f16:
    movem.l %d2-%d7/%a2-%a3,-(%sp)

    move.l 36(%sp),%a0                      | a0 = s = src
    move.l 40(%sp),%a1                      | a1 = d = dst
    move.w 46(%sp),%d7                      | d7 = i = numv

    subq.w #1,%d7
    jmi .L34

    lea context3D,%a2

    move.w (%a2)+,%d5
    lsl.w #5,%d5                            | d5 = centerX = intToFix16(viewport.x / 2)
{'fraction_non_alphanumeric': 0.1996194936338358, 'fraction_numerical': 0.057368652129372165, 'mean_word_length': 1.1592417061611375, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3573902', 'n_tokens_mistral': 3278, 'n_tokens_neox': 3077, 'n_words': 595}