Conversion and copy stencils#
float_int#
STENCIL void float_int(int arg1) {
// Conversion of int to float
result_float((float)arg1);
}
arm64#
0000000000000000 <float_int>:
0: 1e220000 scvtf s0, w0
4: 14000000 b 0 <result_float>
4: R_AARCH64_JUMP26 result_float
armv6#
00000000 <float_int>:
0: ee000a10 vmov s0, r0
4: eeb80ac0 vcvt.f32.s32 s0, s0
8: eafffffe b 0 <result_float>
8: R_ARM_JUMP24 result_float
armv7#
00000000 <float_int>:
0: ee000a10 vmov s0, r0
4: eeb80ac0 vcvt.f32.s32 s0, s0
8: eafffffe b 0 <result_float>
8: R_ARM_JUMP24 result_float
armv7mthumb#
00000000 <float_int>:
0: ee00 0a10 vmov s0, r0
4: eeb8 0ac0 vcvt.f32.s32 s0, s0
8: f7ff bffe b.w 0 <result_float>
8: R_ARM_THM_JUMP24 result_float
armv7mthumb_fpv5#
00000000 <float_int>:
0: ee00 0a10 vmov s0, r0
4: eeb8 0ac0 vcvt.f32.s32 s0, s0
8: f7ff bffe b.w 0 <result_float>
8: R_ARM_THM_JUMP24 result_float
armv7thumb#
00000000 <float_int>:
0: ee00 0a10 vmov s0, r0
4: eeb8 0ac0 vcvt.f32.s32 s0, s0
8: f7ff bffe b.w 0 <result_float>
8: R_ARM_THM_JUMP24 result_float
armv81mthumb#
00000000 <float_int>:
0: ee00 0a10 vmov s0, r0
4: eeb8 0ac0 vcvt.f32.s32 s0, s0
8: f7ff bffe b.w 0 <result_float>
8: R_ARM_THM_JUMP24 result_float
riscv32#
00000000 <float_int>:
0: d0057553 fcvt.s.w fa0,a0
4: 00000317 auipc t1,0x0
4: R_RISCV_CALL_PLT result_float
8: 00030067 jr t1 # 4 <float_int+0x4>
riscv64#
0000000000000000 <float_int>:
0: d0057553 fcvt.s.w fa0,a0
4: 00000317 auipc t1,0x0
4: R_RISCV_CALL_PLT result_float
8: 00030067 jr t1 # 4 <float_int+0x4>
tricore#
00000000 <float_int>:
0: 4b 04 41 41 itof %d4,%d4
4: 1d 00 00 00 j 4 <float_int+0x4>
4: R_TRICORE_24REL result_float
x86#
00000000 <float_int>:
0: db 44 24 04 fildl 0x4(%esp)
4: d9 5c 24 04 fstps 0x4(%esp)
8: e9 fc ff ff ff jmp 9 <float_int+0x9>
9: R_386_PC32 result_float
x86_64#
0000000000000000 <float_int>:
0: 66 0f ef c0 pxor %xmm0,%xmm0
4: f3 0f 2a c7 cvtsi2ss %edi,%xmm0
8: e9 00 00 00 00 jmp d <.LC3+0x1>
9: R_X86_64_PLT32 result_float-0x4
int_float#
STENCIL void int_float(float arg1) {
// Conversion of float to int
result_int((int)arg1);
}
arm64#
0000000000000000 <int_float>:
0: 1e380000 fcvtzs w0, s0
4: 14000000 b 0 <result_int>
4: R_AARCH64_JUMP26 result_int
armv6#
00000000 <int_float>:
0: eefd7ac0 vcvt.s32.f32 s15, s0
4: ee170a90 vmov r0, s15
8: eafffffe b 0 <result_int>
8: R_ARM_JUMP24 result_int
armv7#
00000000 <int_float>:
0: eefd7ac0 vcvt.s32.f32 s15, s0
4: ee170a90 vmov r0, s15
8: eafffffe b 0 <result_int>
8: R_ARM_JUMP24 result_int
armv7mthumb#
00000000 <int_float>:
0: eefd 7ac0 vcvt.s32.f32 s15, s0
4: ee17 0a90 vmov r0, s15
8: f7ff bffe b.w 0 <result_int>
8: R_ARM_THM_JUMP24 result_int
armv7mthumb_fpv5#
00000000 <int_float>:
0: eefd 7ac0 vcvt.s32.f32 s15, s0
4: ee17 0a90 vmov r0, s15
8: f7ff bffe b.w 0 <result_int>
8: R_ARM_THM_JUMP24 result_int
armv7thumb#
00000000 <int_float>:
0: eefd 7ac0 vcvt.s32.f32 s15, s0
4: ee17 0a90 vmov r0, s15
8: f7ff bffe b.w 0 <result_int>
8: R_ARM_THM_JUMP24 result_int
armv81mthumb#
00000000 <int_float>:
0: eefd 7ac0 vcvt.s32.f32 s15, s0
4: ee17 0a90 vmov r0, s15
8: f7ff bffe b.w 0 <result_int>
8: R_ARM_THM_JUMP24 result_int
riscv32#
00000000 <int_float>:
0: c0051553 fcvt.w.s a0,fa0,rtz
4: 00000317 auipc t1,0x0
4: R_RISCV_CALL_PLT result_int
8: 00030067 jr t1 # 4 <int_float+0x4>
riscv64#
0000000000000000 <int_float>:
0: c0051553 fcvt.w.s a0,fa0,rtz
4: 2501 sext.w a0,a0
6: 00000317 auipc t1,0x0
6: R_RISCV_CALL_PLT result_int
a: 00030067 jr t1 # 6 <int_float+0x6>
tricore#
00000000 <int_float>:
0: 4b 04 31 41 ftoiz %d4,%d4
4: 1d 00 00 00 j 4 <int_float+0x4>
4: R_TRICORE_24REL result_int
x86#
00000000 <int_float>:
0: 83 ec 1c sub $0x1c,%esp
3: d9 7c 24 0e fnstcw 0xe(%esp)
7: d9 44 24 20 flds 0x20(%esp)
b: 0f b7 44 24 0e movzwl 0xe(%esp),%eax
10: 80 cc 0c or $0xc,%ah
13: 66 89 44 24 0c mov %ax,0xc(%esp)
18: d9 6c 24 0c fldcw 0xc(%esp)
1c: db 5c 24 20 fistpl 0x20(%esp)
20: d9 6c 24 0e fldcw 0xe(%esp)
24: 83 c4 1c add $0x1c,%esp
27: e9 fc ff ff ff jmp 28 <int_float+0x28>
28: R_386_PC32 result_int
x86_64#
0000000000000000 <int_float>:
0: f3 0f 2c f8 cvttss2si %xmm0,%edi
4: e9 00 00 00 00 jmp 9 <.LC2+0x1>
5: R_X86_64_PLT32 result_int-0x4
float_intarr#
STENCIL void float_intarr(void) {
// Element-wise conversion of int array to float
aux_arr_float_int(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_float_ref();
}
arm64#
0000000000000000 <float_intarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <float_intarr>
20: R_AARCH64_CALL26 aux_arr_float_int
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_float_ref>
28: R_AARCH64_JUMP26 result_float_ref
armv6#
00000000 <float_intarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <float_intarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <float_intarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <float_intarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <float_intarr>
14: R_ARM_CALL aux_arr_float_int
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_float_ref>
1c: R_ARM_JUMP24 result_float_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <float_intarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <float_intarr>
20: R_ARM_CALL aux_arr_float_int
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_float_ref>
28: R_ARM_JUMP24 result_float_ref
armv7mthumb#
00000000 <float_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_intarr+0x20>)
a: f7ff fffe bl 0 <float_intarr>
a: R_ARM_THM_CALL aux_arr_float_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <float_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_intarr+0x20>)
a: f7ff fffe bl 0 <float_intarr>
a: R_ARM_THM_CALL aux_arr_float_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <float_intarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <float_intarr>
1c: R_ARM_THM_CALL aux_arr_float_int
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_float_ref>
24: R_ARM_THM_JUMP24 result_float_ref
armv81mthumb#
00000000 <float_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_intarr+0x20>)
a: f7ff fffe bl 0 <float_intarr>
a: R_ARM_THM_CALL aux_arr_float_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <float_intarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <float_intarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_float_int
20: 000080e7 jalr ra # 1c <float_intarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_float_ref
2c: 00030067 jr t1 # 28 <float_intarr+0x28>
riscv64#
0000000000000000 <float_intarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <float_intarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_float_int
20: 000080e7 jalr ra # 1c <float_intarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_float_ref
2c: 00030067 jr t1 # 28 <float_intarr+0x28>
tricore#
00000000 <float_intarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <float_intarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <float_intarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <float_intarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <float_intarr+0x18>
18: R_TRICORE_24REL aux_arr_float_int
1c: 1d 00 00 00 j 1c <float_intarr+0x1c>
1c: R_TRICORE_24REL result_float_ref
x86#
00000000 <float_intarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <float_intarr+0x14>
14: R_386_PC32 aux_arr_float_int
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <float_intarr+0x1c>
1c: R_386_PC32 result_float_ref
x86_64#
0000000000000000 <float_intarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <float_intarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <float_intarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <float_intarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <float_intarr+0x20>
1c: R_X86_64_PLT32 aux_arr_float_int-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_float_ref-0x4
int_floatarr#
STENCIL void int_floatarr(void) {
// Element-wise conversion of float array to int
aux_arr_int_float(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_int_ref();
}
arm64#
0000000000000000 <int_floatarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <int_floatarr>
20: R_AARCH64_CALL26 aux_arr_int_float
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_int_ref>
28: R_AARCH64_JUMP26 result_int_ref
armv6#
00000000 <int_floatarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <int_floatarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <int_floatarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <int_floatarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <int_floatarr>
14: R_ARM_CALL aux_arr_int_float
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_int_ref>
1c: R_ARM_JUMP24 result_int_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <int_floatarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <int_floatarr>
20: R_ARM_CALL aux_arr_int_float
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_int_ref>
28: R_ARM_JUMP24 result_int_ref
armv7mthumb#
00000000 <int_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_floatarr+0x20>)
a: f7ff fffe bl 0 <int_floatarr>
a: R_ARM_THM_CALL aux_arr_int_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <int_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_floatarr+0x20>)
a: f7ff fffe bl 0 <int_floatarr>
a: R_ARM_THM_CALL aux_arr_int_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <int_floatarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <int_floatarr>
1c: R_ARM_THM_CALL aux_arr_int_float
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_int_ref>
24: R_ARM_THM_JUMP24 result_int_ref
armv81mthumb#
00000000 <int_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_floatarr+0x20>)
a: f7ff fffe bl 0 <int_floatarr>
a: R_ARM_THM_CALL aux_arr_int_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <int_floatarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <int_floatarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_int_float
20: 000080e7 jalr ra # 1c <int_floatarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <int_floatarr+0x28>
riscv64#
0000000000000000 <int_floatarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <int_floatarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_int_float
20: 000080e7 jalr ra # 1c <int_floatarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <int_floatarr+0x28>
tricore#
00000000 <int_floatarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <int_floatarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <int_floatarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <int_floatarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <int_floatarr+0x18>
18: R_TRICORE_24REL aux_arr_int_float
1c: 1d 00 00 00 j 1c <int_floatarr+0x1c>
1c: R_TRICORE_24REL result_int_ref
x86#
00000000 <int_floatarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <int_floatarr+0x14>
14: R_386_PC32 aux_arr_int_float
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <int_floatarr+0x1c>
1c: R_386_PC32 result_int_ref
x86_64#
0000000000000000 <int_floatarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <int_floatarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <int_floatarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <int_floatarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <int_floatarr+0x20>
1c: R_X86_64_PLT32 aux_arr_int_float-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_int_ref-0x4
bool_intarr#
STENCIL void bool_intarr(void) {
// Element-wise conversion of int array to bool
aux_arr_bool_int(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_int_ref();
}
arm64#
0000000000000000 <bool_intarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <bool_intarr>
20: R_AARCH64_CALL26 aux_arr_bool_int
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_int_ref>
28: R_AARCH64_JUMP26 result_int_ref
armv6#
00000000 <bool_intarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <bool_intarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <bool_intarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <bool_intarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <bool_intarr>
14: R_ARM_CALL aux_arr_bool_int
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_int_ref>
1c: R_ARM_JUMP24 result_int_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <bool_intarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <bool_intarr>
20: R_ARM_CALL aux_arr_bool_int
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_int_ref>
28: R_ARM_JUMP24 result_int_ref
armv7mthumb#
00000000 <bool_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_intarr+0x20>)
a: f7ff fffe bl 0 <bool_intarr>
a: R_ARM_THM_CALL aux_arr_bool_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <bool_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_intarr+0x20>)
a: f7ff fffe bl 0 <bool_intarr>
a: R_ARM_THM_CALL aux_arr_bool_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <bool_intarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <bool_intarr>
1c: R_ARM_THM_CALL aux_arr_bool_int
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_int_ref>
24: R_ARM_THM_JUMP24 result_int_ref
armv81mthumb#
00000000 <bool_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_intarr+0x20>)
a: f7ff fffe bl 0 <bool_intarr>
a: R_ARM_THM_CALL aux_arr_bool_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <bool_intarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <bool_intarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_bool_int
20: 000080e7 jalr ra # 1c <bool_intarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <bool_intarr+0x28>
riscv64#
0000000000000000 <bool_intarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <bool_intarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_bool_int
20: 000080e7 jalr ra # 1c <bool_intarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <bool_intarr+0x28>
tricore#
00000000 <bool_intarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <bool_intarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <bool_intarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <bool_intarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <bool_intarr+0x18>
18: R_TRICORE_24REL aux_arr_bool_int
1c: 1d 00 00 00 j 1c <bool_intarr+0x1c>
1c: R_TRICORE_24REL result_int_ref
x86#
00000000 <bool_intarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <bool_intarr+0x14>
14: R_386_PC32 aux_arr_bool_int
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <bool_intarr+0x1c>
1c: R_386_PC32 result_int_ref
x86_64#
0000000000000000 <bool_intarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <bool_intarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <bool_intarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <bool_intarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <bool_intarr+0x20>
1c: R_X86_64_PLT32 aux_arr_bool_int-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_int_ref-0x4
bool_floatarr#
STENCIL void bool_floatarr(void) {
// Element-wise conversion of float array to bool
aux_arr_bool_float(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_int_ref();
}
arm64#
0000000000000000 <bool_floatarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <bool_floatarr>
20: R_AARCH64_CALL26 aux_arr_bool_float
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_int_ref>
28: R_AARCH64_JUMP26 result_int_ref
armv6#
00000000 <bool_floatarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <bool_floatarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <bool_floatarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <bool_floatarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <bool_floatarr>
14: R_ARM_CALL aux_arr_bool_float
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_int_ref>
1c: R_ARM_JUMP24 result_int_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <bool_floatarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <bool_floatarr>
20: R_ARM_CALL aux_arr_bool_float
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_int_ref>
28: R_ARM_JUMP24 result_int_ref
armv7mthumb#
00000000 <bool_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_floatarr+0x20>)
a: f7ff fffe bl 0 <bool_floatarr>
a: R_ARM_THM_CALL aux_arr_bool_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <bool_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_floatarr+0x20>)
a: f7ff fffe bl 0 <bool_floatarr>
a: R_ARM_THM_CALL aux_arr_bool_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <bool_floatarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <bool_floatarr>
1c: R_ARM_THM_CALL aux_arr_bool_float
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_int_ref>
24: R_ARM_THM_JUMP24 result_int_ref
armv81mthumb#
00000000 <bool_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <bool_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <bool_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <bool_floatarr+0x20>)
a: f7ff fffe bl 0 <bool_floatarr>
a: R_ARM_THM_CALL aux_arr_bool_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <bool_floatarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <bool_floatarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_bool_float
20: 000080e7 jalr ra # 1c <bool_floatarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <bool_floatarr+0x28>
riscv64#
0000000000000000 <bool_floatarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <bool_floatarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_bool_float
20: 000080e7 jalr ra # 1c <bool_floatarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <bool_floatarr+0x28>
tricore#
00000000 <bool_floatarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <bool_floatarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <bool_floatarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <bool_floatarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <bool_floatarr+0x18>
18: R_TRICORE_24REL aux_arr_bool_float
1c: 1d 00 00 00 j 1c <bool_floatarr+0x1c>
1c: R_TRICORE_24REL result_int_ref
x86#
00000000 <bool_floatarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <bool_floatarr+0x14>
14: R_386_PC32 aux_arr_bool_float
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <bool_floatarr+0x1c>
1c: R_386_PC32 result_int_ref
x86_64#
0000000000000000 <bool_floatarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <bool_floatarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <bool_floatarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <bool_floatarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <bool_floatarr+0x20>
1c: R_X86_64_PLT32 aux_arr_bool_float-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_int_ref-0x4
float_bytearr#
STENCIL void float_bytearr(void) {
// Element-wise conversion of byte array to float
aux_arr_float_byte(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_float_ref();
}
arm64#
0000000000000000 <float_bytearr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <float_bytearr>
20: R_AARCH64_CALL26 aux_arr_float_byte
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_float_ref>
28: R_AARCH64_JUMP26 result_float_ref
armv6#
00000000 <float_bytearr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <float_bytearr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <float_bytearr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <float_bytearr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <float_bytearr>
14: R_ARM_CALL aux_arr_float_byte
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_float_ref>
1c: R_ARM_JUMP24 result_float_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <float_bytearr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <float_bytearr>
20: R_ARM_CALL aux_arr_float_byte
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_float_ref>
28: R_ARM_JUMP24 result_float_ref
armv7mthumb#
00000000 <float_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_bytearr+0x20>)
a: f7ff fffe bl 0 <float_bytearr>
a: R_ARM_THM_CALL aux_arr_float_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <float_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_bytearr+0x20>)
a: f7ff fffe bl 0 <float_bytearr>
a: R_ARM_THM_CALL aux_arr_float_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <float_bytearr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <float_bytearr>
1c: R_ARM_THM_CALL aux_arr_float_byte
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_float_ref>
24: R_ARM_THM_JUMP24 result_float_ref
armv81mthumb#
00000000 <float_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <float_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <float_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <float_bytearr+0x20>)
a: f7ff fffe bl 0 <float_bytearr>
a: R_ARM_THM_CALL aux_arr_float_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_float_ref>
12: R_ARM_THM_JUMP24 result_float_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <float_bytearr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <float_bytearr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_float_byte
20: 000080e7 jalr ra # 1c <float_bytearr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_float_ref
2c: 00030067 jr t1 # 28 <float_bytearr+0x28>
riscv64#
0000000000000000 <float_bytearr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <float_bytearr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_float_byte
20: 000080e7 jalr ra # 1c <float_bytearr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_float_ref
2c: 00030067 jr t1 # 28 <float_bytearr+0x28>
tricore#
00000000 <float_bytearr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <float_bytearr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <float_bytearr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <float_bytearr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <float_bytearr+0x18>
18: R_TRICORE_24REL aux_arr_float_byte
1c: 1d 00 00 00 j 1c <float_bytearr+0x1c>
1c: R_TRICORE_24REL result_float_ref
x86#
00000000 <float_bytearr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <float_bytearr+0x14>
14: R_386_PC32 aux_arr_float_byte
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <float_bytearr+0x1c>
1c: R_386_PC32 result_float_ref
x86_64#
0000000000000000 <float_bytearr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <float_bytearr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <float_bytearr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <float_bytearr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <float_bytearr+0x20>
1c: R_X86_64_PLT32 aux_arr_float_byte-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_float_ref-0x4
int_bytearr#
STENCIL void int_bytearr(void) {
// Element-wise conversion of byte array to int
aux_arr_int_byte(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_int_ref();
}
arm64#
0000000000000000 <int_bytearr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <int_bytearr>
20: R_AARCH64_CALL26 aux_arr_int_byte
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_int_ref>
28: R_AARCH64_JUMP26 result_int_ref
armv6#
00000000 <int_bytearr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <int_bytearr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <int_bytearr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <int_bytearr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <int_bytearr>
14: R_ARM_CALL aux_arr_int_byte
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_int_ref>
1c: R_ARM_JUMP24 result_int_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <int_bytearr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <int_bytearr>
20: R_ARM_CALL aux_arr_int_byte
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_int_ref>
28: R_ARM_JUMP24 result_int_ref
armv7mthumb#
00000000 <int_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_bytearr+0x20>)
a: f7ff fffe bl 0 <int_bytearr>
a: R_ARM_THM_CALL aux_arr_int_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <int_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_bytearr+0x20>)
a: f7ff fffe bl 0 <int_bytearr>
a: R_ARM_THM_CALL aux_arr_int_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <int_bytearr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <int_bytearr>
1c: R_ARM_THM_CALL aux_arr_int_byte
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_int_ref>
24: R_ARM_THM_JUMP24 result_int_ref
armv81mthumb#
00000000 <int_bytearr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <int_bytearr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <int_bytearr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <int_bytearr+0x20>)
a: f7ff fffe bl 0 <int_bytearr>
a: R_ARM_THM_CALL aux_arr_int_byte
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_int_ref>
12: R_ARM_THM_JUMP24 result_int_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <int_bytearr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <int_bytearr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_int_byte
20: 000080e7 jalr ra # 1c <int_bytearr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <int_bytearr+0x28>
riscv64#
0000000000000000 <int_bytearr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <int_bytearr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_int_byte
20: 000080e7 jalr ra # 1c <int_bytearr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_int_ref
2c: 00030067 jr t1 # 28 <int_bytearr+0x28>
tricore#
00000000 <int_bytearr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <int_bytearr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <int_bytearr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <int_bytearr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <int_bytearr+0x18>
18: R_TRICORE_24REL aux_arr_int_byte
1c: 1d 00 00 00 j 1c <int_bytearr+0x1c>
1c: R_TRICORE_24REL result_int_ref
x86#
00000000 <int_bytearr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <int_bytearr+0x14>
14: R_386_PC32 aux_arr_int_byte
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <int_bytearr+0x1c>
1c: R_386_PC32 result_int_ref
x86_64#
0000000000000000 <int_bytearr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <int_bytearr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <int_bytearr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <int_bytearr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <int_bytearr+0x20>
1c: R_X86_64_PLT32 aux_arr_int_byte-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_int_ref-0x4
byte_intarr#
STENCIL void byte_intarr(void) {
// Element-wise conversion of int array to byte with saturation, nan is converted to 0
aux_arr_byte_int(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_byte_ref();
}
arm64#
0000000000000000 <byte_intarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <byte_intarr>
20: R_AARCH64_CALL26 aux_arr_byte_int
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_byte_ref>
28: R_AARCH64_JUMP26 result_byte_ref
armv6#
00000000 <byte_intarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <byte_intarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <byte_intarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <byte_intarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <byte_intarr>
14: R_ARM_CALL aux_arr_byte_int
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_byte_ref>
1c: R_ARM_JUMP24 result_byte_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <byte_intarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <byte_intarr>
20: R_ARM_CALL aux_arr_byte_int
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_byte_ref>
28: R_ARM_JUMP24 result_byte_ref
armv7mthumb#
00000000 <byte_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_intarr+0x20>)
a: f7ff fffe bl 0 <byte_intarr>
a: R_ARM_THM_CALL aux_arr_byte_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <byte_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_intarr+0x20>)
a: f7ff fffe bl 0 <byte_intarr>
a: R_ARM_THM_CALL aux_arr_byte_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <byte_intarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <byte_intarr>
1c: R_ARM_THM_CALL aux_arr_byte_int
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_byte_ref>
24: R_ARM_THM_JUMP24 result_byte_ref
armv81mthumb#
00000000 <byte_intarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_intarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_intarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_intarr+0x20>)
a: f7ff fffe bl 0 <byte_intarr>
a: R_ARM_THM_CALL aux_arr_byte_int
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <byte_intarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <byte_intarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_byte_int
20: 000080e7 jalr ra # 1c <byte_intarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_byte_ref
2c: 00030067 jr t1 # 28 <byte_intarr+0x28>
riscv64#
0000000000000000 <byte_intarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <byte_intarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_byte_int
20: 000080e7 jalr ra # 1c <byte_intarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_byte_ref
2c: 00030067 jr t1 # 28 <byte_intarr+0x28>
tricore#
00000000 <byte_intarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <byte_intarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <byte_intarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <byte_intarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <byte_intarr+0x18>
18: R_TRICORE_24REL aux_arr_byte_int
1c: 1d 00 00 00 j 1c <byte_intarr+0x1c>
1c: R_TRICORE_24REL result_byte_ref
x86#
00000000 <byte_intarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <byte_intarr+0x14>
14: R_386_PC32 aux_arr_byte_int
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <byte_intarr+0x1c>
1c: R_386_PC32 result_byte_ref
x86_64#
0000000000000000 <byte_intarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <byte_intarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <byte_intarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <byte_intarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <byte_intarr+0x20>
1c: R_X86_64_PLT32 aux_arr_byte_int-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_byte_ref-0x4
byte_floatarr#
STENCIL void byte_floatarr(void) {
// Element-wise conversion of float array to byte with saturation, nan is converted to 0
aux_arr_byte_float(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1));
result_byte_ref();
}
arm64#
0000000000000000 <byte_floatarr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: b9400042 ldr w2, [x2]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <byte_floatarr>
20: R_AARCH64_CALL26 aux_arr_byte_float
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_byte_ref>
28: R_AARCH64_JUMP26 result_byte_ref
armv6#
00000000 <byte_floatarr>:
0: e59f3018 ldr r3, [pc, #24] @ 20 <byte_floatarr+0x20>
4: e92d4010 push {r4, lr}
8: e59f1014 ldr r1, [pc, #20] @ 24 <byte_floatarr+0x24>
c: e59f0014 ldr r0, [pc, #20] @ 28 <byte_floatarr+0x28>
10: e5932000 ldr r2, [r3]
14: ebfffffe bl 0 <byte_floatarr>
14: R_ARM_CALL aux_arr_byte_float
18: e8bd4010 pop {r4, lr}
1c: eafffffe b 0 <result_byte_ref>
1c: R_ARM_JUMP24 result_byte_ref
...
20: R_ARM_ABS32 ref_arg1
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7#
00000000 <byte_floatarr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg1
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg1
8: e92d4010 push {r4, lr}
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e5932000 ldr r2, [r3]
18: e3000000 movw r0, #0
18: R_ARM_MOVW_ABS_NC ref_arg0
1c: e3400000 movt r0, #0
1c: R_ARM_MOVT_ABS ref_arg0
20: ebfffffe bl 0 <byte_floatarr>
20: R_ARM_CALL aux_arr_byte_float
24: e8bd4010 pop {r4, lr}
28: eafffffe b 0 <result_byte_ref>
28: R_ARM_JUMP24 result_byte_ref
armv7mthumb#
00000000 <byte_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_floatarr+0x20>)
a: f7ff fffe bl 0 <byte_floatarr>
a: R_ARM_THM_CALL aux_arr_byte_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <byte_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_floatarr+0x20>)
a: f7ff fffe bl 0 <byte_floatarr>
a: R_ARM_THM_CALL aux_arr_byte_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <byte_floatarr>:
0: b508 push {r3, lr}
2: f240 0300 movw r3, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0300 movt r3, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: 681a ldr r2, [r3, #0]
1c: f7ff fffe bl 0 <byte_floatarr>
1c: R_ARM_THM_CALL aux_arr_byte_float
20: e8bd 4008 ldmia.w sp!, {r3, lr}
24: f7ff bffe b.w 0 <result_byte_ref>
24: R_ARM_THM_JUMP24 result_byte_ref
armv81mthumb#
00000000 <byte_floatarr>:
0: b508 push {r3, lr}
2: 4b05 ldr r3, [pc, #20] @ (18 <byte_floatarr+0x18>)
4: 4905 ldr r1, [pc, #20] @ (1c <byte_floatarr+0x1c>)
6: 681a ldr r2, [r3, #0]
8: 4805 ldr r0, [pc, #20] @ (20 <byte_floatarr+0x20>)
a: f7ff fffe bl 0 <byte_floatarr>
a: R_ARM_THM_CALL aux_arr_byte_float
e: e8bd 4008 ldmia.w sp!, {r3, lr}
12: f7ff bffe b.w 0 <result_byte_ref>
12: R_ARM_THM_JUMP24 result_byte_ref
16: bf00 nop
...
18: R_ARM_ABS32 ref_arg1
1c: R_ARM_ABS32 ref_out
20: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <byte_floatarr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg1
4: 00062603 lw a2,0(a2) # 0 <byte_floatarr>
4: R_RISCV_PCREL_LO12_I .L0
8: 1141 addi sp,sp,-16
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_byte_float
20: 000080e7 jalr ra # 1c <byte_floatarr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_byte_ref
2c: 00030067 jr t1 # 28 <byte_floatarr+0x28>
riscv64#
0000000000000000 <byte_floatarr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00062603 lw a2,0(a2) # 2 <byte_floatarr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_byte_float
20: 000080e7 jalr ra # 1c <byte_floatarr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_byte_ref
2c: 00030067 jr t1 # 28 <byte_floatarr+0x28>
tricore#
00000000 <byte_floatarr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg1
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <byte_floatarr>>
4: R_TRICORE_LO2 ref_arg1
8: 91 00 00 50 movh.a %a5,0
8: R_TRICORE_HIADJ ref_out
c: 91 00 00 40 movh.a %a4,0
c: R_TRICORE_HIADJ ref_arg0
10: d9 55 00 00 lea %a5,[%a5]0 <0 <byte_floatarr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <byte_floatarr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <byte_floatarr+0x18>
18: R_TRICORE_24REL aux_arr_byte_float
1c: 1d 00 00 00 j 1c <byte_floatarr+0x1c>
1c: R_TRICORE_24REL result_byte_ref
x86#
00000000 <byte_floatarr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg1
9: 68 00 00 00 00 push $0x0
a: R_386_32 ref_out
e: 68 00 00 00 00 push $0x0
f: R_386_32 ref_arg0
13: e8 fc ff ff ff call 14 <byte_floatarr+0x14>
14: R_386_PC32 aux_arr_byte_float
18: 83 c4 18 add $0x18,%esp
1b: e9 fc ff ff ff jmp 1c <byte_floatarr+0x1c>
1c: R_386_PC32 result_byte_ref
x86_64#
0000000000000000 <byte_floatarr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # b <byte_floatarr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 8b 10 mov (%rax),%edx
d: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 14 <byte_floatarr+0x14>
10: R_X86_64_PC32 ref_out-0x4
14: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 1b <byte_floatarr+0x1b>
17: R_X86_64_PC32 ref_arg0-0x4
1b: e8 00 00 00 00 call 20 <byte_floatarr+0x20>
1c: R_X86_64_PLT32 aux_arr_byte_float-0x4
20: 48 83 c4 08 add $0x8,%rsp
24: e9 00 00 00 00 jmp 29 <.LC1+0x1>
25: R_X86_64_PLT32 result_byte_ref-0x4
copy32_arr#
STENCIL void copy32_arr(void) {
// Strided copy of 32 bit elements
aux_arr_copy32(REF(ref_arg0), REF(ref_out), REF(ref_arg1));
result_void();
}
arm64#
0000000000000000 <copy32_arr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: 91000042 add x2, x2, #0x0
10: R_AARCH64_ADD_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <copy32_arr>
20: R_AARCH64_CALL26 aux_arr_copy32
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_void>
28: R_AARCH64_JUMP26 result_void
armv6#
00000000 <copy32_arr>:
0: e92d4010 push {r4, lr}
4: e59f2010 ldr r2, [pc, #16] @ 1c <copy32_arr+0x1c>
8: e59f1010 ldr r1, [pc, #16] @ 20 <copy32_arr+0x20>
c: e59f0010 ldr r0, [pc, #16] @ 24 <copy32_arr+0x24>
10: ebfffffe bl 0 <copy32_arr>
10: R_ARM_CALL aux_arr_copy32
14: e8bd4010 pop {r4, lr}
18: eafffffe b 0 <result_void>
18: R_ARM_JUMP24 result_void
...
1c: R_ARM_ABS32 ref_arg1
20: R_ARM_ABS32 ref_out
24: R_ARM_ABS32 ref_arg0
armv7#
00000000 <copy32_arr>:
0: e92d4010 push {r4, lr}
4: e3002000 movw r2, #0
4: R_ARM_MOVW_ABS_NC ref_arg1
8: e3402000 movt r2, #0
8: R_ARM_MOVT_ABS ref_arg1
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e3000000 movw r0, #0
14: R_ARM_MOVW_ABS_NC ref_arg0
18: e3400000 movt r0, #0
18: R_ARM_MOVT_ABS ref_arg0
1c: ebfffffe bl 0 <copy32_arr>
1c: R_ARM_CALL aux_arr_copy32
20: e8bd4010 pop {r4, lr}
24: eafffffe b 0 <result_void>
24: R_ARM_JUMP24 result_void
armv7mthumb#
00000000 <copy32_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy32_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy32_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy32_arr+0x1c>)
8: f7ff fffe bl 0 <copy32_arr>
8: R_ARM_THM_CALL aux_arr_copy32
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <copy32_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy32_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy32_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy32_arr+0x1c>)
8: f7ff fffe bl 0 <copy32_arr>
8: R_ARM_THM_CALL aux_arr_copy32
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <copy32_arr>:
0: b508 push {r3, lr}
2: f240 0200 movw r2, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0200 movt r2, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: f7ff fffe bl 0 <copy32_arr>
1a: R_ARM_THM_CALL aux_arr_copy32
1e: e8bd 4008 ldmia.w sp!, {r3, lr}
22: f7ff bffe b.w 0 <result_void>
22: R_ARM_THM_JUMP24 result_void
26: bf00 nop
armv81mthumb#
00000000 <copy32_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy32_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy32_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy32_arr+0x1c>)
8: f7ff fffe bl 0 <copy32_arr>
8: R_ARM_THM_CALL aux_arr_copy32
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <copy32_arr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00060613 mv a2,a2
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_copy32
20: 000080e7 jalr ra # 1c <copy32_arr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_void
2c: 00030067 jr t1 # 28 <copy32_arr+0x28>
riscv64#
0000000000000000 <copy32_arr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00060613 mv a2,a2
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_copy32
20: 000080e7 jalr ra # 1c <copy32_arr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_void
2c: 00030067 jr t1 # 28 <copy32_arr+0x28>
tricore#
00000000 <copy32_arr>:
0: 91 00 00 60 movh.a %a6,0
0: R_TRICORE_HIADJ ref_arg1
4: 91 00 00 50 movh.a %a5,0
4: R_TRICORE_HIADJ ref_out
8: 91 00 00 40 movh.a %a4,0
8: R_TRICORE_HIADJ ref_arg0
c: d9 66 00 00 lea %a6,[%a6]0 <0 <copy32_arr>>
c: R_TRICORE_LO2 ref_arg1
10: d9 55 00 00 lea %a5,[%a5]0 <0 <copy32_arr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <copy32_arr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <copy32_arr+0x18>
18: R_TRICORE_24REL aux_arr_copy32
1c: 1d 00 00 00 j 1c <copy32_arr+0x1c>
1c: R_TRICORE_24REL result_void
x86#
00000000 <copy32_arr>:
0: 83 ec 0c sub $0xc,%esp
3: 68 00 00 00 00 push $0x0
4: R_386_32 ref_arg1
8: 68 00 00 00 00 push $0x0
9: R_386_32 ref_out
d: 68 00 00 00 00 push $0x0
e: R_386_32 ref_arg0
12: e8 fc ff ff ff call 13 <copy32_arr+0x13>
13: R_386_PC32 aux_arr_copy32
17: 83 c4 18 add $0x18,%esp
1a: e9 fc ff ff ff jmp 1b <copy32_arr+0x1b>
1b: R_386_PC32 result_void
x86_64#
0000000000000000 <copy32_arr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 15 00 00 00 00 lea 0x0(%rip),%rdx # b <copy32_arr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 12 <copy32_arr+0x12>
e: R_X86_64_PC32 ref_out-0x4
12: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 19 <copy32_arr+0x19>
15: R_X86_64_PC32 ref_arg0-0x4
19: e8 00 00 00 00 call 1e <copy32_arr+0x1e>
1a: R_X86_64_PLT32 aux_arr_copy32-0x4
1e: 48 83 c4 08 add $0x8,%rsp
22: e9 00 00 00 00 jmp 27 <.LC11+0x3>
23: R_X86_64_PLT32 result_void-0x4
copy8_arr#
STENCIL void copy8_arr(void) {
// Strided copy of bytes
aux_arr_copy8(REF(ref_arg0), REF(ref_out), REF(ref_arg1));
result_void();
}
arm64#
0000000000000000 <copy8_arr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000002 adrp x2, 0 <ref_arg1>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
8: 90000001 adrp x1, 0 <ref_out>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_out
c: 910003fd mov x29, sp
10: 91000042 add x2, x2, #0x0
10: R_AARCH64_ADD_ABS_LO12_NC ref_arg1
14: 91000021 add x1, x1, #0x0
14: R_AARCH64_ADD_ABS_LO12_NC ref_out
18: 90000000 adrp x0, 0 <ref_arg0>
18: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
1c: 91000000 add x0, x0, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
20: 94000000 bl 0 <copy8_arr>
20: R_AARCH64_CALL26 aux_arr_copy8
24: a8c17bfd ldp x29, x30, [sp], #16
28: 14000000 b 0 <result_void>
28: R_AARCH64_JUMP26 result_void
armv6#
00000000 <copy8_arr>:
0: e92d4010 push {r4, lr}
4: e59f2010 ldr r2, [pc, #16] @ 1c <copy8_arr+0x1c>
8: e59f1010 ldr r1, [pc, #16] @ 20 <copy8_arr+0x20>
c: e59f0010 ldr r0, [pc, #16] @ 24 <copy8_arr+0x24>
10: ebfffffe bl 0 <copy8_arr>
10: R_ARM_CALL aux_arr_copy8
14: e8bd4010 pop {r4, lr}
18: eafffffe b 0 <result_void>
18: R_ARM_JUMP24 result_void
...
1c: R_ARM_ABS32 ref_arg1
20: R_ARM_ABS32 ref_out
24: R_ARM_ABS32 ref_arg0
armv7#
00000000 <copy8_arr>:
0: e92d4010 push {r4, lr}
4: e3002000 movw r2, #0
4: R_ARM_MOVW_ABS_NC ref_arg1
8: e3402000 movt r2, #0
8: R_ARM_MOVT_ABS ref_arg1
c: e3001000 movw r1, #0
c: R_ARM_MOVW_ABS_NC ref_out
10: e3401000 movt r1, #0
10: R_ARM_MOVT_ABS ref_out
14: e3000000 movw r0, #0
14: R_ARM_MOVW_ABS_NC ref_arg0
18: e3400000 movt r0, #0
18: R_ARM_MOVT_ABS ref_arg0
1c: ebfffffe bl 0 <copy8_arr>
1c: R_ARM_CALL aux_arr_copy8
20: e8bd4010 pop {r4, lr}
24: eafffffe b 0 <result_void>
24: R_ARM_JUMP24 result_void
armv7mthumb#
00000000 <copy8_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy8_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy8_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy8_arr+0x1c>)
8: f7ff fffe bl 0 <copy8_arr>
8: R_ARM_THM_CALL aux_arr_copy8
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <copy8_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy8_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy8_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy8_arr+0x1c>)
8: f7ff fffe bl 0 <copy8_arr>
8: R_ARM_THM_CALL aux_arr_copy8
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <copy8_arr>:
0: b508 push {r3, lr}
2: f240 0200 movw r2, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0200 movt r2, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0100 movw r1, #0
a: R_ARM_THM_MOVW_ABS_NC ref_out
e: f2c0 0100 movt r1, #0
e: R_ARM_THM_MOVT_ABS ref_out
12: f240 0000 movw r0, #0
12: R_ARM_THM_MOVW_ABS_NC ref_arg0
16: f2c0 0000 movt r0, #0
16: R_ARM_THM_MOVT_ABS ref_arg0
1a: f7ff fffe bl 0 <copy8_arr>
1a: R_ARM_THM_CALL aux_arr_copy8
1e: e8bd 4008 ldmia.w sp!, {r3, lr}
22: f7ff bffe b.w 0 <result_void>
22: R_ARM_THM_JUMP24 result_void
26: bf00 nop
armv81mthumb#
00000000 <copy8_arr>:
0: b508 push {r3, lr}
2: 4a04 ldr r2, [pc, #16] @ (14 <copy8_arr+0x14>)
4: 4904 ldr r1, [pc, #16] @ (18 <copy8_arr+0x18>)
6: 4805 ldr r0, [pc, #20] @ (1c <copy8_arr+0x1c>)
8: f7ff fffe bl 0 <copy8_arr>
8: R_ARM_THM_CALL aux_arr_copy8
c: e8bd 4008 ldmia.w sp!, {r3, lr}
10: f7ff bffe b.w 0 <result_void>
10: R_ARM_THM_JUMP24 result_void
...
14: R_ARM_ABS32 ref_arg1
18: R_ARM_ABS32 ref_out
1c: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <copy8_arr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00060613 mv a2,a2
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: c606 sw ra,12(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_copy8
20: 000080e7 jalr ra # 1c <copy8_arr+0x1c>
24: 40b2 lw ra,12(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_void
2c: 00030067 jr t1 # 28 <copy8_arr+0x28>
riscv64#
0000000000000000 <copy8_arr>:
0: 1141 addi sp,sp,-16
2: 00000617 auipc a2,0x0
2: R_RISCV_PCREL_HI20 ref_arg1
6: 00060613 mv a2,a2
6: R_RISCV_PCREL_LO12_I .L0
a: 00000597 auipc a1,0x0
a: R_RISCV_PCREL_HI20 ref_out
e: 00058593 mv a1,a1
e: R_RISCV_PCREL_LO12_I .L0
12: 00000517 auipc a0,0x0
12: R_RISCV_PCREL_HI20 ref_arg0
16: 00050513 mv a0,a0
16: R_RISCV_PCREL_LO12_I .L0
1a: e406 sd ra,8(sp)
1c: 00000097 auipc ra,0x0
1c: R_RISCV_CALL_PLT aux_arr_copy8
20: 000080e7 jalr ra # 1c <copy8_arr+0x1c>
24: 60a2 ld ra,8(sp)
26: 0141 addi sp,sp,16
28: 00000317 auipc t1,0x0
28: R_RISCV_CALL_PLT result_void
2c: 00030067 jr t1 # 28 <copy8_arr+0x28>
tricore#
00000000 <copy8_arr>:
0: 91 00 00 60 movh.a %a6,0
0: R_TRICORE_HIADJ ref_arg1
4: 91 00 00 50 movh.a %a5,0
4: R_TRICORE_HIADJ ref_out
8: 91 00 00 40 movh.a %a4,0
8: R_TRICORE_HIADJ ref_arg0
c: d9 66 00 00 lea %a6,[%a6]0 <0 <copy8_arr>>
c: R_TRICORE_LO2 ref_arg1
10: d9 55 00 00 lea %a5,[%a5]0 <0 <copy8_arr>>
10: R_TRICORE_LO2 ref_out
14: d9 44 00 00 lea %a4,[%a4]0 <0 <copy8_arr>>
14: R_TRICORE_LO2 ref_arg0
18: 6d 00 00 00 call 18 <copy8_arr+0x18>
18: R_TRICORE_24REL aux_arr_copy8
1c: 1d 00 00 00 j 1c <copy8_arr+0x1c>
1c: R_TRICORE_24REL result_void
x86#
00000000 <copy8_arr>:
0: 83 ec 0c sub $0xc,%esp
3: 68 00 00 00 00 push $0x0
4: R_386_32 ref_arg1
8: 68 00 00 00 00 push $0x0
9: R_386_32 ref_out
d: 68 00 00 00 00 push $0x0
e: R_386_32 ref_arg0
12: e8 fc ff ff ff call 13 <copy8_arr+0x13>
13: R_386_PC32 aux_arr_copy8
17: 83 c4 18 add $0x18,%esp
1a: e9 fc ff ff ff jmp 1b <copy8_arr+0x1b>
1b: R_386_PC32 result_void
x86_64#
0000000000000000 <copy8_arr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 15 00 00 00 00 lea 0x0(%rip),%rdx # b <copy8_arr+0xb>
7: R_X86_64_PC32 ref_arg1-0x4
b: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 12 <copy8_arr+0x12>
e: R_X86_64_PC32 ref_out-0x4
12: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 19 <copy8_arr+0x19>
15: R_X86_64_PC32 ref_arg0-0x4
19: e8 00 00 00 00 call 1e <copy8_arr+0x1e>
1a: R_X86_64_PLT32 aux_arr_copy8-0x4
1e: 48 83 c4 08 add $0x8,%rsp
22: e9 00 00 00 00 jmp 27 <.LC11+0x3>
23: R_X86_64_PLT32 result_void-0x4
put32_arr#
SHORT_LOOP STENCIL void put32_arr(void) {
// Writes the m elements of ref_arg1 in place to the elements i * m to i * m + m - 1
// of a ring buffer (ref_out is the memory of the buffer ref_arg0, i = ref_arg2, m = ref_arg3)
const int *a = REF(ref_arg1);
int m = *(int *)REF(ref_arg3);
int *o = (int *)REF(ref_out) + *(int *)REF(ref_arg2) * m;
for (int i = 0; i < m; i++) o[i] = a[i];
result_void();
}
arm64#
0000000000000000 <put32_arr>:
0: 90000001 adrp x1, 0 <ref_arg3>
0: R_AARCH64_ADR_PREL_PG_HI21 ref_arg3
4: 90000000 adrp x0, 0 <ref_arg2>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg2
8: b9400023 ldr w3, [x1]
8: R_AARCH64_LDST32_ABS_LO12_NC ref_arg3
c: b9400002 ldr w2, [x0]
c: R_AARCH64_LDST32_ABS_LO12_NC ref_arg2
10: 1b027c62 mul w2, w3, w2
14: 7100007f cmp w3, #0x0
18: 540001ad b.le 4c <put32_arr+0x4c>
1c: 90000000 adrp x0, 0 <ref_out>
1c: R_AARCH64_ADR_PREL_PG_HI21 ref_out
20: 90000004 adrp x4, 0 <ref_arg1>
20: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
24: 91000000 add x0, x0, #0x0
24: R_AARCH64_ADD_ABS_LO12_NC ref_out
28: 937e7c63 sbfiz x3, x3, #2, #32
2c: 91000084 add x4, x4, #0x0
2c: R_AARCH64_ADD_ABS_LO12_NC ref_arg1
30: 8b22c802 add x2, x0, w2, sxtw #2
34: d2800000 mov x0, #0x0 // #0
38: b8606881 ldr w1, [x4, x0]
3c: b8206841 str w1, [x2, x0]
40: 91001000 add x0, x0, #0x4
44: eb00007f cmp x3, x0
48: 54ffff81 b.ne 38 <put32_arr+0x38> // b.any
4c: 14000000 b 0 <result_void>
4c: R_AARCH64_JUMP26 result_void
armv6#
00000000 <put32_arr>:
0: e59f2038 ldr r2, [pc, #56] @ 40 <put32_arr+0x40>
4: e59f3038 ldr r3, [pc, #56] @ 44 <put32_arr+0x44>
8: e5920000 ldr r0, [r2]
c: e5933000 ldr r3, [r3]
10: e3500000 cmp r0, #0
14: e0010093 mul r1, r3, r0
18: da000007 ble 3c <put32_arr+0x3c>
1c: e59f3024 ldr r3, [pc, #36] @ 48 <put32_arr+0x48>
20: e59f2024 ldr r2, [pc, #36] @ 4c <put32_arr+0x4c>
24: e0830100 add r0, r3, r0, lsl #2
28: e0822101 add r2, r2, r1, lsl #2
2c: e4931004 ldr r1, [r3], #4
30: e1530000 cmp r3, r0
34: e4821004 str r1, [r2], #4
38: 1afffffb bne 2c <put32_arr+0x2c>
3c: eafffffe b 0 <result_void>
3c: R_ARM_JUMP24 result_void
...
40: R_ARM_ABS32 ref_arg3
44: R_ARM_ABS32 ref_arg2
48: R_ARM_ABS32 ref_arg1
4c: R_ARM_ABS32 ref_out
armv7#
00000000 <put32_arr>:
0: e3002000 movw r2, #0
0: R_ARM_MOVW_ABS_NC ref_arg3
4: e3402000 movt r2, #0
4: R_ARM_MOVT_ABS ref_arg3
8: e3003000 movw r3, #0
8: R_ARM_MOVW_ABS_NC ref_arg2
c: e3403000 movt r3, #0
c: R_ARM_MOVT_ABS ref_arg2
10: e5920000 ldr r0, [r2]
14: e5933000 ldr r3, [r3]
18: e3500000 cmp r0, #0
1c: e0010093 mul r1, r3, r0
20: da000009 ble 4c <put32_arr+0x4c>
24: e3003000 movw r3, #0
24: R_ARM_MOVW_ABS_NC ref_arg1
28: e3403000 movt r3, #0
28: R_ARM_MOVT_ABS ref_arg1
2c: e3002000 movw r2, #0
2c: R_ARM_MOVW_ABS_NC ref_out
30: e3402000 movt r2, #0
30: R_ARM_MOVT_ABS ref_out
34: e0822101 add r2, r2, r1, lsl #2
38: e0830100 add r0, r3, r0, lsl #2
3c: e4931004 ldr r1, [r3], #4
40: e4821004 str r1, [r2], #4
44: e1530000 cmp r3, r0
48: 1afffffb bne 3c <put32_arr+0x3c>
4c: eafffffe b 0 <result_void>
4c: R_ARM_JUMP24 result_void
armv7mthumb#
00000000 <put32_arr>:
0: 4a0c ldr r2, [pc, #48] @ (34 <put32_arr+0x34>)
2: 4b0d ldr r3, [pc, #52] @ (38 <put32_arr+0x38>)
4: 6810 ldr r0, [r2, #0]
6: 6819 ldr r1, [r3, #0]
8: 2800 cmp r0, #0
a: fb00 f101 mul.w r1, r0, r1
e: dd0e ble.n 2e <put32_arr+0x2e>
10: 4b0a ldr r3, [pc, #40] @ (3c <put32_arr+0x3c>)
12: 4a0b ldr r2, [pc, #44] @ (40 <put32_arr+0x40>)
14: f101 4180 add.w r1, r1, #1073741824 @ 0x40000000
18: 3901 subs r1, #1
1a: eb02 0281 add.w r2, r2, r1, lsl #2
1e: eb03 0080 add.w r0, r3, r0, lsl #2
22: f853 1b04 ldr.w r1, [r3], #4
26: f842 1f04 str.w r1, [r2, #4]!
2a: 4283 cmp r3, r0
2c: d1f9 bne.n 22 <put32_arr+0x22>
2e: f7ff bffe b.w 0 <result_void>
2e: R_ARM_THM_JUMP24 result_void
32: bf00 nop
...
34: R_ARM_ABS32 ref_arg3
38: R_ARM_ABS32 ref_arg2
3c: R_ARM_ABS32 ref_arg1
40: R_ARM_ABS32 ref_out
armv7mthumb_fpv5#
00000000 <put32_arr>:
0: 4a0c ldr r2, [pc, #48] @ (34 <put32_arr+0x34>)
2: 4b0d ldr r3, [pc, #52] @ (38 <put32_arr+0x38>)
4: 6810 ldr r0, [r2, #0]
6: 6819 ldr r1, [r3, #0]
8: 2800 cmp r0, #0
a: fb00 f101 mul.w r1, r0, r1
e: dd0e ble.n 2e <put32_arr+0x2e>
10: f06f 4c40 mvn.w ip, #3221225472 @ 0xc0000000
14: 4b09 ldr r3, [pc, #36] @ (3c <put32_arr+0x3c>)
16: 4a0a ldr r2, [pc, #40] @ (40 <put32_arr+0x40>)
18: 448c add ip, r1
1a: eb03 0080 add.w r0, r3, r0, lsl #2
1e: eb02 028c add.w r2, r2, ip, lsl #2
22: f853 1b04 ldr.w r1, [r3], #4
26: 4283 cmp r3, r0
28: f842 1f04 str.w r1, [r2, #4]!
2c: d1f9 bne.n 22 <put32_arr+0x22>
2e: f7ff bffe b.w 0 <result_void>
2e: R_ARM_THM_JUMP24 result_void
32: bf00 nop
...
34: R_ARM_ABS32 ref_arg3
38: R_ARM_ABS32 ref_arg2
3c: R_ARM_ABS32 ref_arg1
40: R_ARM_ABS32 ref_out
armv7thumb#
00000000 <put32_arr>:
0: f240 0200 movw r2, #0
0: R_ARM_THM_MOVW_ABS_NC ref_arg3
4: f2c0 0200 movt r2, #0
4: R_ARM_THM_MOVT_ABS ref_arg3
8: f240 0300 movw r3, #0
8: R_ARM_THM_MOVW_ABS_NC ref_arg2
c: f2c0 0300 movt r3, #0
c: R_ARM_THM_MOVT_ABS ref_arg2
10: 6810 ldr r0, [r2, #0]
12: 6819 ldr r1, [r3, #0]
14: 2800 cmp r0, #0
16: fb00 f101 mul.w r1, r0, r1
1a: dd11 ble.n 40 <put32_arr+0x40>
1c: f240 0300 movw r3, #0
1c: R_ARM_THM_MOVW_ABS_NC ref_arg1
20: f2c0 0300 movt r3, #0
20: R_ARM_THM_MOVT_ABS ref_arg1
24: f240 0200 movw r2, #0
24: R_ARM_THM_MOVW_ABS_NC ref_out
28: f2c0 0200 movt r2, #0
28: R_ARM_THM_MOVT_ABS ref_out
2c: eb02 0281 add.w r2, r2, r1, lsl #2
30: eb03 0080 add.w r0, r3, r0, lsl #2
34: f853 1b04 ldr.w r1, [r3], #4
38: f842 1b04 str.w r1, [r2], #4
3c: 4283 cmp r3, r0
3e: d1f9 bne.n 34 <put32_arr+0x34>
40: f7ff bffe b.w 0 <result_void>
40: R_ARM_THM_JUMP24 result_void
armv81mthumb#
00000000 <put32_arr>:
0: 4b12 ldr r3, [pc, #72] @ (4c <put32_arr+0x4c>)
2: 4a13 ldr r2, [pc, #76] @ (50 <put32_arr+0x50>)
4: 681b ldr r3, [r3, #0]
6: 6811 ldr r1, [r2, #0]
8: 2b00 cmp r3, #0
a: fb03 f101 mul.w r1, r3, r1
e: dd1b ble.n 48 <put32_arr+0x48>
10: b500 push {lr}
12: ea4f 0e83 mov.w lr, r3, lsl #2
16: f1ae 0e04 sub.w lr, lr, #4
1a: ea4f 0e9e mov.w lr, lr, lsr #2
1e: f10e 0e01 add.w lr, lr, #1
22: f04e e001 dls lr, lr
26: 4b0b ldr r3, [pc, #44] @ (54 <put32_arr+0x54>)
28: f101 4180 add.w r1, r1, #1073741824 @ 0x40000000
2c: 3901 subs r1, #1
2e: 4a0a ldr r2, [pc, #40] @ (58 <put32_arr+0x58>)
30: eb03 0381 add.w r3, r3, r1, lsl #2
34: f852 1b04 ldr.w r1, [r2], #4
38: f843 1f04 str.w r1, [r3, #4]!
3c: f00f c007 le lr, 34 <put32_arr+0x34>
40: f85d eb04 ldr.w lr, [sp], #4
44: f7ff bffe b.w 0 <result_void>
44: R_ARM_THM_JUMP24 result_void
48: f7ff bffe b.w 0 <result_void>
48: R_ARM_THM_JUMP24 result_void
...
4c: R_ARM_ABS32 ref_arg3
50: R_ARM_ABS32 ref_arg2
54: R_ARM_ABS32 ref_out
58: R_ARM_ABS32 ref_arg1
riscv32#
00000000 <put32_arr>:
0: 00000717 auipc a4,0x0
0: R_RISCV_PCREL_HI20 ref_arg3
4: 00072703 lw a4,0(a4) # 0 <put32_arr>
4: R_RISCV_PCREL_LO12_I .L0
8: 02e05c63 blez a4,40 <put32_arr+0x40>
c: 00000797 auipc a5,0x0
c: R_RISCV_PCREL_HI20 ref_arg2
10: 0007a783 lw a5,0(a5) # c <put32_arr+0xc>
10: R_RISCV_PCREL_LO12_I .L0
14: 00271613 slli a2,a4,0x2
18: 00000697 auipc a3,0x0
18: R_RISCV_PCREL_HI20 ref_out
1c: 00068693 mv a3,a3
1c: R_RISCV_PCREL_LO12_I .L0
20: 02f70733 mul a4,a4,a5
24: 00000797 auipc a5,0x0
24: R_RISCV_PCREL_HI20 ref_arg1
28: 00078793 mv a5,a5
28: R_RISCV_PCREL_LO12_I .L0
2c: 963e add a2,a2,a5
2e: 070a slli a4,a4,0x2
30: 9736 add a4,a4,a3
32: 4394 lw a3,0(a5)
34: 0791 addi a5,a5,4 # 28 <put32_arr+0x28>
36: 0711 addi a4,a4,4
38: fed72e23 sw a3,-4(a4)
3c: fec79be3 bne a5,a2,32 <put32_arr+0x32>
40: 00000317 auipc t1,0x0
40: R_RISCV_CALL_PLT result_void
44: 00030067 jr t1 # 40 <put32_arr+0x40>
riscv64#
0000000000000000 <put32_arr>:
0: 00000617 auipc a2,0x0
0: R_RISCV_PCREL_HI20 ref_arg3
4: 00062603 lw a2,0(a2) # 0 <put32_arr>
4: R_RISCV_PCREL_LO12_I .L0
8: 00000717 auipc a4,0x0
8: R_RISCV_PCREL_HI20 ref_arg2
c: 00072703 lw a4,0(a4) # 8 <put32_arr+0x8>
c: R_RISCV_PCREL_LO12_I .L0
10: 02c7073b mulw a4,a4,a2
14: 02c05563 blez a2,3e <put32_arr+0x3e>
18: 00000797 auipc a5,0x0
18: R_RISCV_PCREL_HI20 ref_arg1
1c: 00078793 mv a5,a5
1c: R_RISCV_PCREL_LO12_I .L0
20: 070a slli a4,a4,0x2
22: 060a slli a2,a2,0x2
24: 00000697 auipc a3,0x0
24: R_RISCV_PCREL_HI20 ref_out
28: 00068693 mv a3,a3
28: R_RISCV_PCREL_LO12_I .L0
2c: 9736 add a4,a4,a3
2e: 963e add a2,a2,a5
30: 4394 lw a3,0(a5)
32: 0791 addi a5,a5,4 # 1c <put32_arr+0x1c>
34: 0711 addi a4,a4,4
36: fed72e23 sw a3,-4(a4)
3a: fec79be3 bne a5,a2,30 <put32_arr+0x30>
3e: 00000317 auipc t1,0x0
3e: R_RISCV_CALL_PLT result_void
42: 00030067 jr t1 # 3e <put32_arr+0x3e>
tricore#
00000000 <put32_arr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg3
4: 19 24 00 00 ld.w %d4,[%a2]0 <0 <put32_arr>>
4: R_TRICORE_LO2 ref_arg3
8: 91 00 00 20 movh.a %a2,0
8: R_TRICORE_HIADJ ref_arg2
c: 19 22 00 00 ld.w %d2,[%a2]0 <0 <put32_arr>>
c: R_TRICORE_LO2 ref_arg2
10: e2 42 mul %d2,%d4
12: bf 14 73 00 jlt %d4,1,f8 <put32_arr+0xf8>
16: 91 00 00 30 movh.a %a3,0
16: R_TRICORE_HIADJ ref_out
1a: 8f 22 00 30 sh %d3,%d2,2
1e: 91 00 00 20 movh.a %a2,0
1e: R_TRICORE_HIADJ ref_arg1
22: d9 33 00 00 lea %a3,[%a3]0 <0 <put32_arr>>
22: R_TRICORE_LO2 ref_out
26: 8f 74 00 21 and %d2,%d4,7
2a: 01 33 00 36 addsc.a %a3,%a3,%d3,0
2e: d9 22 00 00 lea %a2,[%a2]0 <0 <put32_arr>>
2e: R_TRICORE_LO2 ref_arg1
32: 82 03 mov %d3,0
34: df 02 3a 00 jeq %d2,0,a8 <put32_arr+0xa8>
38: df 12 2f 00 jeq %d2,1,96 <put32_arr+0x96>
3c: df 22 26 00 jeq %d2,2,88 <put32_arr+0x88>
40: df 32 1d 00 jeq %d2,3,7a <put32_arr+0x7a>
44: df 42 14 00 jeq %d2,4,6c <put32_arr+0x6c>
48: df 52 0b 00 jeq %d2,5,5e <put32_arr+0x5e>
4c: df 62 59 80 jne %d2,6,fe <put32_arr+0xfe>
50: 40 24 mov.aa %a4,%a2
52: 54 42 ld.w %d2,[%a4]
54: 40 34 mov.aa %a4,%a3
56: b0 42 add.a %a2,4
58: b0 43 add.a %a3,4
5a: 74 42 st.w [%a4],%d2
5c: c2 13 add %d3,1
5e: 40 24 mov.aa %a4,%a2
60: 54 42 ld.w %d2,[%a4]
62: 40 34 mov.aa %a4,%a3
64: b0 42 add.a %a2,4
66: b0 43 add.a %a3,4
68: 74 42 st.w [%a4],%d2
6a: c2 13 add %d3,1
6c: 40 24 mov.aa %a4,%a2
6e: 54 42 ld.w %d2,[%a4]
70: 40 34 mov.aa %a4,%a3
72: b0 42 add.a %a2,4
74: b0 43 add.a %a3,4
76: 74 42 st.w [%a4],%d2
78: c2 13 add %d3,1
7a: 40 24 mov.aa %a4,%a2
7c: 54 42 ld.w %d2,[%a4]
7e: 40 34 mov.aa %a4,%a3
80: b0 42 add.a %a2,4
82: b0 43 add.a %a3,4
84: 74 42 st.w [%a4],%d2
86: c2 13 add %d3,1
88: 40 24 mov.aa %a4,%a2
8a: 54 42 ld.w %d2,[%a4]
8c: 40 34 mov.aa %a4,%a3
8e: b0 42 add.a %a2,4
90: b0 43 add.a %a3,4
92: 74 42 st.w [%a4],%d2
94: c2 13 add %d3,1
96: 40 24 mov.aa %a4,%a2
98: 54 42 ld.w %d2,[%a4]
9a: 40 34 mov.aa %a4,%a3
9c: 74 42 st.w [%a4],%d2
9e: c2 13 add %d3,1
a0: b0 42 add.a %a2,4
a2: b0 43 add.a %a3,4
a4: 5f 34 2a 00 jeq %d4,%d3,f8 <put32_arr+0xf8>
a8: 40 25 mov.aa %a5,%a2
aa: 40 34 mov.aa %a4,%a3
ac: b0 45 add.a %a5,4
ae: 54 22 ld.w %d2,[%a2]
b0: 74 32 st.w [%a3],%d2
b2: b0 44 add.a %a4,4
b4: 54 52 ld.w %d2,[%a5]
b6: 74 42 st.w [%a4],%d2
b8: 19 52 04 00 ld.w %d2,[%a5]4
bc: 59 42 04 00 st.w [%a4]4,%d2
c0: 19 52 08 00 ld.w %d2,[%a5]8
c4: 59 42 08 00 st.w [%a4]8,%d2
c8: 19 52 0c 00 ld.w %d2,[%a5]12
cc: 59 42 0c 00 st.w [%a4]12,%d2
d0: 19 52 10 00 ld.w %d2,[%a5]16
d4: 59 42 10 00 st.w [%a4]16,%d2
d8: 19 52 14 00 ld.w %d2,[%a5]20
dc: 59 42 14 00 st.w [%a4]20,%d2
e0: 19 52 18 00 ld.w %d2,[%a5]24
e4: 59 42 18 00 st.w [%a4]24,%d2
e8: 1b 83 00 30 addi %d3,%d3,8
ec: d9 52 1c 00 lea %a2,[%a5]28
f0: d9 43 1c 00 lea %a3,[%a4]28
f4: 5f 34 da ff jne %d4,%d3,a8 <put32_arr+0xa8>
f8: 6d 00 00 00 call f8 <put32_arr+0xf8>
f8: R_TRICORE_24REL result_void
fc: 00 90 ret
fe: 40 24 mov.aa %a4,%a2
100: 54 42 ld.w %d2,[%a4]
102: 40 34 mov.aa %a4,%a3
104: b0 42 add.a %a2,4
106: b0 43 add.a %a3,4
108: 74 42 st.w [%a4],%d2
10a: 82 13 mov %d3,1
10c: 3c a2 j 50 <put32_arr+0x50>
x86#
00000000 <put32_arr>:
0: 53 push %ebx
1: 8b 0d 00 00 00 00 mov 0x0,%ecx
3: R_386_32 ref_arg3
7: 8b 1d 00 00 00 00 mov 0x0,%ebx
9: R_386_32 ref_arg2
d: 0f af d9 imul %ecx,%ebx
10: 85 c9 test %ecx,%ecx
12: 7e 21 jle 35 <put32_arr+0x35>
14: c1 e3 02 shl $0x2,%ebx
17: 31 c0 xor %eax,%eax
19: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi
20: 8b 14 85 00 00 00 00 mov 0x0(,%eax,4),%edx
23: R_386_32 ref_arg1
27: 89 94 83 00 00 00 00 mov %edx,0x0(%ebx,%eax,4)
2a: R_386_32 ref_out
2e: 83 c0 01 add $0x1,%eax
31: 39 c1 cmp %eax,%ecx
33: 75 eb jne 20 <put32_arr+0x20>
35: 5b pop %ebx
36: e9 fc ff ff ff jmp 37 <put32_arr+0x37>
37: R_386_PC32 result_void
x86_64#
0000000000000000 <put32_arr>:
0: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # 7 <put32_arr+0x7>
3: R_X86_64_PC32 ref_arg3-0x4
7: 48 63 08 movslq (%rax),%rcx
a: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # 11 <put32_arr+0x11>
d: R_X86_64_PC32 ref_arg2-0x4
11: 8b 38 mov (%rax),%edi
13: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 1a <put32_arr+0x1a>
16: R_X86_64_PC32 ref_arg1-0x4
1a: 0f af f9 imul %ecx,%edi
1d: 48 8d 15 00 00 00 00 lea 0x0(%rip),%rdx # 24 <put32_arr+0x24>
20: R_X86_64_PC32 ref_out-0x4
24: 48 63 c7 movslq %edi,%rax
27: 85 c9 test %ecx,%ecx
29: 7e 1c jle 47 <put32_arr+0x47>
2b: 48 8d 3c 82 lea (%rdx,%rax,4),%rdi
2f: 48 c1 e1 02 shl $0x2,%rcx
33: 31 c0 xor %eax,%eax
35: 0f 1f 00 nopl (%rax)
38: 8b 14 06 mov (%rsi,%rax,1),%edx
3b: 89 14 07 mov %edx,(%rdi,%rax,1)
3e: 48 83 c0 04 add $0x4,%rax
42: 48 39 c1 cmp %rax,%rcx
45: 75 f1 jne 38 <put32_arr+0x38>
47: e9 00 00 00 00 jmp 4c <.LC4>
48: R_X86_64_PLT32 result_void-0x4
roll32_arr#
STENCIL void roll32_arr(void) {
// Copies the ring buffer ref_arg0 of n elements (ref_arg2) starting at the element ref_arg1
aux_arr_roll32(REF(ref_arg0), REF(ref_out), *(int *)REF(ref_arg1), *(int *)REF(ref_arg2));
result_void();
}
arm64#
0000000000000000 <roll32_arr>:
0: a9bf7bfd stp x29, x30, [sp, #-16]!
4: 90000003 adrp x3, 0 <ref_arg2>
4: R_AARCH64_ADR_PREL_PG_HI21 ref_arg2
8: 90000002 adrp x2, 0 <ref_arg1>
8: R_AARCH64_ADR_PREL_PG_HI21 ref_arg1
c: 910003fd mov x29, sp
10: b9400063 ldr w3, [x3]
10: R_AARCH64_LDST32_ABS_LO12_NC ref_arg2
14: 90000001 adrp x1, 0 <ref_out>
14: R_AARCH64_ADR_PREL_PG_HI21 ref_out
18: b9400042 ldr w2, [x2]
18: R_AARCH64_LDST32_ABS_LO12_NC ref_arg1
1c: 91000021 add x1, x1, #0x0
1c: R_AARCH64_ADD_ABS_LO12_NC ref_out
20: 90000000 adrp x0, 0 <ref_arg0>
20: R_AARCH64_ADR_PREL_PG_HI21 ref_arg0
24: 91000000 add x0, x0, #0x0
24: R_AARCH64_ADD_ABS_LO12_NC ref_arg0
28: 94000000 bl 0 <roll32_arr>
28: R_AARCH64_CALL26 aux_arr_roll32
2c: a8c17bfd ldp x29, x30, [sp], #16
30: 14000000 b 0 <result_void>
30: R_AARCH64_JUMP26 result_void
armv6#
00000000 <roll32_arr>:
0: e59f3020 ldr r3, [pc, #32] @ 28 <roll32_arr+0x28>
4: e59f2020 ldr r2, [pc, #32] @ 2c <roll32_arr+0x2c>
8: e92d4010 push {r4, lr}
c: e59f101c ldr r1, [pc, #28] @ 30 <roll32_arr+0x30>
10: e5933000 ldr r3, [r3]
14: e5922000 ldr r2, [r2]
18: e59f0014 ldr r0, [pc, #20] @ 34 <roll32_arr+0x34>
1c: ebfffffe bl 0 <roll32_arr>
1c: R_ARM_CALL aux_arr_roll32
20: e8bd4010 pop {r4, lr}
24: eafffffe b 0 <result_void>
24: R_ARM_JUMP24 result_void
...
28: R_ARM_ABS32 ref_arg2
2c: R_ARM_ABS32 ref_arg1
30: R_ARM_ABS32 ref_out
34: R_ARM_ABS32 ref_arg0
armv7#
00000000 <roll32_arr>:
0: e3003000 movw r3, #0
0: R_ARM_MOVW_ABS_NC ref_arg2
4: e3403000 movt r3, #0
4: R_ARM_MOVT_ABS ref_arg2
8: e3002000 movw r2, #0
8: R_ARM_MOVW_ABS_NC ref_arg1
c: e3402000 movt r2, #0
c: R_ARM_MOVT_ABS ref_arg1
10: e92d4010 push {r4, lr}
14: e3001000 movw r1, #0
14: R_ARM_MOVW_ABS_NC ref_out
18: e3401000 movt r1, #0
18: R_ARM_MOVT_ABS ref_out
1c: e5933000 ldr r3, [r3]
20: e3000000 movw r0, #0
20: R_ARM_MOVW_ABS_NC ref_arg0
24: e3400000 movt r0, #0
24: R_ARM_MOVT_ABS ref_arg0
28: e5922000 ldr r2, [r2]
2c: ebfffffe bl 0 <roll32_arr>
2c: R_ARM_CALL aux_arr_roll32
30: e8bd4010 pop {r4, lr}
34: eafffffe b 0 <result_void>
34: R_ARM_JUMP24 result_void
armv7mthumb#
00000000 <roll32_arr>:
0: b508 push {r3, lr}
2: 4a06 ldr r2, [pc, #24] @ (1c <roll32_arr+0x1c>)
4: 4b06 ldr r3, [pc, #24] @ (20 <roll32_arr+0x20>)
6: 6812 ldr r2, [r2, #0]
8: 681b ldr r3, [r3, #0]
a: 4906 ldr r1, [pc, #24] @ (24 <roll32_arr+0x24>)
c: 4806 ldr r0, [pc, #24] @ (28 <roll32_arr+0x28>)
e: f7ff fffe bl 0 <roll32_arr>
e: R_ARM_THM_CALL aux_arr_roll32
12: e8bd 4008 ldmia.w sp!, {r3, lr}
16: f7ff bffe b.w 0 <result_void>
16: R_ARM_THM_JUMP24 result_void
1a: bf00 nop
...
1c: R_ARM_ABS32 ref_arg1
20: R_ARM_ABS32 ref_arg2
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7mthumb_fpv5#
00000000 <roll32_arr>:
0: b508 push {r3, lr}
2: 4a06 ldr r2, [pc, #24] @ (1c <roll32_arr+0x1c>)
4: 4b06 ldr r3, [pc, #24] @ (20 <roll32_arr+0x20>)
6: 4907 ldr r1, [pc, #28] @ (24 <roll32_arr+0x24>)
8: 681b ldr r3, [r3, #0]
a: 4807 ldr r0, [pc, #28] @ (28 <roll32_arr+0x28>)
c: 6812 ldr r2, [r2, #0]
e: f7ff fffe bl 0 <roll32_arr>
e: R_ARM_THM_CALL aux_arr_roll32
12: e8bd 4008 ldmia.w sp!, {r3, lr}
16: f7ff bffe b.w 0 <result_void>
16: R_ARM_THM_JUMP24 result_void
1a: bf00 nop
...
1c: R_ARM_ABS32 ref_arg1
20: R_ARM_ABS32 ref_arg2
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
armv7thumb#
00000000 <roll32_arr>:
0: b508 push {r3, lr}
2: f240 0200 movw r2, #0
2: R_ARM_THM_MOVW_ABS_NC ref_arg1
6: f2c0 0200 movt r2, #0
6: R_ARM_THM_MOVT_ABS ref_arg1
a: f240 0300 movw r3, #0
a: R_ARM_THM_MOVW_ABS_NC ref_arg2
e: f2c0 0300 movt r3, #0
e: R_ARM_THM_MOVT_ABS ref_arg2
12: f240 0100 movw r1, #0
12: R_ARM_THM_MOVW_ABS_NC ref_out
16: f2c0 0100 movt r1, #0
16: R_ARM_THM_MOVT_ABS ref_out
1a: 6812 ldr r2, [r2, #0]
1c: f240 0000 movw r0, #0
1c: R_ARM_THM_MOVW_ABS_NC ref_arg0
20: f2c0 0000 movt r0, #0
20: R_ARM_THM_MOVT_ABS ref_arg0
24: 681b ldr r3, [r3, #0]
26: f7ff fffe bl 0 <roll32_arr>
26: R_ARM_THM_CALL aux_arr_roll32
2a: e8bd 4008 ldmia.w sp!, {r3, lr}
2e: f7ff bffe b.w 0 <result_void>
2e: R_ARM_THM_JUMP24 result_void
32: bf00 nop
armv81mthumb#
00000000 <roll32_arr>:
0: b508 push {r3, lr}
2: 4a06 ldr r2, [pc, #24] @ (1c <roll32_arr+0x1c>)
4: 4b06 ldr r3, [pc, #24] @ (20 <roll32_arr+0x20>)
6: 6812 ldr r2, [r2, #0]
8: 681b ldr r3, [r3, #0]
a: 4906 ldr r1, [pc, #24] @ (24 <roll32_arr+0x24>)
c: 4806 ldr r0, [pc, #24] @ (28 <roll32_arr+0x28>)
e: f7ff fffe bl 0 <roll32_arr>
e: R_ARM_THM_CALL aux_arr_roll32
12: e8bd 4008 ldmia.w sp!, {r3, lr}
16: f7ff bffe b.w 0 <result_void>
16: R_ARM_THM_JUMP24 result_void
1a: bf00 nop
...
1c: R_ARM_ABS32 ref_arg1
20: R_ARM_ABS32 ref_arg2
24: R_ARM_ABS32 ref_out
28: R_ARM_ABS32 ref_arg0
riscv32#
00000000 <roll32_arr>:
0: 00000697 auipc a3,0x0
0: R_RISCV_PCREL_HI20 ref_arg2
4: 0006a683 lw a3,0(a3) # 0 <roll32_arr>
4: R_RISCV_PCREL_LO12_I .L0
8: 00000617 auipc a2,0x0
8: R_RISCV_PCREL_HI20 ref_arg1
c: 00062603 lw a2,0(a2) # 8 <roll32_arr+0x8>
c: R_RISCV_PCREL_LO12_I .L0
10: 1141 addi sp,sp,-16
12: 00000597 auipc a1,0x0
12: R_RISCV_PCREL_HI20 ref_out
16: 00058593 mv a1,a1
16: R_RISCV_PCREL_LO12_I .L0
1a: 00000517 auipc a0,0x0
1a: R_RISCV_PCREL_HI20 ref_arg0
1e: 00050513 mv a0,a0
1e: R_RISCV_PCREL_LO12_I .L0
22: c606 sw ra,12(sp)
24: 00000097 auipc ra,0x0
24: R_RISCV_CALL_PLT aux_arr_roll32
28: 000080e7 jalr ra # 24 <roll32_arr+0x24>
2c: 40b2 lw ra,12(sp)
2e: 0141 addi sp,sp,16
30: 00000317 auipc t1,0x0
30: R_RISCV_CALL_PLT result_void
34: 00030067 jr t1 # 30 <roll32_arr+0x30>
riscv64#
0000000000000000 <roll32_arr>:
0: 1141 addi sp,sp,-16
2: 00000697 auipc a3,0x0
2: R_RISCV_PCREL_HI20 ref_arg2
6: 0006a683 lw a3,0(a3) # 2 <roll32_arr+0x2>
6: R_RISCV_PCREL_LO12_I .L0
a: 00000617 auipc a2,0x0
a: R_RISCV_PCREL_HI20 ref_arg1
e: 00062603 lw a2,0(a2) # a <roll32_arr+0xa>
e: R_RISCV_PCREL_LO12_I .L0
12: 00000597 auipc a1,0x0
12: R_RISCV_PCREL_HI20 ref_out
16: 00058593 mv a1,a1
16: R_RISCV_PCREL_LO12_I .L0
1a: 00000517 auipc a0,0x0
1a: R_RISCV_PCREL_HI20 ref_arg0
1e: 00050513 mv a0,a0
1e: R_RISCV_PCREL_LO12_I .L0
22: e406 sd ra,8(sp)
24: 00000097 auipc ra,0x0
24: R_RISCV_CALL_PLT aux_arr_roll32
28: 000080e7 jalr ra # 24 <roll32_arr+0x24>
2c: 60a2 ld ra,8(sp)
2e: 0141 addi sp,sp,16
30: 00000317 auipc t1,0x0
30: R_RISCV_CALL_PLT result_void
34: 00030067 jr t1 # 30 <roll32_arr+0x30>
tricore#
00000000 <roll32_arr>:
0: 91 00 00 20 movh.a %a2,0
0: R_TRICORE_HIADJ ref_arg2
4: 19 25 00 00 ld.w %d5,[%a2]0 <0 <roll32_arr>>
4: R_TRICORE_LO2 ref_arg2
8: 91 00 00 20 movh.a %a2,0
8: R_TRICORE_HIADJ ref_arg1
c: 19 24 00 00 ld.w %d4,[%a2]0 <0 <roll32_arr>>
c: R_TRICORE_LO2 ref_arg1
10: 91 00 00 50 movh.a %a5,0
10: R_TRICORE_HIADJ ref_out
14: 91 00 00 40 movh.a %a4,0
14: R_TRICORE_HIADJ ref_arg0
18: d9 55 00 00 lea %a5,[%a5]0 <0 <roll32_arr>>
18: R_TRICORE_LO2 ref_out
1c: d9 44 00 00 lea %a4,[%a4]0 <0 <roll32_arr>>
1c: R_TRICORE_LO2 ref_arg0
20: 6d 00 00 00 call 20 <roll32_arr+0x20>
20: R_TRICORE_24REL aux_arr_roll32
24: 1d 00 00 00 j 24 <roll32_arr+0x24>
24: R_TRICORE_24REL result_void
x86#
00000000 <roll32_arr>:
0: 83 ec 0c sub $0xc,%esp
3: ff 35 00 00 00 00 push 0x0
5: R_386_32 ref_arg2
9: ff 35 00 00 00 00 push 0x0
b: R_386_32 ref_arg1
f: 68 00 00 00 00 push $0x0
10: R_386_32 ref_out
14: 68 00 00 00 00 push $0x0
15: R_386_32 ref_arg0
19: e8 fc ff ff ff call 1a <roll32_arr+0x1a>
1a: R_386_PC32 aux_arr_roll32
1e: 83 c4 1c add $0x1c,%esp
21: e9 fc ff ff ff jmp 22 <roll32_arr+0x22>
22: R_386_PC32 result_void
x86_64#
0000000000000000 <roll32_arr>:
0: 48 83 ec 08 sub $0x8,%rsp
4: 48 8d 15 00 00 00 00 lea 0x0(%rip),%rdx # b <roll32_arr+0xb>
7: R_X86_64_PC32 ref_arg2-0x4
b: 48 8d 05 00 00 00 00 lea 0x0(%rip),%rax # 12 <roll32_arr+0x12>
e: R_X86_64_PC32 ref_arg1-0x4
12: 8b 0a mov (%rdx),%ecx
14: 8b 10 mov (%rax),%edx
16: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi # 1d <roll32_arr+0x1d>
19: R_X86_64_PC32 ref_out-0x4
1d: 48 8d 3d 00 00 00 00 lea 0x0(%rip),%rdi # 24 <roll32_arr+0x24>
20: R_X86_64_PC32 ref_arg0-0x4
24: e8 00 00 00 00 call 29 <roll32_arr+0x29>
25: R_X86_64_PLT32 aux_arr_roll32-0x4
29: 48 83 c4 08 add $0x8,%rsp
2d: e9 00 00 00 00 jmp 32 <.LC0+0x2>
2e: R_X86_64_PLT32 result_void-0x4