x86_64 |
4 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return adds<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
addb %dil, %dil
andb $16, %dil
addb $112, %dil
sarb $4, %dil
movzbl %dil, %ecx
xorb %sil, %dil
xorb %al, %sil
notb %sil
orb %dil, %sil
shlb $4, %al
sarb $4, %al
testb $8, %sil
movzbl %al, %eax
cmovel %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
4 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return addu<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movl %eax, %ecx
andb $15, %cl
cmpb $16, %al
movzbl %cl, %eax
movl $15, %ecx
cmovael %ecx, %eax
addb %dil, %sil
cmovbl %ecx, %eax
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return adds<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrb %dil
andb $8, %dil
addb $120, %dil
sarb $3, %dil
movzbl %dil, %ecx
xorb %sil, %dil
xorb %al, %sil
notb %sil
orb %dil, %sil
shlb $3, %al
sarb $3, %al
testb $16, %sil
movzbl %al, %eax
cmovel %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return addu<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movl %eax, %ecx
andb $31, %cl
cmpb $32, %al
movzbl %cl, %eax
movl $31, %ecx
cmovael %ecx, %eax
addb %dil, %sil
cmovbl %ecx, %eax
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return adds<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrb $3, %dil
andb $4, %dil
addb $124, %dil
sarb $2, %dil
movzbl %dil, %ecx
xorb %sil, %dil
xorb %al, %sil
notb %sil
orb %dil, %sil
shlb $2, %al
sarb $2, %al
testb $32, %sil
movzbl %al, %eax
cmovel %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return addu<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movl %eax, %ecx
andb $63, %cl
cmpb $64, %al
movzbl %cl, %eax
movl $63, %ecx
cmovael %ecx, %eax
addb %dil, %sil
cmovbl %ecx, %eax
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return adds<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrb $5, %dil
andb $2, %dil
addb $126, %dil
sarb %dil
movzbl %dil, %ecx
xorb %sil, %dil
xorb %al, %sil
notb %sil
orb %dil, %sil
addb %al, %al
sarb %al
testb $64, %sil
movzbl %al, %eax
cmovel %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return addu<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
addb %dil, %sil
setb %al
movl %esi, %ecx
shrb $7, %cl
orb %al, %cl
negb %cl
orb %sil, %cl
andb $127, %cl
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
8 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return adds<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrb $7, %dil
addb $127, %dil
movzbl %dil, %ecx
xorb %sil, %dil
xorb %al, %sil
notb %sil
orb %dil, %sil
movzbl %al, %eax
cmovnsl %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
8 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return addu<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
addb %sil, %dil
sbbb %al, %al
orb %al, %dil
movzbl %dil, %eax
popq %rbp
retq
|
x86_64 |
9 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return adds<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl %edi
andl $128, %edi
addl $32640, %edi ## imm = 0x7F80
movswl %di, %ecx
sarl $7, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $7, %eax
cwtl
sarl $7, %eax
testl $256, %esi ## imm = 0x100
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
9 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return addu<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $511, %eax ## imm = 0x1FF
cmpl $512, %ecx ## imm = 0x200
movl $511, %ecx ## imm = 0x1FF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
10 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return adds<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $3, %edi
andl $64, %edi
addl $32704, %edi ## imm = 0x7FC0
movswl %di, %ecx
sarl $6, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $6, %eax
cwtl
sarl $6, %eax
testl $512, %esi ## imm = 0x200
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
10 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return addu<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $1023, %eax ## imm = 0x3FF
cmpl $1024, %ecx ## imm = 0x400
movl $1023, %ecx ## imm = 0x3FF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
11 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return adds<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $5, %edi
andl $32, %edi
addl $32736, %edi ## imm = 0x7FE0
movswl %di, %ecx
sarl $5, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $5, %eax
cwtl
sarl $5, %eax
testl $1024, %esi ## imm = 0x400
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
11 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return addu<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $2047, %eax ## imm = 0x7FF
cmpl $2048, %ecx ## imm = 0x800
movl $2047, %ecx ## imm = 0x7FF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
12 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return adds<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $7, %edi
andl $16, %edi
addl $32752, %edi ## imm = 0x7FF0
movswl %di, %ecx
sarl $4, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $4, %eax
cwtl
sarl $4, %eax
testl $2048, %esi ## imm = 0x800
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
12 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return addu<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $4095, %eax ## imm = 0xFFF
cmpl $4096, %ecx ## imm = 0x1000
movl $4095, %ecx ## imm = 0xFFF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
13 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return adds<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $9, %edi
andl $8, %edi
addl $32760, %edi ## imm = 0x7FF8
movswl %di, %ecx
sarl $3, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $3, %eax
cwtl
sarl $3, %eax
testl $4096, %esi ## imm = 0x1000
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
13 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return addu<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $8191, %eax ## imm = 0x1FFF
cmpl $8192, %ecx ## imm = 0x2000
movl $8191, %ecx ## imm = 0x1FFF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
14 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return adds<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $11, %edi
andl $4, %edi
addl $32764, %edi ## imm = 0x7FFC
movswl %di, %ecx
sarl $2, %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
shll $2, %eax
cwtl
sarl $2, %eax
testl $8192, %esi ## imm = 0x2000
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
14 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return addu<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
movzwl %ax, %ecx
andl $16383, %eax ## imm = 0x3FFF
cmpl $16384, %ecx ## imm = 0x4000
movl $16383, %ecx ## imm = 0x3FFF
cmovael %ecx, %eax
addw %di, %si
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
15 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return adds<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $13, %edi
andl $2, %edi
addl $32766, %edi ## imm = 0x7FFE
movswl %di, %ecx
sarl %ecx
movl %ecx, %edx
xorl %esi, %edx
xorl %eax, %esi
notl %esi
orl %edx, %esi
addl %eax, %eax
cwtl
sarl %eax
testl $16384, %esi ## imm = 0x4000
cmovel %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
15 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return addu<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
addw %di, %si
movzwl %si, %edx
setb %cl
movl %edx, %eax
shrl $15, %eax
orl %ecx, %eax
negl %eax
orl %edx, %eax
andl $32767, %eax ## imm = 0x7FFF
popq %rbp
retq
|
x86_64 |
16 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return adds<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzwl %di, %eax
movl %eax, %ecx
shrl $15, %ecx
addl $32767, %ecx ## imm = 0x7FFF
addw %si, %ax
cmovow %cx, %ax
cwtl
popq %rbp
retq
|
x86_64 |
16 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return addu<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
addw %si, %di
sbbw %ax, %ax
orl %eax, %edi
movzwl %di, %eax
popq %rbp
retq
|
x86_64 |
17 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return adds<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl %edi
andl $32768, %edi ## imm = 0x8000
addl $2147450880, %edi ## imm = 0x7FFF8000
sarl $15, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $15, %eax
sarl $15, %eax
testl $65536, %esi ## imm = 0x10000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
17 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return addu<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $131071, %eax ## imm = 0x1FFFF
cmpl $131072, %ecx ## imm = 0x20000
movl $131071, %ecx ## imm = 0x1FFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
18 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return adds<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $3, %edi
andl $16384, %edi ## imm = 0x4000
addl $2147467264, %edi ## imm = 0x7FFFC000
sarl $14, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $14, %eax
sarl $14, %eax
testl $131072, %esi ## imm = 0x20000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
18 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return addu<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $262143, %eax ## imm = 0x3FFFF
cmpl $262144, %ecx ## imm = 0x40000
movl $262143, %ecx ## imm = 0x3FFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
19 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return adds<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $5, %edi
andl $8192, %edi ## imm = 0x2000
addl $2147475456, %edi ## imm = 0x7FFFE000
sarl $13, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $13, %eax
sarl $13, %eax
testl $262144, %esi ## imm = 0x40000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
19 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return addu<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $524287, %eax ## imm = 0x7FFFF
cmpl $524288, %ecx ## imm = 0x80000
movl $524287, %ecx ## imm = 0x7FFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
20 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return adds<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $7, %edi
andl $4096, %edi ## imm = 0x1000
addl $2147479552, %edi ## imm = 0x7FFFF000
sarl $12, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $12, %eax
sarl $12, %eax
testl $524288, %esi ## imm = 0x80000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
20 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return addu<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $1048575, %eax ## imm = 0xFFFFF
cmpl $1048576, %ecx ## imm = 0x100000
movl $1048575, %ecx ## imm = 0xFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
21 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return adds<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $9, %edi
andl $2048, %edi ## imm = 0x800
addl $2147481600, %edi ## imm = 0x7FFFF800
sarl $11, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $11, %eax
sarl $11, %eax
testl $1048576, %esi ## imm = 0x100000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
21 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return addu<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $2097151, %eax ## imm = 0x1FFFFF
cmpl $2097152, %ecx ## imm = 0x200000
movl $2097151, %ecx ## imm = 0x1FFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
22 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return adds<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $11, %edi
andl $1024, %edi ## imm = 0x400
addl $2147482624, %edi ## imm = 0x7FFFFC00
sarl $10, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $10, %eax
sarl $10, %eax
testl $2097152, %esi ## imm = 0x200000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
22 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return addu<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $4194303, %eax ## imm = 0x3FFFFF
cmpl $4194304, %ecx ## imm = 0x400000
movl $4194303, %ecx ## imm = 0x3FFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
23 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return adds<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $13, %edi
andl $512, %edi ## imm = 0x200
addl $2147483136, %edi ## imm = 0x7FFFFE00
sarl $9, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $9, %eax
sarl $9, %eax
testl $4194304, %esi ## imm = 0x400000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
23 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return addu<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $8388607, %eax ## imm = 0x7FFFFF
cmpl $8388608, %ecx ## imm = 0x800000
movl $8388607, %ecx ## imm = 0x7FFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
24 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return adds<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $15, %edi
andl $256, %edi ## imm = 0x100
addl $2147483392, %edi ## imm = 0x7FFFFF00
sarl $8, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $8, %eax
sarl $8, %eax
testl $8388608, %esi ## imm = 0x800000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
24 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return addu<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $16777215, %eax ## imm = 0xFFFFFF
cmpl $16777216, %ecx ## imm = 0x1000000
movl $16777215, %ecx ## imm = 0xFFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
25 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return adds<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $17, %edi
andl $128, %edi
addl $2147483520, %edi ## imm = 0x7FFFFF80
sarl $7, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $7, %eax
sarl $7, %eax
testl $16777216, %esi ## imm = 0x1000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
25 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return addu<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $33554431, %eax ## imm = 0x1FFFFFF
cmpl $33554432, %ecx ## imm = 0x2000000
movl $33554431, %ecx ## imm = 0x1FFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
26 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return adds<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $19, %edi
andl $64, %edi
addl $2147483584, %edi ## imm = 0x7FFFFFC0
sarl $6, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $6, %eax
sarl $6, %eax
testl $33554432, %esi ## imm = 0x2000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
26 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return addu<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $67108863, %eax ## imm = 0x3FFFFFF
cmpl $67108864, %ecx ## imm = 0x4000000
movl $67108863, %ecx ## imm = 0x3FFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
27 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return adds<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $21, %edi
andl $32, %edi
addl $2147483616, %edi ## imm = 0x7FFFFFE0
sarl $5, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $5, %eax
sarl $5, %eax
testl $67108864, %esi ## imm = 0x4000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
27 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return addu<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $134217727, %eax ## imm = 0x7FFFFFF
cmpl $134217728, %ecx ## imm = 0x8000000
movl $134217727, %ecx ## imm = 0x7FFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
28 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return adds<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $23, %edi
andl $16, %edi
addl $2147483632, %edi ## imm = 0x7FFFFFF0
sarl $4, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $4, %eax
sarl $4, %eax
testl $134217728, %esi ## imm = 0x8000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
28 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return addu<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $268435455, %eax ## imm = 0xFFFFFFF
cmpl $268435456, %ecx ## imm = 0x10000000
movl $268435455, %ecx ## imm = 0xFFFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
29 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return adds<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $25, %edi
andl $8, %edi
addl $2147483640, %edi ## imm = 0x7FFFFFF8
sarl $3, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $3, %eax
sarl $3, %eax
testl $268435456, %esi ## imm = 0x10000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
29 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return addu<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $536870911, %eax ## imm = 0x1FFFFFFF
cmpl $536870912, %ecx ## imm = 0x20000000
movl $536870911, %ecx ## imm = 0x1FFFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
30 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return adds<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $27, %edi
andl $4, %edi
addl $2147483644, %edi ## imm = 0x7FFFFFFC
sarl $2, %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
shll $2, %eax
sarl $2, %eax
testl $536870912, %esi ## imm = 0x20000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
30 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return addu<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %ecx
movl %ecx, %eax
andl $1073741823, %eax ## imm = 0x3FFFFFFF
cmpl $1073741824, %ecx ## imm = 0x40000000
movl $1073741823, %ecx ## imm = 0x3FFFFFFF
cmovael %ecx, %eax
addl %esi, %edi
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
31 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return adds<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal (%rsi,%rdi), %eax
shrl $29, %edi
andl $2, %edi
addl $2147483646, %edi ## imm = 0x7FFFFFFE
sarl %edi
movl %edi, %ecx
xorl %esi, %ecx
xorl %eax, %esi
notl %esi
orl %ecx, %esi
addl %eax, %eax
sarl %eax
testl $1073741824, %esi ## imm = 0x40000000
cmovel %edi, %eax
popq %rbp
retq
|
x86_64 |
31 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return addu<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
addl %esi, %edi
setb %cl
movl %edi, %eax
shrl $31, %eax
orl %ecx, %eax
negl %eax
orl %edi, %eax
andl $2147483647, %eax ## imm = 0x7FFFFFFF
popq %rbp
retq
|
x86_64 |
32 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return adds<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %edi, %ecx
shrl $31, %ecx
addl $2147483647, %ecx ## imm = 0x7FFFFFFF
addl %esi, %eax
cmovol %ecx, %eax
popq %rbp
retq
|
x86_64 |
32 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return addu<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
addl %esi, %edi
sbbl %eax, %eax
orl %edi, %eax
popq %rbp
retq
|
x86_64 |
33 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return adds<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq %rdi
andl $-2147483648, %edi ## imm = 0x80000000
movabsq $9223372034707292160, %rcx ## imm = 0x7FFFFFFF80000000
addq %rdi, %rcx
sarq $31, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $31, %rax
sarq $31, %rax
btq $32, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
33 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return addu<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $33, %rcx
movabsq $8589934591, %rdx ## imm = 0x1FFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
34 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return adds<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $3, %rdi
andl $1073741824, %edi ## imm = 0x40000000
movabsq $9223372035781033984, %rcx ## imm = 0x7FFFFFFFC0000000
addq %rdi, %rcx
sarq $30, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $30, %rax
sarq $30, %rax
btq $33, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
34 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return addu<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $34, %rcx
movabsq $17179869183, %rdx ## imm = 0x3FFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
35 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return adds<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $5, %rdi
andl $536870912, %edi ## imm = 0x20000000
movabsq $9223372036317904896, %rcx ## imm = 0x7FFFFFFFE0000000
addq %rdi, %rcx
sarq $29, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $29, %rax
sarq $29, %rax
btq $34, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
35 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return addu<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $35, %rcx
movabsq $34359738367, %rdx ## imm = 0x7FFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
36 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return adds<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $7, %rdi
andl $268435456, %edi ## imm = 0x10000000
movabsq $9223372036586340352, %rcx ## imm = 0x7FFFFFFFF0000000
addq %rdi, %rcx
sarq $28, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $28, %rax
sarq $28, %rax
btq $35, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
36 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return addu<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $36, %rcx
movabsq $68719476735, %rdx ## imm = 0xFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
37 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return adds<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $9, %rdi
andl $134217728, %edi ## imm = 0x8000000
movabsq $9223372036720558080, %rcx ## imm = 0x7FFFFFFFF8000000
addq %rdi, %rcx
sarq $27, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $27, %rax
sarq $27, %rax
btq $36, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
37 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return addu<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $37, %rcx
movabsq $137438953471, %rdx ## imm = 0x1FFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
38 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return adds<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $11, %rdi
andl $67108864, %edi ## imm = 0x4000000
movabsq $9223372036787666944, %rcx ## imm = 0x7FFFFFFFFC000000
addq %rdi, %rcx
sarq $26, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $26, %rax
sarq $26, %rax
btq $37, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
38 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return addu<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $38, %rcx
movabsq $274877906943, %rdx ## imm = 0x3FFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
39 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return adds<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $13, %rdi
andl $33554432, %edi ## imm = 0x2000000
movabsq $9223372036821221376, %rcx ## imm = 0x7FFFFFFFFE000000
addq %rdi, %rcx
sarq $25, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $25, %rax
sarq $25, %rax
btq $38, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
39 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return addu<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $39, %rcx
movabsq $549755813887, %rdx ## imm = 0x7FFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
40 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return adds<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $15, %rdi
andl $16777216, %edi ## imm = 0x1000000
movabsq $9223372036837998592, %rcx ## imm = 0x7FFFFFFFFF000000
addq %rdi, %rcx
sarq $24, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $24, %rax
sarq $24, %rax
btq $39, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
40 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return addu<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $40, %rcx
movabsq $1099511627775, %rdx ## imm = 0xFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
41 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return adds<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $17, %rdi
andl $8388608, %edi ## imm = 0x800000
movabsq $9223372036846387200, %rcx ## imm = 0x7FFFFFFFFF800000
addq %rdi, %rcx
sarq $23, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $23, %rax
sarq $23, %rax
btq $40, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
41 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return addu<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $41, %rcx
movabsq $2199023255551, %rdx ## imm = 0x1FFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
42 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return adds<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $19, %rdi
andl $4194304, %edi ## imm = 0x400000
movabsq $9223372036850581504, %rcx ## imm = 0x7FFFFFFFFFC00000
addq %rdi, %rcx
sarq $22, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $22, %rax
sarq $22, %rax
btq $41, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
42 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return addu<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $42, %rcx
movabsq $4398046511103, %rdx ## imm = 0x3FFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
43 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return adds<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $21, %rdi
andl $2097152, %edi ## imm = 0x200000
movabsq $9223372036852678656, %rcx ## imm = 0x7FFFFFFFFFE00000
addq %rdi, %rcx
sarq $21, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $21, %rax
sarq $21, %rax
btq $42, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
43 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return addu<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $43, %rcx
movabsq $8796093022207, %rdx ## imm = 0x7FFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
44 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return adds<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $23, %rdi
andl $1048576, %edi ## imm = 0x100000
movabsq $9223372036853727232, %rcx ## imm = 0x7FFFFFFFFFF00000
addq %rdi, %rcx
sarq $20, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $20, %rax
sarq $20, %rax
btq $43, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
44 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return addu<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $44, %rcx
movabsq $17592186044415, %rdx ## imm = 0xFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
45 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return adds<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $25, %rdi
andl $524288, %edi ## imm = 0x80000
movabsq $9223372036854251520, %rcx ## imm = 0x7FFFFFFFFFF80000
addq %rdi, %rcx
sarq $19, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $19, %rax
sarq $19, %rax
btq $44, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
45 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return addu<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $45, %rcx
movabsq $35184372088831, %rdx ## imm = 0x1FFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
46 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return adds<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $27, %rdi
andl $262144, %edi ## imm = 0x40000
movabsq $9223372036854513664, %rcx ## imm = 0x7FFFFFFFFFFC0000
addq %rdi, %rcx
sarq $18, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $18, %rax
sarq $18, %rax
btq $45, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
46 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return addu<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $46, %rcx
movabsq $70368744177663, %rdx ## imm = 0x3FFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
47 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return adds<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $29, %rdi
andl $131072, %edi ## imm = 0x20000
movabsq $9223372036854644736, %rcx ## imm = 0x7FFFFFFFFFFE0000
addq %rdi, %rcx
sarq $17, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $17, %rax
sarq $17, %rax
btq $46, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
47 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return addu<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $47, %rcx
movabsq $140737488355327, %rdx ## imm = 0x7FFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
48 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return adds<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $31, %rdi
andl $65536, %edi ## imm = 0x10000
movabsq $9223372036854710272, %rcx ## imm = 0x7FFFFFFFFFFF0000
addq %rdi, %rcx
sarq $16, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $16, %rax
sarq $16, %rax
btq $47, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
48 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return addu<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $48, %rcx
movabsq $281474976710655, %rdx ## imm = 0xFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
49 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return adds<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $33, %rdi
andl $32768, %edi ## imm = 0x8000
movabsq $9223372036854743040, %rcx ## imm = 0x7FFFFFFFFFFF8000
addq %rdi, %rcx
sarq $15, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $15, %rax
sarq $15, %rax
btq $48, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
49 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return addu<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $49, %rcx
movabsq $562949953421311, %rdx ## imm = 0x1FFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
50 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return adds<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $35, %rdi
andl $16384, %edi ## imm = 0x4000
movabsq $9223372036854759424, %rcx ## imm = 0x7FFFFFFFFFFFC000
addq %rdi, %rcx
sarq $14, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $14, %rax
sarq $14, %rax
btq $49, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
50 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return addu<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $50, %rcx
movabsq $1125899906842623, %rdx ## imm = 0x3FFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
51 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return adds<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $37, %rdi
andl $8192, %edi ## imm = 0x2000
movabsq $9223372036854767616, %rcx ## imm = 0x7FFFFFFFFFFFE000
addq %rdi, %rcx
sarq $13, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $13, %rax
sarq $13, %rax
btq $50, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
51 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return addu<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $51, %rcx
movabsq $2251799813685247, %rdx ## imm = 0x7FFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
52 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return adds<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $39, %rdi
andl $4096, %edi ## imm = 0x1000
movabsq $9223372036854771712, %rcx ## imm = 0x7FFFFFFFFFFFF000
addq %rdi, %rcx
sarq $12, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $12, %rax
sarq $12, %rax
btq $51, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
52 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return addu<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $52, %rcx
movabsq $4503599627370495, %rdx ## imm = 0xFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
53 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return adds<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $41, %rdi
andl $2048, %edi ## imm = 0x800
movabsq $9223372036854773760, %rcx ## imm = 0x7FFFFFFFFFFFF800
addq %rdi, %rcx
sarq $11, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $11, %rax
sarq $11, %rax
btq $52, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
53 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return addu<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $53, %rcx
movabsq $9007199254740991, %rdx ## imm = 0x1FFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
54 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return adds<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $43, %rdi
andl $1024, %edi ## imm = 0x400
movabsq $9223372036854774784, %rcx ## imm = 0x7FFFFFFFFFFFFC00
addq %rdi, %rcx
sarq $10, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $10, %rax
sarq $10, %rax
btq $53, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
54 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return addu<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $54, %rcx
movabsq $18014398509481983, %rdx ## imm = 0x3FFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
55 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return adds<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $45, %rdi
andl $512, %edi ## imm = 0x200
movabsq $9223372036854775296, %rcx ## imm = 0x7FFFFFFFFFFFFE00
addq %rdi, %rcx
sarq $9, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $9, %rax
sarq $9, %rax
btq $54, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
55 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return addu<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $55, %rcx
movabsq $36028797018963967, %rdx ## imm = 0x7FFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
56 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return adds<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $47, %rdi
andl $256, %edi ## imm = 0x100
movabsq $9223372036854775552, %rcx ## imm = 0x7FFFFFFFFFFFFF00
addq %rdi, %rcx
sarq $8, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $8, %rax
sarq $8, %rax
btq $55, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
56 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return addu<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $56, %rcx
movabsq $72057594037927935, %rdx ## imm = 0xFFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
57 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return adds<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $49, %rdi
andl $128, %edi
movabsq $9223372036854775680, %rcx ## imm = 0x7FFFFFFFFFFFFF80
addq %rdi, %rcx
sarq $7, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $7, %rax
sarq $7, %rax
btq $56, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
57 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return addu<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $57, %rcx
movabsq $144115188075855871, %rdx ## imm = 0x1FFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
58 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return adds<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $51, %rdi
andl $64, %edi
movabsq $9223372036854775744, %rcx ## imm = 0x7FFFFFFFFFFFFFC0
addq %rdi, %rcx
sarq $6, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $6, %rax
sarq $6, %rax
btq $57, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
58 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return addu<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $58, %rcx
movabsq $288230376151711743, %rdx ## imm = 0x3FFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
59 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return adds<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $53, %rdi
andl $32, %edi
movabsq $9223372036854775776, %rcx ## imm = 0x7FFFFFFFFFFFFFE0
addq %rdi, %rcx
sarq $5, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $5, %rax
sarq $5, %rax
btq $58, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
59 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return addu<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $59, %rcx
movabsq $576460752303423487, %rdx ## imm = 0x7FFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
60 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return adds<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $55, %rdi
andl $16, %edi
movabsq $9223372036854775792, %rcx ## imm = 0x7FFFFFFFFFFFFFF0
addq %rdi, %rcx
sarq $4, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $4, %rax
sarq $4, %rax
btq $59, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
60 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return addu<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $60, %rcx
movabsq $1152921504606846975, %rdx ## imm = 0xFFFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
61 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return adds<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $57, %rdi
andl $8, %edi
movabsq $9223372036854775800, %rcx ## imm = 0x7FFFFFFFFFFFFFF8
addq %rdi, %rcx
sarq $3, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $3, %rax
sarq $3, %rax
btq $60, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
61 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return addu<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $61, %rcx
movabsq $2305843009213693951, %rdx ## imm = 0x1FFFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
62 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return adds<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $59, %rdi
andl $4, %edi
movabsq $9223372036854775804, %rcx ## imm = 0x7FFFFFFFFFFFFFFC
addq %rdi, %rcx
sarq $2, %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
shlq $2, %rax
sarq $2, %rax
btq $61, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
62 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return addu<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
movq %rax, %rcx
shrq $62, %rcx
movabsq $4611686018427387903, %rdx ## imm = 0x3FFFFFFFFFFFFFFF
andq %rdx, %rax
testq %rcx, %rcx
cmovneq %rdx, %rax
addq %rdi, %rsi
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
63 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return adds<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq (%rsi,%rdi), %rax
shrq $61, %rdi
andl $2, %edi
movabsq $9223372036854775806, %rcx ## imm = 0x7FFFFFFFFFFFFFFE
addq %rdi, %rcx
sarq %rcx
movq %rcx, %rdx
xorq %rsi, %rdx
xorq %rax, %rsi
notq %rsi
orq %rdx, %rsi
addq %rax, %rax
sarq %rax
btq $62, %rsi
cmovaeq %rcx, %rax
popq %rbp
retq
|
x86_64 |
63 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return addu<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
addq %rsi, %rdi
setb %al
movq %rdi, %rcx
shrq $63, %rcx
orq %rax, %rcx
negq %rcx
orq %rdi, %rcx
movabsq $9223372036854775807, %rax ## imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
64 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return adds<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
shrq $63, %rcx
movabsq $9223372036854775807, %rdx ## imm = 0x7FFFFFFFFFFFFFFF
addq %rcx, %rdx
addq %rsi, %rax
cmovoq %rdx, %rax
popq %rbp
retq
|
x86_64 |
64 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return addu<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
addq %rsi, %rdi
sbbq %rax, %rax
orq %rdi, %rax
popq %rbp
retq
|
x86_64 |
4 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return subs<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subb %sil, %al
xorb %dil, %sil
movzbl %al, %ecx
xorb %dil, %al
andb %sil, %al
shrb $3, %dil
andb $1, %dil
addb $7, %dil
testb $8, %al
movzbl %dil, %eax
cmovel %ecx, %eax
shlb $4, %al
sarb $4, %al
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
4 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return subu<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subb %sil, %dil
movzbl %dil, %eax
cmovbl %ecx, %eax
andl $15, %eax
popq %rbp
retq
|
x86_64 |
5 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return subs<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subb %sil, %al
xorb %dil, %sil
movzbl %al, %ecx
xorb %dil, %al
andb %sil, %al
shrb $4, %dil
andb $1, %dil
addb $15, %dil
testb $16, %al
movzbl %dil, %eax
cmovel %ecx, %eax
shlb $3, %al
sarb $3, %al
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return subu<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subb %sil, %dil
movzbl %dil, %eax
cmovbl %ecx, %eax
andl $31, %eax
popq %rbp
retq
|
x86_64 |
6 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return subs<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subb %sil, %al
xorb %dil, %sil
movzbl %al, %ecx
xorb %dil, %al
andb %sil, %al
shrb $5, %dil
andb $1, %dil
addb $31, %dil
testb $32, %al
movzbl %dil, %eax
cmovel %ecx, %eax
shlb $2, %al
sarb $2, %al
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return subu<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subb %sil, %dil
movzbl %dil, %eax
cmovbl %ecx, %eax
andl $63, %eax
popq %rbp
retq
|
x86_64 |
7 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return subs<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subb %sil, %al
xorb %dil, %sil
movzbl %al, %ecx
xorb %dil, %al
andb %sil, %al
shrb $6, %dil
andb $1, %dil
addb $63, %dil
testb $64, %al
movzbl %dil, %eax
cmovel %ecx, %eax
addb %al, %al
sarb %al
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return subu<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subb %sil, %dil
movzbl %dil, %eax
cmovbl %ecx, %eax
andl $127, %eax
popq %rbp
retq
|
x86_64 |
8 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return subs<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subb %sil, %al
xorb %dil, %sil
movzbl %al, %ecx
xorb %dil, %al
shrb $7, %dil
addb $127, %dil
testb %sil, %al
movzbl %dil, %eax
cmovnsl %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
8 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return subu<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subb %sil, %dil
movzbl %dil, %ecx
cmovbl %eax, %ecx
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
9 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return subs<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $8, %edi
andl $1, %edi
addl $255, %edi
testl $256, %ecx ## imm = 0x100
cmovel %eax, %edi
shll $7, %edi
movswl %di, %eax
sarl $7, %eax
popq %rbp
retq
|
x86_64 |
9 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return subu<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $511, %eax ## imm = 0x1FF
popq %rbp
retq
|
x86_64 |
10 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return subs<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $9, %edi
andl $1, %edi
addl $511, %edi ## imm = 0x1FF
testl $512, %ecx ## imm = 0x200
cmovel %eax, %edi
shll $6, %edi
movswl %di, %eax
sarl $6, %eax
popq %rbp
retq
|
x86_64 |
10 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return subu<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $1023, %eax ## imm = 0x3FF
popq %rbp
retq
|
x86_64 |
11 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return subs<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $10, %edi
andl $1, %edi
addl $1023, %edi ## imm = 0x3FF
testl $1024, %ecx ## imm = 0x400
cmovel %eax, %edi
shll $5, %edi
movswl %di, %eax
sarl $5, %eax
popq %rbp
retq
|
x86_64 |
11 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return subu<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $2047, %eax ## imm = 0x7FF
popq %rbp
retq
|
x86_64 |
12 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return subs<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $11, %edi
andl $1, %edi
addl $2047, %edi ## imm = 0x7FF
testl $2048, %ecx ## imm = 0x800
cmovel %eax, %edi
shll $4, %edi
movswl %di, %eax
sarl $4, %eax
popq %rbp
retq
|
x86_64 |
12 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return subu<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $4095, %eax ## imm = 0xFFF
popq %rbp
retq
|
x86_64 |
13 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return subs<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $12, %edi
andl $1, %edi
addl $4095, %edi ## imm = 0xFFF
testl $4096, %ecx ## imm = 0x1000
cmovel %eax, %edi
shll $3, %edi
movswl %di, %eax
sarl $3, %eax
popq %rbp
retq
|
x86_64 |
13 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return subu<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $8191, %eax ## imm = 0x1FFF
popq %rbp
retq
|
x86_64 |
14 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return subs<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $13, %edi
andl $1, %edi
addl $8191, %edi ## imm = 0x1FFF
testl $8192, %ecx ## imm = 0x2000
cmovel %eax, %edi
shll $2, %edi
movswl %di, %eax
sarl $2, %eax
popq %rbp
retq
|
x86_64 |
14 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return subu<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $16383, %eax ## imm = 0x3FFF
popq %rbp
retq
|
x86_64 |
15 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return subs<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $14, %edi
andl $1, %edi
addl $16383, %edi ## imm = 0x3FFF
testl $16384, %ecx ## imm = 0x4000
cmovel %eax, %edi
addl %edi, %edi
movswl %di, %eax
sarl %eax
popq %rbp
retq
|
x86_64 |
15 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return subu<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovael %edi, %eax
andl $32767, %eax ## imm = 0x7FFF
popq %rbp
retq
|
x86_64 |
16 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return subs<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzwl %di, %eax
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
xorl %ecx, %edi
shrl $15, %eax
addl $32767, %eax ## imm = 0x7FFF
testw %si, %di
cmovnsl %ecx, %eax
cwtl
popq %rbp
retq
|
x86_64 |
16 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return subu<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subw %si, %di
cmovbw %ax, %di
movzwl %di, %eax
popq %rbp
retq
|
x86_64 |
17 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return subs<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl %edi
andl $32768, %edi ## imm = 0x8000
leal 2147450880(%rdi), %edx
shll $15, %eax
testl $65536, %ecx ## imm = 0x10000
cmovnel %edx, %eax
sarl $15, %eax
popq %rbp
retq
|
x86_64 |
17 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return subu<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $131071, %eax ## imm = 0x1FFFF
popq %rbp
retq
|
x86_64 |
18 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return subs<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $3, %edi
andl $16384, %edi ## imm = 0x4000
leal 2147467264(%rdi), %edx
shll $14, %eax
testl $131072, %ecx ## imm = 0x20000
cmovnel %edx, %eax
sarl $14, %eax
popq %rbp
retq
|
x86_64 |
18 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return subu<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $262143, %eax ## imm = 0x3FFFF
popq %rbp
retq
|
x86_64 |
19 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return subs<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $5, %edi
andl $8192, %edi ## imm = 0x2000
leal 2147475456(%rdi), %edx
shll $13, %eax
testl $262144, %ecx ## imm = 0x40000
cmovnel %edx, %eax
sarl $13, %eax
popq %rbp
retq
|
x86_64 |
19 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return subu<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $524287, %eax ## imm = 0x7FFFF
popq %rbp
retq
|
x86_64 |
20 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return subs<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $7, %edi
andl $4096, %edi ## imm = 0x1000
leal 2147479552(%rdi), %edx
shll $12, %eax
testl $524288, %ecx ## imm = 0x80000
cmovnel %edx, %eax
sarl $12, %eax
popq %rbp
retq
|
x86_64 |
20 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return subu<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $1048575, %eax ## imm = 0xFFFFF
popq %rbp
retq
|
x86_64 |
21 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return subs<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $9, %edi
andl $2048, %edi ## imm = 0x800
leal 2147481600(%rdi), %edx
shll $11, %eax
testl $1048576, %ecx ## imm = 0x100000
cmovnel %edx, %eax
sarl $11, %eax
popq %rbp
retq
|
x86_64 |
21 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return subu<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $2097151, %eax ## imm = 0x1FFFFF
popq %rbp
retq
|
x86_64 |
22 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return subs<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $11, %edi
andl $1024, %edi ## imm = 0x400
leal 2147482624(%rdi), %edx
shll $10, %eax
testl $2097152, %ecx ## imm = 0x200000
cmovnel %edx, %eax
sarl $10, %eax
popq %rbp
retq
|
x86_64 |
22 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return subu<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $4194303, %eax ## imm = 0x3FFFFF
popq %rbp
retq
|
x86_64 |
23 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return subs<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $13, %edi
andl $512, %edi ## imm = 0x200
leal 2147483136(%rdi), %edx
shll $9, %eax
testl $4194304, %ecx ## imm = 0x400000
cmovnel %edx, %eax
sarl $9, %eax
popq %rbp
retq
|
x86_64 |
23 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return subu<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $8388607, %eax ## imm = 0x7FFFFF
popq %rbp
retq
|
x86_64 |
24 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return subs<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $15, %edi
andl $256, %edi ## imm = 0x100
leal 2147483392(%rdi), %edx
shll $8, %eax
testl $8388608, %ecx ## imm = 0x800000
cmovnel %edx, %eax
sarl $8, %eax
popq %rbp
retq
|
x86_64 |
24 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return subu<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $16777215, %eax ## imm = 0xFFFFFF
popq %rbp
retq
|
x86_64 |
25 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return subs<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $24, %edi
andl $1, %edi
leal 16777215(%rdi), %eax
testl $16777216, %edx ## imm = 0x1000000
cmovel %ecx, %eax
shll $7, %eax
sarl $7, %eax
popq %rbp
retq
|
x86_64 |
25 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return subu<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $33554431, %eax ## imm = 0x1FFFFFF
popq %rbp
retq
|
x86_64 |
26 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return subs<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $25, %edi
andl $1, %edi
leal 33554431(%rdi), %eax
testl $33554432, %edx ## imm = 0x2000000
cmovel %ecx, %eax
shll $6, %eax
sarl $6, %eax
popq %rbp
retq
|
x86_64 |
26 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return subu<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $67108863, %eax ## imm = 0x3FFFFFF
popq %rbp
retq
|
x86_64 |
27 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return subs<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $26, %edi
andl $1, %edi
leal 67108863(%rdi), %eax
testl $67108864, %edx ## imm = 0x4000000
cmovel %ecx, %eax
shll $5, %eax
sarl $5, %eax
popq %rbp
retq
|
x86_64 |
27 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return subu<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $134217727, %eax ## imm = 0x7FFFFFF
popq %rbp
retq
|
x86_64 |
28 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return subs<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $27, %edi
andl $1, %edi
leal 134217727(%rdi), %eax
testl $134217728, %edx ## imm = 0x8000000
cmovel %ecx, %eax
shll $4, %eax
sarl $4, %eax
popq %rbp
retq
|
x86_64 |
28 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return subu<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $268435455, %eax ## imm = 0xFFFFFFF
popq %rbp
retq
|
x86_64 |
29 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return subs<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $28, %edi
andl $1, %edi
leal 268435455(%rdi), %eax
testl $268435456, %edx ## imm = 0x10000000
cmovel %ecx, %eax
shll $3, %eax
sarl $3, %eax
popq %rbp
retq
|
x86_64 |
29 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return subu<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $536870911, %eax ## imm = 0x1FFFFFFF
popq %rbp
retq
|
x86_64 |
30 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return subs<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
andl %esi, %edx
shrl $29, %edi
andl $1, %edi
leal 536870911(%rdi), %eax
testl $536870912, %edx ## imm = 0x20000000
cmovel %ecx, %eax
shll $2, %eax
sarl $2, %eax
popq %rbp
retq
|
x86_64 |
30 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return subu<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $1073741823, %eax ## imm = 0x3FFFFFFF
popq %rbp
retq
|
x86_64 |
31 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return subs<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
subl %esi, %eax
xorl %edi, %esi
movl %eax, %ecx
xorl %edi, %ecx
andl %esi, %ecx
shrl $30, %edi
andl $1, %edi
addl $1073741823, %edi ## imm = 0x3FFFFFFF
testl $1073741824, %ecx ## imm = 0x40000000
cmovel %eax, %edi
leal (%rdi,%rdi), %eax
sarl %eax
popq %rbp
retq
|
x86_64 |
31 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return subu<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %eax, %eax
subl %esi, %edi
cmovael %edi, %eax
andl $2147483647, %eax ## imm = 0x7FFFFFFF
popq %rbp
retq
|
x86_64 |
32 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return subs<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %ecx
subl %esi, %ecx
xorl %edi, %esi
movl %ecx, %edx
xorl %edi, %edx
shrl $31, %edi
leal 2147483647(%rdi), %eax
testl %esi, %edx
cmovnsl %ecx, %eax
popq %rbp
retq
|
x86_64 |
32 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return subu<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %ecx, %ecx
subl %esi, %eax
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
33 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return subs<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq %rdi
andl $-2147483648, %edi ## imm = 0x80000000
movabsq $9223372034707292160, %rdx ## imm = 0x7FFFFFFF80000000
addq %rdi, %rdx
shlq $31, %rax
btq $32, %rcx
cmovbq %rdx, %rax
sarq $31, %rax
popq %rbp
retq
|
x86_64 |
33 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return subu<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $8589934591, %rax ## imm = 0x1FFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
34 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return subs<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $3, %rdi
andl $1073741824, %edi ## imm = 0x40000000
movabsq $9223372035781033984, %rdx ## imm = 0x7FFFFFFFC0000000
addq %rdi, %rdx
shlq $30, %rax
btq $33, %rcx
cmovbq %rdx, %rax
sarq $30, %rax
popq %rbp
retq
|
x86_64 |
34 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return subu<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $17179869183, %rax ## imm = 0x3FFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
35 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return subs<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $5, %rdi
andl $536870912, %edi ## imm = 0x20000000
movabsq $9223372036317904896, %rdx ## imm = 0x7FFFFFFFE0000000
addq %rdi, %rdx
shlq $29, %rax
btq $34, %rcx
cmovbq %rdx, %rax
sarq $29, %rax
popq %rbp
retq
|
x86_64 |
35 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return subu<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $34359738367, %rax ## imm = 0x7FFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
36 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return subs<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $7, %rdi
andl $268435456, %edi ## imm = 0x10000000
movabsq $9223372036586340352, %rdx ## imm = 0x7FFFFFFFF0000000
addq %rdi, %rdx
shlq $28, %rax
btq $35, %rcx
cmovbq %rdx, %rax
sarq $28, %rax
popq %rbp
retq
|
x86_64 |
36 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return subu<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $68719476735, %rax ## imm = 0xFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
37 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return subs<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $9, %rdi
andl $134217728, %edi ## imm = 0x8000000
movabsq $9223372036720558080, %rdx ## imm = 0x7FFFFFFFF8000000
addq %rdi, %rdx
shlq $27, %rax
btq $36, %rcx
cmovbq %rdx, %rax
sarq $27, %rax
popq %rbp
retq
|
x86_64 |
37 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return subu<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $137438953471, %rax ## imm = 0x1FFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
38 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return subs<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $11, %rdi
andl $67108864, %edi ## imm = 0x4000000
movabsq $9223372036787666944, %rdx ## imm = 0x7FFFFFFFFC000000
addq %rdi, %rdx
shlq $26, %rax
btq $37, %rcx
cmovbq %rdx, %rax
sarq $26, %rax
popq %rbp
retq
|
x86_64 |
38 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return subu<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $274877906943, %rax ## imm = 0x3FFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
39 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return subs<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $13, %rdi
andl $33554432, %edi ## imm = 0x2000000
movabsq $9223372036821221376, %rdx ## imm = 0x7FFFFFFFFE000000
addq %rdi, %rdx
shlq $25, %rax
btq $38, %rcx
cmovbq %rdx, %rax
sarq $25, %rax
popq %rbp
retq
|
x86_64 |
39 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return subu<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $549755813887, %rax ## imm = 0x7FFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
40 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return subs<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $15, %rdi
andl $16777216, %edi ## imm = 0x1000000
movabsq $9223372036837998592, %rdx ## imm = 0x7FFFFFFFFF000000
addq %rdi, %rdx
shlq $24, %rax
btq $39, %rcx
cmovbq %rdx, %rax
sarq $24, %rax
popq %rbp
retq
|
x86_64 |
40 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return subu<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $1099511627775, %rax ## imm = 0xFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
41 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return subs<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $17, %rdi
andl $8388608, %edi ## imm = 0x800000
movabsq $9223372036846387200, %rdx ## imm = 0x7FFFFFFFFF800000
addq %rdi, %rdx
shlq $23, %rax
btq $40, %rcx
cmovbq %rdx, %rax
sarq $23, %rax
popq %rbp
retq
|
x86_64 |
41 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return subu<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $2199023255551, %rax ## imm = 0x1FFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
42 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return subs<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $19, %rdi
andl $4194304, %edi ## imm = 0x400000
movabsq $9223372036850581504, %rdx ## imm = 0x7FFFFFFFFFC00000
addq %rdi, %rdx
shlq $22, %rax
btq $41, %rcx
cmovbq %rdx, %rax
sarq $22, %rax
popq %rbp
retq
|
x86_64 |
42 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return subu<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $4398046511103, %rax ## imm = 0x3FFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
43 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return subs<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $21, %rdi
andl $2097152, %edi ## imm = 0x200000
movabsq $9223372036852678656, %rdx ## imm = 0x7FFFFFFFFFE00000
addq %rdi, %rdx
shlq $21, %rax
btq $42, %rcx
cmovbq %rdx, %rax
sarq $21, %rax
popq %rbp
retq
|
x86_64 |
43 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return subu<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $8796093022207, %rax ## imm = 0x7FFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
44 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return subs<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $23, %rdi
andl $1048576, %edi ## imm = 0x100000
movabsq $9223372036853727232, %rdx ## imm = 0x7FFFFFFFFFF00000
addq %rdi, %rdx
shlq $20, %rax
btq $43, %rcx
cmovbq %rdx, %rax
sarq $20, %rax
popq %rbp
retq
|
x86_64 |
44 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return subu<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $17592186044415, %rax ## imm = 0xFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
45 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return subs<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $25, %rdi
andl $524288, %edi ## imm = 0x80000
movabsq $9223372036854251520, %rdx ## imm = 0x7FFFFFFFFFF80000
addq %rdi, %rdx
shlq $19, %rax
btq $44, %rcx
cmovbq %rdx, %rax
sarq $19, %rax
popq %rbp
retq
|
x86_64 |
45 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return subu<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $35184372088831, %rax ## imm = 0x1FFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
46 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return subs<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $27, %rdi
andl $262144, %edi ## imm = 0x40000
movabsq $9223372036854513664, %rdx ## imm = 0x7FFFFFFFFFFC0000
addq %rdi, %rdx
shlq $18, %rax
btq $45, %rcx
cmovbq %rdx, %rax
sarq $18, %rax
popq %rbp
retq
|
x86_64 |
46 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return subu<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $70368744177663, %rax ## imm = 0x3FFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
47 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return subs<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $29, %rdi
andl $131072, %edi ## imm = 0x20000
movabsq $9223372036854644736, %rdx ## imm = 0x7FFFFFFFFFFE0000
addq %rdi, %rdx
shlq $17, %rax
btq $46, %rcx
cmovbq %rdx, %rax
sarq $17, %rax
popq %rbp
retq
|
x86_64 |
47 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return subu<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $140737488355327, %rax ## imm = 0x7FFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
48 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return subs<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $31, %rdi
andl $65536, %edi ## imm = 0x10000
movabsq $9223372036854710272, %rdx ## imm = 0x7FFFFFFFFFFF0000
addq %rdi, %rdx
shlq $16, %rax
btq $47, %rcx
cmovbq %rdx, %rax
sarq $16, %rax
popq %rbp
retq
|
x86_64 |
48 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return subu<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $281474976710655, %rax ## imm = 0xFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
49 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return subs<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $33, %rdi
andl $32768, %edi ## imm = 0x8000
movabsq $9223372036854743040, %rdx ## imm = 0x7FFFFFFFFFFF8000
addq %rdi, %rdx
shlq $15, %rax
btq $48, %rcx
cmovbq %rdx, %rax
sarq $15, %rax
popq %rbp
retq
|
x86_64 |
49 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return subu<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $562949953421311, %rax ## imm = 0x1FFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
50 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return subs<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $35, %rdi
andl $16384, %edi ## imm = 0x4000
movabsq $9223372036854759424, %rdx ## imm = 0x7FFFFFFFFFFFC000
addq %rdi, %rdx
shlq $14, %rax
btq $49, %rcx
cmovbq %rdx, %rax
sarq $14, %rax
popq %rbp
retq
|
x86_64 |
50 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return subu<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $1125899906842623, %rax ## imm = 0x3FFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
51 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return subs<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $37, %rdi
andl $8192, %edi ## imm = 0x2000
movabsq $9223372036854767616, %rdx ## imm = 0x7FFFFFFFFFFFE000
addq %rdi, %rdx
shlq $13, %rax
btq $50, %rcx
cmovbq %rdx, %rax
sarq $13, %rax
popq %rbp
retq
|
x86_64 |
51 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return subu<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $2251799813685247, %rax ## imm = 0x7FFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
52 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return subs<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $39, %rdi
andl $4096, %edi ## imm = 0x1000
movabsq $9223372036854771712, %rdx ## imm = 0x7FFFFFFFFFFFF000
addq %rdi, %rdx
shlq $12, %rax
btq $51, %rcx
cmovbq %rdx, %rax
sarq $12, %rax
popq %rbp
retq
|
x86_64 |
52 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return subu<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $4503599627370495, %rax ## imm = 0xFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
53 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return subs<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $41, %rdi
andl $2048, %edi ## imm = 0x800
movabsq $9223372036854773760, %rdx ## imm = 0x7FFFFFFFFFFFF800
addq %rdi, %rdx
shlq $11, %rax
btq $52, %rcx
cmovbq %rdx, %rax
sarq $11, %rax
popq %rbp
retq
|
x86_64 |
53 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return subu<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $9007199254740991, %rax ## imm = 0x1FFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
54 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return subs<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $43, %rdi
andl $1024, %edi ## imm = 0x400
movabsq $9223372036854774784, %rdx ## imm = 0x7FFFFFFFFFFFFC00
addq %rdi, %rdx
shlq $10, %rax
btq $53, %rcx
cmovbq %rdx, %rax
sarq $10, %rax
popq %rbp
retq
|
x86_64 |
54 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return subu<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $18014398509481983, %rax ## imm = 0x3FFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
55 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return subs<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $45, %rdi
andl $512, %edi ## imm = 0x200
movabsq $9223372036854775296, %rdx ## imm = 0x7FFFFFFFFFFFFE00
addq %rdi, %rdx
shlq $9, %rax
btq $54, %rcx
cmovbq %rdx, %rax
sarq $9, %rax
popq %rbp
retq
|
x86_64 |
55 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return subu<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $36028797018963967, %rax ## imm = 0x7FFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
56 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return subs<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
andq %rsi, %rcx
shrq $47, %rdi
andl $256, %edi ## imm = 0x100
movabsq $9223372036854775552, %rdx ## imm = 0x7FFFFFFFFFFFFF00
addq %rdi, %rdx
shlq $8, %rax
btq $55, %rcx
cmovbq %rdx, %rax
sarq $8, %rax
popq %rbp
retq
|
x86_64 |
56 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return subu<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $72057594037927935, %rax ## imm = 0xFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
57 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return subs<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $72057594037927935, %rax ## imm = 0xFFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $56, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $7, %rax
sarq $7, %rax
popq %rbp
retq
|
x86_64 |
57 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return subu<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $144115188075855871, %rax ## imm = 0x1FFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
58 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return subs<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $144115188075855871, %rax ## imm = 0x1FFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $57, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $6, %rax
sarq $6, %rax
popq %rbp
retq
|
x86_64 |
58 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return subu<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $288230376151711743, %rax ## imm = 0x3FFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
59 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return subs<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $288230376151711743, %rax ## imm = 0x3FFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $58, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $5, %rax
sarq $5, %rax
popq %rbp
retq
|
x86_64 |
59 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return subu<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $576460752303423487, %rax ## imm = 0x7FFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
60 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return subs<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $576460752303423487, %rax ## imm = 0x7FFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $59, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $4, %rax
sarq $4, %rax
popq %rbp
retq
|
x86_64 |
60 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return subu<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $1152921504606846975, %rax ## imm = 0xFFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
61 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return subs<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $1152921504606846975, %rax ## imm = 0xFFFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $60, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $3, %rax
sarq $3, %rax
popq %rbp
retq
|
x86_64 |
61 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return subu<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $2305843009213693951, %rax ## imm = 0x1FFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
62 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return subs<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %r8
xorq %rdi, %r8
movabsq $2305843009213693951, %rax ## imm = 0x1FFFFFFFFFFFFFFF
leaq 1(%rax), %rdx
andq %rsi, %rdx
shrq $61, %rdi
andl $1, %edi
addq %rdi, %rax
testq %r8, %rdx
cmoveq %rcx, %rax
shlq $2, %rax
sarq $2, %rax
popq %rbp
retq
|
x86_64 |
62 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return subu<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $4611686018427387903, %rax ## imm = 0x3FFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
63 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return subs<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
subq %rsi, %rax
xorq %rdi, %rsi
movq %rax, %rcx
xorq %rdi, %rcx
movabsq $4611686018427387903, %r8 ## imm = 0x3FFFFFFFFFFFFFFF
leaq 1(%r8), %rdx
andq %rsi, %rdx
shrq $62, %rdi
andl $1, %edi
addq %r8, %rdi
testq %rcx, %rdx
cmoveq %rax, %rdi
leaq (%rdi,%rdi), %rax
sarq %rax
popq %rbp
retq
|
x86_64 |
63 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return subu<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
xorl %ecx, %ecx
subq %rsi, %rdi
cmovaeq %rdi, %rcx
movabsq $9223372036854775807, %rax ## imm = 0x7FFFFFFFFFFFFFFF
andq %rcx, %rax
popq %rbp
retq
|
x86_64 |
64 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return subs<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rcx
subq %rsi, %rcx
xorq %rdi, %rsi
movq %rcx, %rdx
xorq %rdi, %rdx
shrq $63, %rdi
movabsq $9223372036854775807, %rax ## imm = 0x7FFFFFFFFFFFFFFF
addq %rdi, %rax
testq %rsi, %rdx
cmovnsq %rcx, %rax
popq %rbp
retq
|
x86_64 |
64 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return subu<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
xorl %ecx, %ecx
subq %rsi, %rax
cmovbq %rcx, %rax
popq %rbp
retq
|
x86_64 |
4 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return muls<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $4, %ecx
movl %eax, %edx
sarb $3, %dl
cmpb %cl, %dl
je LBB0_2
xorb %sil, %dil
addb %dil, %dil
andb $16, %dil
addb $112, %dil
sarb $4, %dil
movl %edi, %eax
LBB0_2:
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
4 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return mulu<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %eax
andb $15, %al
testl $4080, %edi ## imm = 0xFF0
movzbl %al, %eax
movl $15, %ecx
cmovel %eax, %ecx
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
5 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return muls<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $5, %ecx
movl %eax, %edx
sarb $4, %dl
cmpb %cl, %dl
je LBB0_2
xorb %sil, %dil
shrb %dil
andb $8, %dil
addb $120, %dil
sarb $3, %dil
movl %edi, %eax
LBB0_2:
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return mulu<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %eax
andb $31, %al
testl $8160, %edi ## imm = 0x1FE0
movzbl %al, %eax
movl $31, %ecx
cmovel %eax, %ecx
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
6 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return muls<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $6, %ecx
movl %eax, %edx
sarb $5, %dl
cmpb %cl, %dl
je LBB0_2
xorb %sil, %dil
shrb $3, %dil
andb $4, %dil
addb $124, %dil
sarb $2, %dil
movl %edi, %eax
LBB0_2:
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return mulu<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %eax
andb $63, %al
testl $16320, %edi ## imm = 0x3FC0
movzbl %al, %eax
movl $63, %ecx
cmovel %eax, %ecx
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
7 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return muls<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $7, %ecx
movl %eax, %edx
sarb $6, %dl
cmpb %cl, %dl
je LBB0_2
xorb %sil, %dil
shrb $5, %dil
andb $2, %dil
addb $126, %dil
sarb %dil
movl %edi, %eax
LBB0_2:
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return mulu<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %eax
andb $127, %al
testl $32640, %edi ## imm = 0x7F80
movzbl %al, %eax
movl $127, %ecx
cmovel %eax, %ecx
movzbl %cl, %eax
popq %rbp
retq
|
x86_64 |
8 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return muls<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
rolw $8, %ax
cwtl
movzwl %ax, %ecx
shrl $8, %ecx
movl %eax, %edx
shrl $15, %edx
xorl %edi, %esi
shrb $7, %sil
addb $127, %sil
cmpb %al, %dl
movzbl %sil, %eax
cmovel %ecx, %eax
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
8 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return mulu<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
mulb %sil
sbbb %cl, %cl
orb %cl, %al
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
9 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return muls<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $9, %ecx
movswl %ax, %edx
shrl $8, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl %esi
andl $128, %esi
addl $32640, %esi ## imm = 0x7F80
movswl %si, %eax
shrl $7, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
9 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return mulu<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $511, %ecx ## imm = 0x1FF
testl $33553920, %edi ## imm = 0x1FFFE00
movl $511, %eax ## imm = 0x1FF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
10 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return muls<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $10, %ecx
movswl %ax, %edx
shrl $9, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $3, %esi
andl $64, %esi
addl $32704, %esi ## imm = 0x7FC0
movswl %si, %eax
shrl $6, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
10 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return mulu<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $1023, %ecx ## imm = 0x3FF
testl $67107840, %edi ## imm = 0x3FFFC00
movl $1023, %eax ## imm = 0x3FF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
11 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return muls<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $11, %ecx
movswl %ax, %edx
shrl $10, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $5, %esi
andl $32, %esi
addl $32736, %esi ## imm = 0x7FE0
movswl %si, %eax
shrl $5, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
11 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return mulu<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $2047, %ecx ## imm = 0x7FF
testl $134215680, %edi ## imm = 0x7FFF800
movl $2047, %eax ## imm = 0x7FF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
12 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return muls<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $12, %ecx
movswl %ax, %edx
shrl $11, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $7, %esi
andl $16, %esi
addl $32752, %esi ## imm = 0x7FF0
movswl %si, %eax
shrl $4, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
12 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return mulu<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $4095, %ecx ## imm = 0xFFF
testl $268431360, %edi ## imm = 0xFFFF000
movl $4095, %eax ## imm = 0xFFF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
13 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return muls<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $13, %ecx
movswl %ax, %edx
shrl $12, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $9, %esi
andl $8, %esi
addl $32760, %esi ## imm = 0x7FF8
movswl %si, %eax
shrl $3, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
13 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return mulu<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $8191, %ecx ## imm = 0x1FFF
testl $536862720, %edi ## imm = 0x1FFFE000
movl $8191, %eax ## imm = 0x1FFF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
14 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return muls<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $14, %ecx
movswl %ax, %edx
shrl $13, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $11, %esi
andl $4, %esi
addl $32764, %esi ## imm = 0x7FFC
movswl %si, %eax
shrl $2, %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
14 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return mulu<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $16383, %ecx ## imm = 0x3FFF
testl $1073725440, %edi ## imm = 0x3FFFC000
movl $16383, %eax ## imm = 0x3FFF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
15 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return muls<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
imull %edi, %eax
movl %eax, %ecx
shrl $15, %ecx
movswl %ax, %edx
shrl $14, %edx
cmpw %cx, %dx
je LBB0_2
xorl %edi, %esi
shrl $13, %esi
andl $2, %esi
addl $32766, %esi ## imm = 0x7FFE
movswl %si, %eax
shrl %eax
LBB0_2:
cwtl
popq %rbp
retq
|
x86_64 |
15 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return mulu<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
imull %esi, %edi
movl %edi, %ecx
andl $32767, %ecx ## imm = 0x7FFF
testl $2147450880, %edi ## imm = 0x7FFF8000
movl $32767, %eax ## imm = 0x7FFF
cmovel %ecx, %eax
popq %rbp
retq
|
x86_64 |
16 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return muls<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %esi, %eax
xorl %edi, %eax
movzwl %ax, %eax
shrl $15, %eax
addl $32767, %eax ## imm = 0x7FFF
imulw %si, %di
cmovbw %ax, %di
movswl %di, %eax
popq %rbp
retq
|
x86_64 |
16 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return mulu<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
mulw %si
sbbw %cx, %cx
orw %cx, %ax
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
17 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return muls<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $17, %rcx
movl %eax, %edx
sarl $16, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl %esi
andl $32768, %esi ## imm = 0x8000
addl $2147450880, %esi ## imm = 0x7FFF8000
sarl $15, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
17 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return mulu<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $131071, %edx ## imm = 0x1FFFF
movabsq $562949953290240, %rax ## imm = 0x1FFFFFFFE0000
testq %rax, %rcx
movl $131071, %eax ## imm = 0x1FFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
18 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return muls<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $18, %rcx
movl %eax, %edx
sarl $17, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $3, %esi
andl $16384, %esi ## imm = 0x4000
addl $2147467264, %esi ## imm = 0x7FFFC000
sarl $14, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
18 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return mulu<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $262143, %edx ## imm = 0x3FFFF
movabsq $1125899906580480, %rax ## imm = 0x3FFFFFFFC0000
testq %rax, %rcx
movl $262143, %eax ## imm = 0x3FFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
19 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return muls<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $19, %rcx
movl %eax, %edx
sarl $18, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $5, %esi
andl $8192, %esi ## imm = 0x2000
addl $2147475456, %esi ## imm = 0x7FFFE000
sarl $13, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
19 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return mulu<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $524287, %edx ## imm = 0x7FFFF
movabsq $2251799813160960, %rax ## imm = 0x7FFFFFFF80000
testq %rax, %rcx
movl $524287, %eax ## imm = 0x7FFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
20 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return muls<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $20, %rcx
movl %eax, %edx
sarl $19, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $7, %esi
andl $4096, %esi ## imm = 0x1000
addl $2147479552, %esi ## imm = 0x7FFFF000
sarl $12, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
20 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return mulu<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $1048575, %edx ## imm = 0xFFFFF
movabsq $4503599626321920, %rax ## imm = 0xFFFFFFFF00000
testq %rax, %rcx
movl $1048575, %eax ## imm = 0xFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
21 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return muls<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $21, %rcx
movl %eax, %edx
sarl $20, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $9, %esi
andl $2048, %esi ## imm = 0x800
addl $2147481600, %esi ## imm = 0x7FFFF800
sarl $11, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
21 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return mulu<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $2097151, %edx ## imm = 0x1FFFFF
movabsq $9007199252643840, %rax ## imm = 0x1FFFFFFFE00000
testq %rax, %rcx
movl $2097151, %eax ## imm = 0x1FFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
22 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return muls<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $22, %rcx
movl %eax, %edx
sarl $21, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $11, %esi
andl $1024, %esi ## imm = 0x400
addl $2147482624, %esi ## imm = 0x7FFFFC00
sarl $10, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
22 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return mulu<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $4194303, %edx ## imm = 0x3FFFFF
movabsq $18014398505287680, %rax ## imm = 0x3FFFFFFFC00000
testq %rax, %rcx
movl $4194303, %eax ## imm = 0x3FFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
23 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return muls<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $23, %rcx
movl %eax, %edx
sarl $22, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $13, %esi
andl $512, %esi ## imm = 0x200
addl $2147483136, %esi ## imm = 0x7FFFFE00
sarl $9, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
23 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return mulu<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $8388607, %edx ## imm = 0x7FFFFF
movabsq $36028797010575360, %rax ## imm = 0x7FFFFFFF800000
testq %rax, %rcx
movl $8388607, %eax ## imm = 0x7FFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
24 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return muls<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $24, %rcx
movl %eax, %edx
sarl $23, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $15, %esi
andl $256, %esi ## imm = 0x100
addl $2147483392, %esi ## imm = 0x7FFFFF00
sarl $8, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
24 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return mulu<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $16777215, %edx ## imm = 0xFFFFFF
movabsq $72057594021150720, %rax ## imm = 0xFFFFFFFF000000
testq %rax, %rcx
movl $16777215, %eax ## imm = 0xFFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
25 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return muls<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $25, %rcx
movl %eax, %edx
sarl $24, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $17, %esi
andl $128, %esi
addl $2147483520, %esi ## imm = 0x7FFFFF80
sarl $7, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
25 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return mulu<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $33554431, %edx ## imm = 0x1FFFFFF
movabsq $144115188042301440, %rax ## imm = 0x1FFFFFFFE000000
testq %rax, %rcx
movl $33554431, %eax ## imm = 0x1FFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
26 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return muls<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $26, %rcx
movl %eax, %edx
sarl $25, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $19, %esi
andl $64, %esi
addl $2147483584, %esi ## imm = 0x7FFFFFC0
sarl $6, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
26 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return mulu<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $67108863, %edx ## imm = 0x3FFFFFF
movabsq $288230376084602880, %rax ## imm = 0x3FFFFFFFC000000
testq %rax, %rcx
movl $67108863, %eax ## imm = 0x3FFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
27 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return muls<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $27, %rcx
movl %eax, %edx
sarl $26, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $21, %esi
andl $32, %esi
addl $2147483616, %esi ## imm = 0x7FFFFFE0
sarl $5, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
27 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return mulu<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $134217727, %edx ## imm = 0x7FFFFFF
movabsq $576460752169205760, %rax ## imm = 0x7FFFFFFF8000000
testq %rax, %rcx
movl $134217727, %eax ## imm = 0x7FFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
28 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return muls<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $28, %rcx
movl %eax, %edx
sarl $27, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $23, %esi
andl $16, %esi
addl $2147483632, %esi ## imm = 0x7FFFFFF0
sarl $4, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
28 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return mulu<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $268435455, %edx ## imm = 0xFFFFFFF
movabsq $1152921504338411520, %rax ## imm = 0xFFFFFFFF0000000
testq %rax, %rcx
movl $268435455, %eax ## imm = 0xFFFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
29 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return muls<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $29, %rcx
movl %eax, %edx
sarl $28, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $25, %esi
andl $8, %esi
addl $2147483640, %esi ## imm = 0x7FFFFFF8
sarl $3, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
29 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return mulu<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $536870911, %edx ## imm = 0x1FFFFFFF
movabsq $2305843008676823040, %rax ## imm = 0x1FFFFFFFE0000000
testq %rax, %rcx
movl $536870911, %eax ## imm = 0x1FFFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
30 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return muls<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $30, %rcx
movl %eax, %edx
sarl $29, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $27, %esi
andl $4, %esi
addl $2147483644, %esi ## imm = 0x7FFFFFFC
sarl $2, %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
30 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return mulu<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $1073741823, %edx ## imm = 0x3FFFFFFF
movabsq $4611686017353646080, %rax ## imm = 0x3FFFFFFFC0000000
testq %rax, %rcx
movl $1073741823, %eax ## imm = 0x3FFFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
31 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return muls<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movslq %edi, %rcx
movslq %esi, %rax
imulq %rcx, %rax
movq %rax, %rcx
shrq $31, %rcx
movl %eax, %edx
sarl $30, %edx
cmpl %ecx, %edx
je LBB0_2
xorl %edi, %esi
shrl $29, %esi
andl $2, %esi
addl $2147483646, %esi ## imm = 0x7FFFFFFE
sarl %esi
movl %esi, %eax
LBB0_2:
popq %rbp
retq
|
x86_64 |
31 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return mulu<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
imulq %rax, %rcx
movl %ecx, %edx
andl $2147483647, %edx ## imm = 0x7FFFFFFF
movabsq $9223372034707292160, %rax ## imm = 0x7FFFFFFF80000000
testq %rax, %rcx
movl $2147483647, %eax ## imm = 0x7FFFFFFF
cmovel %edx, %eax
popq %rbp
retq
|
x86_64 |
32 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return muls<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
movl %esi, %ecx
xorl %edi, %ecx
shrl $31, %ecx
addl $2147483647, %ecx ## imm = 0x7FFFFFFF
imull %esi, %eax
cmovbl %ecx, %eax
popq %rbp
retq
|
x86_64 |
32 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return mulu<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
mull %esi
sbbl %ecx, %ecx
orl %ecx, %eax
popq %rbp
retq
|
x86_64 |
33 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return muls<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $33, %rax, %r9
shlq $31, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq %rsi
andl $-2147483648, %esi ## imm = 0x80000000
movabsq $9223372034707292160, %rax ## imm = 0x7FFFFFFF80000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $31, %rax
popq %rbp
retq
|
x86_64 |
33 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return mulu<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $31, %rax, %rsi
movabsq $4294967296, %rcx ## imm = 0x100000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $8589934591, %rax ## imm = 0x1FFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
34 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return muls<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $34, %rax, %r9
shlq $30, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $3, %rsi
andl $1073741824, %esi ## imm = 0x40000000
movabsq $9223372035781033984, %rax ## imm = 0x7FFFFFFFC0000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $30, %rax
popq %rbp
retq
|
x86_64 |
34 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return mulu<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $30, %rax, %rsi
movabsq $12884901888, %rcx ## imm = 0x300000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $17179869183, %rax ## imm = 0x3FFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
35 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return muls<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $35, %rax, %r9
shlq $29, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $5, %rsi
andl $536870912, %esi ## imm = 0x20000000
movabsq $9223372036317904896, %rax ## imm = 0x7FFFFFFFE0000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $29, %rax
popq %rbp
retq
|
x86_64 |
35 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return mulu<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $29, %rax, %rsi
movabsq $30064771072, %rcx ## imm = 0x700000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $34359738367, %rax ## imm = 0x7FFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
36 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return muls<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $36, %rax, %r9
shlq $28, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $7, %rsi
andl $268435456, %esi ## imm = 0x10000000
movabsq $9223372036586340352, %rax ## imm = 0x7FFFFFFFF0000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $28, %rax
popq %rbp
retq
|
x86_64 |
36 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return mulu<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $28, %rax, %rsi
movabsq $64424509440, %rcx ## imm = 0xF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $68719476735, %rax ## imm = 0xFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
37 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return muls<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $37, %rax, %r9
shlq $27, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $9, %rsi
andl $134217728, %esi ## imm = 0x8000000
movabsq $9223372036720558080, %rax ## imm = 0x7FFFFFFFF8000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $27, %rax
popq %rbp
retq
|
x86_64 |
37 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return mulu<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $27, %rax, %rsi
movabsq $133143986176, %rcx ## imm = 0x1F00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $137438953471, %rax ## imm = 0x1FFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
38 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return muls<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $38, %rax, %r9
shlq $26, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $11, %rsi
andl $67108864, %esi ## imm = 0x4000000
movabsq $9223372036787666944, %rax ## imm = 0x7FFFFFFFFC000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $26, %rax
popq %rbp
retq
|
x86_64 |
38 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return mulu<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $26, %rax, %rsi
movabsq $270582939648, %rcx ## imm = 0x3F00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $274877906943, %rax ## imm = 0x3FFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
39 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return muls<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $39, %rax, %r9
shlq $25, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $13, %rsi
andl $33554432, %esi ## imm = 0x2000000
movabsq $9223372036821221376, %rax ## imm = 0x7FFFFFFFFE000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $25, %rax
popq %rbp
retq
|
x86_64 |
39 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return mulu<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $25, %rax, %rsi
movabsq $545460846592, %rcx ## imm = 0x7F00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $549755813887, %rax ## imm = 0x7FFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
40 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return muls<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $40, %rax, %r9
shlq $24, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $15, %rsi
andl $16777216, %esi ## imm = 0x1000000
movabsq $9223372036837998592, %rax ## imm = 0x7FFFFFFFFF000000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $24, %rax
popq %rbp
retq
|
x86_64 |
40 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return mulu<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $24, %rax, %rsi
movabsq $1095216660480, %rcx ## imm = 0xFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $1099511627775, %rax ## imm = 0xFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
41 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return muls<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $41, %rax, %r9
shlq $23, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $17, %rsi
andl $8388608, %esi ## imm = 0x800000
movabsq $9223372036846387200, %rax ## imm = 0x7FFFFFFFFF800000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $23, %rax
popq %rbp
retq
|
x86_64 |
41 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return mulu<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $23, %rax, %rsi
movabsq $2194728288256, %rcx ## imm = 0x1FF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $2199023255551, %rax ## imm = 0x1FFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
42 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return muls<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $42, %rax, %r9
shlq $22, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $19, %rsi
andl $4194304, %esi ## imm = 0x400000
movabsq $9223372036850581504, %rax ## imm = 0x7FFFFFFFFFC00000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $22, %rax
popq %rbp
retq
|
x86_64 |
42 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return mulu<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $22, %rax, %rsi
movabsq $4393751543808, %rcx ## imm = 0x3FF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $4398046511103, %rax ## imm = 0x3FFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
43 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return muls<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $43, %rax, %r9
shlq $21, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $21, %rsi
andl $2097152, %esi ## imm = 0x200000
movabsq $9223372036852678656, %rax ## imm = 0x7FFFFFFFFFE00000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $21, %rax
popq %rbp
retq
|
x86_64 |
43 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return mulu<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $21, %rax, %rsi
movabsq $8791798054912, %rcx ## imm = 0x7FF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $8796093022207, %rax ## imm = 0x7FFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
44 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return muls<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $44, %rax, %r9
shlq $20, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $23, %rsi
andl $1048576, %esi ## imm = 0x100000
movabsq $9223372036853727232, %rax ## imm = 0x7FFFFFFFFFF00000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $20, %rax
popq %rbp
retq
|
x86_64 |
44 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return mulu<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $20, %rax, %rsi
movabsq $17587891077120, %rcx ## imm = 0xFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $17592186044415, %rax ## imm = 0xFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
45 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return muls<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $45, %rax, %r9
shlq $19, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $25, %rsi
andl $524288, %esi ## imm = 0x80000
movabsq $9223372036854251520, %rax ## imm = 0x7FFFFFFFFFF80000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $19, %rax
popq %rbp
retq
|
x86_64 |
45 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return mulu<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $19, %rax, %rsi
movabsq $35180077121536, %rcx ## imm = 0x1FFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $35184372088831, %rax ## imm = 0x1FFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
46 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return muls<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $46, %rax, %r9
shlq $18, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $27, %rsi
andl $262144, %esi ## imm = 0x40000
movabsq $9223372036854513664, %rax ## imm = 0x7FFFFFFFFFFC0000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $18, %rax
popq %rbp
retq
|
x86_64 |
46 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return mulu<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $18, %rax, %rsi
movabsq $70364449210368, %rcx ## imm = 0x3FFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $70368744177663, %rax ## imm = 0x3FFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
47 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return muls<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $47, %rax, %r9
shlq $17, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $29, %rsi
andl $131072, %esi ## imm = 0x20000
movabsq $9223372036854644736, %rax ## imm = 0x7FFFFFFFFFFE0000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $17, %rax
popq %rbp
retq
|
x86_64 |
47 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return mulu<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $17, %rax, %rsi
movabsq $140733193388032, %rcx ## imm = 0x7FFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $140737488355327, %rax ## imm = 0x7FFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
48 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return muls<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $48, %rax, %r9
shlq $16, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $31, %rsi
andl $65536, %esi ## imm = 0x10000
movabsq $9223372036854710272, %rax ## imm = 0x7FFFFFFFFFFF0000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $16, %rax
popq %rbp
retq
|
x86_64 |
48 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return mulu<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $16, %rax, %rsi
movabsq $281470681743360, %rcx ## imm = 0xFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $281474976710655, %rax ## imm = 0xFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
49 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return muls<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $49, %rax, %r9
shlq $15, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $33, %rsi
andl $32768, %esi ## imm = 0x8000
movabsq $9223372036854743040, %rax ## imm = 0x7FFFFFFFFFFF8000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $15, %rax
popq %rbp
retq
|
x86_64 |
49 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return mulu<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $15, %rax, %rsi
movabsq $562945658454016, %rcx ## imm = 0x1FFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $562949953421311, %rax ## imm = 0x1FFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
50 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return muls<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $50, %rax, %r9
shlq $14, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $35, %rsi
andl $16384, %esi ## imm = 0x4000
movabsq $9223372036854759424, %rax ## imm = 0x7FFFFFFFFFFFC000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $14, %rax
popq %rbp
retq
|
x86_64 |
50 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return mulu<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $14, %rax, %rsi
movabsq $1125895611875328, %rcx ## imm = 0x3FFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $1125899906842623, %rax ## imm = 0x3FFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
51 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return muls<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $51, %rax, %r9
shlq $13, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $37, %rsi
andl $8192, %esi ## imm = 0x2000
movabsq $9223372036854767616, %rax ## imm = 0x7FFFFFFFFFFFE000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $13, %rax
popq %rbp
retq
|
x86_64 |
51 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return mulu<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $13, %rax, %rsi
movabsq $2251795518717952, %rcx ## imm = 0x7FFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $2251799813685247, %rax ## imm = 0x7FFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
52 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return muls<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $52, %rax, %r9
shlq $12, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $39, %rsi
andl $4096, %esi ## imm = 0x1000
movabsq $9223372036854771712, %rax ## imm = 0x7FFFFFFFFFFFF000
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $12, %rax
popq %rbp
retq
|
x86_64 |
52 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return mulu<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $12, %rax, %rsi
movabsq $4503595332403200, %rcx ## imm = 0xFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $4503599627370495, %rax ## imm = 0xFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
53 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return muls<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $53, %rax, %r9
shlq $11, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $41, %rsi
andl $2048, %esi ## imm = 0x800
movabsq $9223372036854773760, %rax ## imm = 0x7FFFFFFFFFFFF800
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $11, %rax
popq %rbp
retq
|
x86_64 |
53 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return mulu<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $11, %rax, %rsi
movabsq $9007194959773696, %rcx ## imm = 0x1FFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $9007199254740991, %rax ## imm = 0x1FFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
54 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return muls<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $54, %rax, %r9
shlq $10, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $43, %rsi
andl $1024, %esi ## imm = 0x400
movabsq $9223372036854774784, %rax ## imm = 0x7FFFFFFFFFFFFC00
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $10, %rax
popq %rbp
retq
|
x86_64 |
54 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return mulu<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $10, %rax, %rsi
movabsq $18014394214514688, %rcx ## imm = 0x3FFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $18014398509481983, %rax ## imm = 0x3FFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
55 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return muls<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $55, %rax, %r9
shlq $9, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $45, %rsi
andl $512, %esi ## imm = 0x200
movabsq $9223372036854775296, %rax ## imm = 0x7FFFFFFFFFFFFE00
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $9, %rax
popq %rbp
retq
|
x86_64 |
55 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return mulu<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $9, %rax, %rsi
movabsq $36028792723996672, %rcx ## imm = 0x7FFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $36028797018963967, %rax ## imm = 0x7FFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
56 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return muls<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $56, %rax, %r9
shlq $8, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $47, %rsi
andl $256, %esi ## imm = 0x100
movabsq $9223372036854775552, %rax ## imm = 0x7FFFFFFFFFFFFF00
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $8, %rax
popq %rbp
retq
|
x86_64 |
56 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return mulu<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $8, %rax, %rsi
movabsq $72057589742960640, %rcx ## imm = 0xFFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $72057594037927935, %rax ## imm = 0xFFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
57 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return muls<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $57, %rax, %r9
shlq $7, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $49, %rsi
andl $128, %esi
movabsq $9223372036854775680, %rax ## imm = 0x7FFFFFFFFFFFFF80
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $7, %rax
popq %rbp
retq
|
x86_64 |
57 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return mulu<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $7, %rax, %rsi
movabsq $144115183780888576, %rcx ## imm = 0x1FFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $144115188075855871, %rax ## imm = 0x1FFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
58 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return muls<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $58, %rax, %r9
shlq $6, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $51, %rsi
andl $64, %esi
movabsq $9223372036854775744, %rax ## imm = 0x7FFFFFFFFFFFFFC0
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $6, %rax
popq %rbp
retq
|
x86_64 |
58 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return mulu<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $6, %rax, %rsi
movabsq $288230371856744448, %rcx ## imm = 0x3FFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $288230376151711743, %rax ## imm = 0x3FFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
59 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return muls<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $59, %rax, %r9
shlq $5, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $53, %rsi
andl $32, %esi
movabsq $9223372036854775776, %rax ## imm = 0x7FFFFFFFFFFFFFE0
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $5, %rax
popq %rbp
retq
|
x86_64 |
59 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return mulu<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $5, %rax, %rsi
movabsq $576460748008456192, %rcx ## imm = 0x7FFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $576460752303423487, %rax ## imm = 0x7FFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
60 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return muls<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $60, %rax, %r9
shlq $4, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $55, %rsi
andl $16, %esi
movabsq $9223372036854775792, %rax ## imm = 0x7FFFFFFFFFFFFFF0
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $4, %rax
popq %rbp
retq
|
x86_64 |
60 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return mulu<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $4, %rax, %rsi
movabsq $1152921500311879680, %rcx ## imm = 0xFFFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $1152921504606846975, %rax ## imm = 0xFFFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
61 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return muls<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $61, %rax, %r9
shlq $3, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $57, %rsi
andl $8, %esi
movabsq $9223372036854775800, %rax ## imm = 0x7FFFFFFFFFFFFFF8
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $3, %rax
popq %rbp
retq
|
x86_64 |
61 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return mulu<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $3, %rax, %rsi
movabsq $2305843004918726656, %rcx ## imm = 0x1FFFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $2305843009213693951, %rax ## imm = 0x1FFFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
62 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return muls<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $62, %rax, %r9
shlq $2, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $59, %rsi
andl $4, %esi
movabsq $9223372036854775804, %rax ## imm = 0x7FFFFFFFFFFFFFFC
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq $2, %rax
popq %rbp
retq
|
x86_64 |
62 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return mulu<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $2, %rax, %rsi
movabsq $4611686014132420608, %rcx ## imm = 0x3FFFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $4611686018427387903, %rax ## imm = 0x3FFFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
63 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return muls<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %r9d
movq %rsi, %rax
movl %esi, %r8d
xorq %rdi, %rsi
sarq $32, %rdi
sarq $32, %rax
movq %r8, %rdx
imulq %r9, %rdx
movl %edx, %ecx
shrq $32, %rdx
imulq %rdi, %r8
addq %rdx, %r8
movl %r8d, %edx
sarq $32, %r8
imulq %rax, %r9
addq %rdx, %r9
movq %r9, %rdx
sarq $32, %rdx
imulq %rdi, %rax
addq %r8, %rax
addq %rdx, %rax
shlq $32, %r9
orq %r9, %rcx
shrdq $63, %rax, %r9
addq %rcx, %rcx
movq %rcx, %rdx
sarq $63, %rdx
shrq $61, %rsi
andl $2, %esi
movabsq $9223372036854775806, %rax ## imm = 0x7FFFFFFFFFFFFFFE
addq %rsi, %rax
cmpq %rdx, %r9
cmoveq %rcx, %rax
sarq %rax
popq %rbp
retq
|
x86_64 |
63 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return mulu<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
shrq $32, %rdi
movl %esi, %ecx
shrq $32, %rsi
movq %rcx, %rdx
imulq %rax, %rdx
movl %edx, %r8d
shrq $32, %rdx
imulq %rdi, %rcx
addq %rdx, %rcx
movl %ecx, %edx
shrq $32, %rcx
imulq %rsi, %rax
addq %rdx, %rax
movq %rax, %rdx
shrq $32, %rdx
imulq %rdi, %rsi
addq %rcx, %rsi
addq %rdx, %rsi
shlq $32, %rax
shldq $1, %rax, %rsi
movabsq $9223372032559808512, %rcx ## imm = 0x7FFFFFFF00000000
andq %rax, %rcx
orq %r8, %rcx
testq %rsi, %rsi
movabsq $9223372036854775807, %rax ## imm = 0x7FFFFFFFFFFFFFFF
cmoveq %rcx, %rax
popq %rbp
retq
|
x86_64 |
64 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return muls<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rsi, %rcx
xorq %rdi, %rcx
shrq $63, %rcx
movabsq $9223372036854775807, %rdx ## imm = 0x7FFFFFFFFFFFFFFF
addq %rcx, %rdx
imulq %rsi, %rax
cmovbq %rdx, %rax
popq %rbp
retq
|
x86_64 |
64 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return mulu<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
mulq %rsi
sbbq %rcx, %rcx
orq %rcx, %rax
popq %rbp
retq
|
x86_64 |
4 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return divs<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 8(%rax), %edx
orb %cl, %dl
andb $15, %dl
cmpb $1, %dl
adcw $0, %ax
cwtd
idivw %si
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
4 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return divu<4>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzbl %dil, %eax
divb %sil
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return divs<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 16(%rax), %edx
orb %cl, %dl
andb $31, %dl
cmpb $1, %dl
adcw $0, %ax
cwtd
idivw %si
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
5 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return divu<5>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzbl %dil, %eax
divb %sil
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return divs<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 32(%rax), %edx
orb %cl, %dl
andb $63, %dl
cmpb $1, %dl
adcw $0, %ax
cwtd
idivw %si
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
6 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return divu<6>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzbl %dil, %eax
divb %sil
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return divs<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 64(%rax), %edx
orb %cl, %dl
andb $127, %dl
cmpb $1, %dl
adcw $0, %ax
cwtd
idivw %si
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
7 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return divu<7>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzbl %dil, %eax
divb %sil
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
8 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return divs<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal 1(%rsi), %ecx
movl %edi, %edx
xorb $-128, %dl
xorl %eax, %eax
orb %cl, %dl
sete %al
addl %edi, %eax
cwtd
idivw %si
movsbl %al, %eax
popq %rbp
retq
|
x86_64 |
8 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return divu<8>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movzbl %dil, %eax
divb %sil
movzbl %al, %eax
popq %rbp
retq
|
x86_64 |
9 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return divs<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 256(%rax), %edx
orl %ecx, %edx
andl $511, %edx ## imm = 0x1FF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
9 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return divu<9>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
10 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return divs<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 512(%rax), %edx
orl %ecx, %edx
andl $1023, %edx ## imm = 0x3FF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
10 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return divu<10>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
11 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return divs<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 1024(%rax), %edx
orl %ecx, %edx
andl $2047, %edx ## imm = 0x7FF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
11 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return divu<11>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
12 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return divs<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 2048(%rax), %edx
orl %ecx, %edx
andl $4095, %edx ## imm = 0xFFF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
12 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return divu<12>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
13 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return divs<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 4096(%rax), %edx
orl %ecx, %edx
andl $8191, %edx ## imm = 0x1FFF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
13 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return divu<13>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
14 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return divs<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 8192(%rax), %edx
orl %ecx, %edx
andl $16383, %edx ## imm = 0x3FFF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
14 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return divu<14>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
15 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return divs<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 16384(%rax), %edx
orl %ecx, %edx
andl $32767, %edx ## imm = 0x7FFF
cmpw $1, %dx
adcl $0, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
15 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return divu<15>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
16 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return divs<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal 1(%rsi), %ecx
movl %edi, %edx
xorl $32768, %edx ## imm = 0x8000
xorl %eax, %eax
orw %cx, %dx
sete %al
addl %edi, %eax
cltd
idivl %esi
cwtl
popq %rbp
retq
|
x86_64 |
16 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return divu<16>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divw %si
movzwl %ax, %eax
popq %rbp
retq
|
x86_64 |
17 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return divs<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 65536(%rax), %edx
orl %ecx, %edx
andl $131071, %edx ## imm = 0x1FFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
17 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return divu<17>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
18 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return divs<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 131072(%rax), %edx
orl %ecx, %edx
andl $262143, %edx ## imm = 0x3FFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
18 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return divu<18>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
19 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return divs<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 262144(%rax), %edx
orl %ecx, %edx
andl $524287, %edx ## imm = 0x7FFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
19 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return divu<19>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
20 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return divs<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 524288(%rax), %edx
orl %ecx, %edx
andl $1048575, %edx ## imm = 0xFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
20 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return divu<20>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
21 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return divs<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 1048576(%rax), %edx
orl %ecx, %edx
andl $2097151, %edx ## imm = 0x1FFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
21 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return divu<21>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
22 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return divs<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 2097152(%rax), %edx
orl %ecx, %edx
andl $4194303, %edx ## imm = 0x3FFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
22 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return divu<22>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
23 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return divs<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 4194304(%rax), %edx
orl %ecx, %edx
andl $8388607, %edx ## imm = 0x7FFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
23 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return divu<23>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
24 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return divs<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 8388608(%rax), %edx
orl %ecx, %edx
andl $16777215, %edx ## imm = 0xFFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
24 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return divu<24>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
25 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return divs<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 16777216(%rax), %edx
orl %ecx, %edx
andl $33554431, %edx ## imm = 0x1FFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
25 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return divu<25>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
26 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return divs<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 33554432(%rax), %edx
orl %ecx, %edx
andl $67108863, %edx ## imm = 0x3FFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
26 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return divu<26>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
27 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return divs<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 67108864(%rax), %edx
orl %ecx, %edx
andl $134217727, %edx ## imm = 0x7FFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
27 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return divu<27>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
28 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return divs<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 134217728(%rax), %edx
orl %ecx, %edx
andl $268435455, %edx ## imm = 0xFFFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
28 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return divu<28>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
29 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return divs<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 268435456(%rax), %edx
orl %ecx, %edx
andl $536870911, %edx ## imm = 0x1FFFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
29 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return divu<29>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
30 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return divs<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 536870912(%rax), %edx
orl %ecx, %edx
andl $1073741823, %edx ## imm = 0x3FFFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
30 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return divu<30>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
31 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return divs<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
leal 1(%rsi), %ecx
leal 1073741824(%rax), %edx
orl %ecx, %edx
andl $2147483647, %edx ## imm = 0x7FFFFFFF
cmpl $1, %edx
adcl $0, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
31 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return divu<31>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
32 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return divs<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leal 1(%rsi), %ecx
movl %edi, %edx
xorl $-2147483648, %edx ## imm = 0x80000000
xorl %eax, %eax
orl %ecx, %edx
sete %al
addl %edi, %eax
cltd
idivl %esi
popq %rbp
retq
|
x86_64 |
32 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return divu<32>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movl %edi, %eax
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
33 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return divs<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $4294967296, %rdx ## imm = 0x100000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $8589934591, %rcx ## imm = 0x1FFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
33 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return divu<33>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
34 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return divs<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $8589934592, %rdx ## imm = 0x200000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $17179869183, %rcx ## imm = 0x3FFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
34 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return divu<34>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
35 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return divs<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $17179869184, %rdx ## imm = 0x400000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $34359738367, %rcx ## imm = 0x7FFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
35 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return divu<35>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
36 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return divs<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $34359738368, %rdx ## imm = 0x800000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $68719476735, %rcx ## imm = 0xFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
36 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return divu<36>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
37 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return divs<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $68719476736, %rdx ## imm = 0x1000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $137438953471, %rcx ## imm = 0x1FFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
37 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return divu<37>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
38 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return divs<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $137438953472, %rdx ## imm = 0x2000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $274877906943, %rcx ## imm = 0x3FFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
38 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return divu<38>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
39 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return divs<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $274877906944, %rdx ## imm = 0x4000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $549755813887, %rcx ## imm = 0x7FFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
39 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return divu<39>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
40 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return divs<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $549755813888, %rdx ## imm = 0x8000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $1099511627775, %rcx ## imm = 0xFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
40 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return divu<40>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
41 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return divs<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $1099511627776, %rdx ## imm = 0x10000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $2199023255551, %rcx ## imm = 0x1FFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
41 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return divu<41>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
42 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return divs<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $2199023255552, %rdx ## imm = 0x20000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $4398046511103, %rcx ## imm = 0x3FFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
42 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return divu<42>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
43 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return divs<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $4398046511104, %rdx ## imm = 0x40000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $8796093022207, %rcx ## imm = 0x7FFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
43 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return divu<43>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
44 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return divs<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $8796093022208, %rdx ## imm = 0x80000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $17592186044415, %rcx ## imm = 0xFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
44 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return divu<44>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
45 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return divs<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $17592186044416, %rdx ## imm = 0x100000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $35184372088831, %rcx ## imm = 0x1FFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
45 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return divu<45>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
46 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return divs<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $35184372088832, %rdx ## imm = 0x200000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $70368744177663, %rcx ## imm = 0x3FFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
46 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return divu<46>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
47 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return divs<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $70368744177664, %rdx ## imm = 0x400000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $140737488355327, %rcx ## imm = 0x7FFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
47 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return divu<47>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
48 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return divs<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $140737488355328, %rdx ## imm = 0x800000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $281474976710655, %rcx ## imm = 0xFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
48 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return divu<48>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
49 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return divs<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $281474976710656, %rdx ## imm = 0x1000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $562949953421311, %rcx ## imm = 0x1FFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
49 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return divu<49>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
50 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return divs<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $562949953421312, %rdx ## imm = 0x2000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $1125899906842623, %rcx ## imm = 0x3FFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
50 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return divu<50>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
51 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return divs<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $1125899906842624, %rdx ## imm = 0x4000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $2251799813685247, %rcx ## imm = 0x7FFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
51 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return divu<51>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
52 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return divs<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $2251799813685248, %rdx ## imm = 0x8000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $4503599627370495, %rcx ## imm = 0xFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
52 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return divu<52>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
53 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return divs<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $4503599627370496, %rdx ## imm = 0x10000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $9007199254740991, %rcx ## imm = 0x1FFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
53 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return divu<53>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
54 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return divs<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $9007199254740992, %rdx ## imm = 0x20000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $18014398509481983, %rcx ## imm = 0x3FFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
54 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return divu<54>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
55 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return divs<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $18014398509481984, %rdx ## imm = 0x40000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $36028797018963967, %rcx ## imm = 0x7FFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
55 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return divu<55>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
56 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return divs<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $36028797018963968, %rdx ## imm = 0x80000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $72057594037927935, %rcx ## imm = 0xFFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
56 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return divu<56>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
57 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return divs<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $72057594037927936, %rdx ## imm = 0x100000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $144115188075855871, %rcx ## imm = 0x1FFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
57 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return divu<57>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
58 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return divs<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $144115188075855872, %rdx ## imm = 0x200000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $288230376151711743, %rcx ## imm = 0x3FFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
58 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return divu<58>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
59 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return divs<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $288230376151711744, %rdx ## imm = 0x400000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $576460752303423487, %rcx ## imm = 0x7FFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
59 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return divu<59>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
60 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return divs<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $576460752303423488, %rdx ## imm = 0x800000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $1152921504606846975, %rcx ## imm = 0xFFFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
60 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return divu<60>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
61 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return divs<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $1152921504606846976, %rdx ## imm = 0x1000000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $2305843009213693951, %rcx ## imm = 0x1FFFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
61 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return divu<61>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
62 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return divs<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $2305843009213693952, %rdx ## imm = 0x2000000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $4611686018427387903, %rcx ## imm = 0x3FFFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
62 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return divu<62>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
63 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return divs<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
leaq 1(%rsi), %rcx
movabsq $4611686018427387904, %rdx ## imm = 0x4000000000000000
addq %rdi, %rdx
orq %rcx, %rdx
movabsq $9223372036854775807, %rcx ## imm = 0x7FFFFFFFFFFFFFFF
andq %rdx, %rcx
cmpq $1, %rcx
adcq $0, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
63 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return divu<63>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
64 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return divs<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
leaq 1(%rsi), %rcx
movabsq $-9223372036854775808, %rdx ## imm = 0x8000000000000000
xorq %rdi, %rdx
xorl %eax, %eax
orq %rcx, %rdx
sete %al
addq %rdi, %rax
movq %rax, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
cqto
idivq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
x86_64 |
64 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return divu<64>(a, b);
}
|
_f: ## @f
pushq %rbp
movq %rsp, %rbp
movq %rdi, %rax
movq %rdi, %rcx
orq %rsi, %rcx
shrq $32, %rcx
je LBB0_1
xorl %edx, %edx
divq %rsi
popq %rbp
retq
LBB0_1:
xorl %edx, %edx
divl %esi
popq %rbp
retq
|
arm |
4 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return adds<4>(a, b);
}
|
_f:
mov r2, #16
and r2, r2, r0, lsl #1
add r0, r1, r0
add r2, r2, #112
lsl r2, r2, #24
eor r3, r1, r2, asr #28
eor r1, r0, r1
lsl r0, r0, #28
mvn r1, r1
asr r0, r0, #28
orr r1, r3, r1
tst r1, #8
asreq r0, r2, #28
bx lr
|
arm |
4 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return addu<4>(a, b);
}
|
_f:
add r1, r1, r0
and r2, r1, #255
and r0, r1, #15
cmp r2, #15
movhi r0, #15
cmp r2, r1
movne r0, #15
bx lr
|
arm |
5 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return adds<5>(a, b);
}
|
_f:
mov r2, #8
and r2, r2, r0, lsr #1
add r0, r1, r0
add r2, r2, #120
lsl r2, r2, #24
eor r3, r1, r2, asr #27
eor r1, r0, r1
lsl r0, r0, #27
mvn r1, r1
asr r0, r0, #27
orr r1, r3, r1
tst r1, #16
asreq r0, r2, #27
bx lr
|
arm |
5 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return addu<5>(a, b);
}
|
_f:
add r1, r1, r0
and r2, r1, #255
and r0, r1, #31
cmp r2, #31
movhi r0, #31
cmp r2, r1
movne r0, #31
bx lr
|
arm |
6 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return adds<6>(a, b);
}
|
_f:
mov r2, #4
and r2, r2, r0, lsr #3
add r0, r1, r0
add r2, r2, #124
lsl r2, r2, #24
eor r3, r1, r2, asr #26
eor r1, r0, r1
lsl r0, r0, #26
mvn r1, r1
asr r0, r0, #26
orr r1, r3, r1
tst r1, #32
asreq r0, r2, #26
bx lr
|
arm |
6 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return addu<6>(a, b);
}
|
_f:
add r1, r1, r0
and r2, r1, #255
and r0, r1, #63
cmp r2, #63
movhi r0, #63
cmp r2, r1
movne r0, #63
bx lr
|
arm |
7 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return adds<7>(a, b);
}
|
_f:
mov r2, #2
and r2, r2, r0, lsr #5
add r0, r1, r0
add r2, r2, #126
lsl r2, r2, #24
eor r3, r1, r2, asr #25
eor r1, r0, r1
lsl r0, r0, #25
mvn r1, r1
asr r0, r0, #25
orr r1, r3, r1
tst r1, #64
asreq r0, r2, #25
bx lr
|
arm |
7 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return addu<7>(a, b);
}
|
_f:
add r0, r1, r0
and r1, r0, #255
subs r2, r1, r0
movne r2, #1
orr r1, r2, r1, lsr #7
rsb r1, r1, #0
orr r0, r0, r1
and r0, r0, #127
bx lr
|
arm |
8 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return adds<8>(a, b);
}
|
_f:
and r2, r0, #255
mov r3, #127
add r0, r1, r0
add r2, r3, r2, lsr #7
eor r3, r2, r1
eor r1, r0, r1
mvn r1, r1
orr r1, r3, r1
lsl r1, r1, #24
asr r1, r1, #24
cmn r1, #1
movgt r0, r2
lsl r0, r0, #24
asr r0, r0, #24
bx lr
|
arm |
8 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return addu<8>(a, b);
}
|
_f:
add r0, r0, r1
cmp r0, #255
movhs r0, #255
bx lr
|
arm |
9 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return adds<9>(a, b);
}
|
_f:
mov r2, #128
and r2, r2, r0, lsr #1
add r0, r1, r0
add r2, r2, #16256
add r2, r2, #16384
lsl r2, r2, #16
eor r3, r1, r2, asr #23
eor r1, r0, r1
lsl r0, r0, #23
mvn r1, r1
asr r0, r0, #23
orr r1, r3, r1
tst r1, #256
asreq r0, r2, #23
bx lr
|
arm |
9 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return addu<9>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #256
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #9
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
10 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return adds<10>(a, b);
}
|
_f:
mov r2, #64
and r2, r2, r0, lsr #3
add r0, r1, r0
add r2, r2, #16320
add r2, r2, #16384
lsl r2, r2, #16
eor r3, r1, r2, asr #22
eor r1, r0, r1
lsl r0, r0, #22
mvn r1, r1
asr r0, r0, #22
orr r1, r3, r1
tst r1, #512
asreq r0, r2, #22
bx lr
|
arm |
10 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return addu<10>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #768
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #10
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
11 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return adds<11>(a, b);
}
|
_f:
mov r2, #32
and r2, r2, r0, lsr #5
add r0, r1, r0
add r2, r2, #4064
add r2, r2, #28672
lsl r2, r2, #16
eor r3, r1, r2, asr #21
eor r1, r0, r1
lsl r0, r0, #21
mvn r1, r1
asr r0, r0, #21
orr r1, r3, r1
tst r1, #1024
asreq r0, r2, #21
bx lr
|
arm |
11 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return addu<11>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #1792
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #11
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
12 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return adds<12>(a, b);
}
|
_f:
mov r2, #16
and r2, r2, r0, lsr #7
add r0, r1, r0
add r2, r2, #4080
add r2, r2, #28672
lsl r2, r2, #16
eor r3, r1, r2, asr #20
eor r1, r0, r1
lsl r0, r0, #20
mvn r1, r1
asr r0, r0, #20
orr r1, r3, r1
tst r1, #2048
asreq r0, r2, #20
bx lr
|
arm |
12 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return addu<12>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #3840
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #12
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
13 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return adds<13>(a, b);
}
|
_f:
mov r2, #8
and r2, r2, r0, lsr #9
add r0, r1, r0
add r2, r2, #1016
add r2, r2, #31744
lsl r2, r2, #16
eor r3, r1, r2, asr #19
eor r1, r0, r1
lsl r0, r0, #19
mvn r1, r1
asr r0, r0, #19
orr r1, r3, r1
tst r1, #4096
asreq r0, r2, #19
bx lr
|
arm |
13 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return addu<13>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #7936
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #13
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
14 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return adds<14>(a, b);
}
|
_f:
mov r2, #4
and r2, r2, r0, lsr #11
add r0, r1, r0
add r2, r2, #1020
add r2, r2, #31744
lsl r2, r2, #16
eor r3, r1, r2, asr #18
eor r1, r0, r1
lsl r0, r0, #18
mvn r1, r1
asr r0, r0, #18
orr r1, r3, r1
tst r1, #8192
asreq r0, r2, #18
bx lr
|
arm |
14 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return addu<14>(a, b);
}
|
_f:
add r1, r1, r0
mov r0, #255
mov r3, #255
orr r0, r0, #65280
orr r3, r3, #16128
and r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #14
mov r0, r3
andeq r0, r1, r0
cmp r2, r1
movne r0, r3
bx lr
|
arm |
15 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return adds<15>(a, b);
}
|
_f:
mov r2, #2
and r2, r2, r0, lsr #13
add r0, r1, r0
add r2, r2, #254
add r2, r2, #32512
lsl r2, r2, #16
eor r3, r1, r2, asr #17
eor r1, r0, r1
lsl r0, r0, #17
mvn r1, r1
asr r0, r0, #17
orr r1, r3, r1
tst r1, #16384
asreq r0, r2, #17
bx lr
|
arm |
15 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return addu<15>(a, b);
}
|
_f:
add r0, r1, r0
mov r1, #255
orr r1, r1, #65280
and r1, r0, r1
subs r2, r1, r0
movne r2, #1
orr r1, r2, r1, lsr #15
rsb r1, r1, #0
orr r0, r0, r1
mov r1, #255
orr r1, r1, #32512
and r0, r0, r1
bx lr
|
arm |
16 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return adds<16>(a, b);
}
|
_f:
mov r2, #255
mov r3, #255
orr r2, r2, #65280
orr r3, r3, #32512
and r2, r0, r2
add r0, r1, r0
add r2, r3, r2, lsr #15
eor r3, r2, r1
eor r1, r0, r1
mvn r1, r1
orr r1, r3, r1
lsl r1, r1, #16
asr r1, r1, #16
cmn r1, #1
movgt r0, r2
lsl r0, r0, #16
asr r0, r0, #16
bx lr
|
arm |
16 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return addu<16>(a, b);
}
|
_f:
add r1, r0, r1
mov r0, #255
orr r0, r0, #65280
cmp r1, r0
movlo r0, r1
bx lr
|
arm |
17 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return adds<17>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #32768
and r2, r2, r0, lsr #1
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #15
eor r1, r0, r1
lsl r0, r0, #15
mvn r1, r1
asr r0, r0, #15
orr r1, r3, r1
tst r1, #65536
asreq r0, r2, #15
bx lr
LCPI0_0:
|
arm |
17 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return addu<17>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #17
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
18 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return adds<18>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #16384
and r2, r2, r0, lsr #3
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #14
eor r1, r0, r1
lsl r0, r0, #14
mvn r1, r1
asr r0, r0, #14
orr r1, r3, r1
tst r1, #131072
asreq r0, r2, #14
bx lr
LCPI0_0:
|
arm |
18 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return addu<18>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #18
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
19 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return adds<19>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #8192
and r2, r2, r0, lsr #5
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #13
eor r1, r0, r1
lsl r0, r0, #13
mvn r1, r1
asr r0, r0, #13
orr r1, r3, r1
tst r1, #262144
asreq r0, r2, #13
bx lr
LCPI0_0:
|
arm |
19 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return addu<19>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #19
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
20 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return adds<20>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #4096
and r2, r2, r0, lsr #7
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #12
eor r1, r0, r1
lsl r0, r0, #12
mvn r1, r1
asr r0, r0, #12
orr r1, r3, r1
tst r1, #524288
asreq r0, r2, #12
bx lr
LCPI0_0:
|
arm |
20 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return addu<20>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #20
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
21 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return adds<21>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #2048
and r2, r2, r0, lsr #9
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #11
eor r1, r0, r1
lsl r0, r0, #11
mvn r1, r1
asr r0, r0, #11
orr r1, r3, r1
tst r1, #1048576
asreq r0, r2, #11
bx lr
LCPI0_0:
|
arm |
21 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return addu<21>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #21
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
22 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return adds<22>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #1024
and r2, r2, r0, lsr #11
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #10
eor r1, r0, r1
lsl r0, r0, #10
mvn r1, r1
asr r0, r0, #10
orr r1, r3, r1
tst r1, #2097152
asreq r0, r2, #10
bx lr
LCPI0_0:
|
arm |
22 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return addu<22>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #22
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
23 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return adds<23>(a, b);
}
|
_f:
ldr r3, LCPI0_0
mov r2, #512
and r2, r2, r0, lsr #13
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #9
eor r1, r0, r1
lsl r0, r0, #9
mvn r1, r1
asr r0, r0, #9
orr r1, r3, r1
tst r1, #4194304
asreq r0, r2, #9
bx lr
LCPI0_0:
|
arm |
23 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return addu<23>(a, b);
}
|
_f:
ldr r3, LCPI0_0
add r2, r1, r0
mov r0, #0
cmp r0, r2, lsr #23
mov r0, r3
andeq r0, r2, r0
cmp r2, r1
movlo r0, r3
bx lr
LCPI0_0:
|
arm |
24 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return adds<24>(a, b);
}
|
_f:
mov r2, #256
and r2, r2, r0, lsr #15
add r0, r1, r0
sub r2, r2, #256
sub r2, r2, #-2147483648
eor r3, r1, r2, asr #8
eor r1, r0, r1
lsl r0, r0, #8
mvn r1, r1
asr r0, r0, #8
orr r1, r3, r1
tst r1, #8388608
asreq r0, r2, #8
bx lr
|
arm |
24 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return addu<24>(a, b);
}
|
_f:
add r2, r1, r0
mov r3, #0
bic r0, r2, #-16777216
cmp r3, r2, lsr #24
mvnne r0, #-16777216
cmp r2, r1
mvnlo r0, #-16777216
bx lr
|
arm |
25 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return adds<25>(a, b);
}
|
_f:
mov r2, #128
and r2, r2, r0, lsr #17
add r0, r1, r0
sub r2, r2, #128
sub r2, r2, #-2147483648
eor r3, r1, r2, asr #7
eor r1, r0, r1
lsl r0, r0, #7
mvn r1, r1
asr r0, r0, #7
orr r1, r3, r1
tst r1, #16777216
asreq r0, r2, #7
bx lr
|
arm |
25 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return addu<25>(a, b);
}
|
_f:
add r2, r1, r0
mov r3, #0
bic r0, r2, #-33554432
cmp r3, r2, lsr #25
mvnne r0, #-33554432
cmp r2, r1
mvnlo r0, #-33554432
bx lr
|
arm |
26 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return adds<26>(a, b);
}
|
_f:
mov r2, #64
mvn r3, #-2147483585
and r2, r2, r0, lsr #19
add r0, r1, r0
add r2, r2, r3
eor r3, r1, r2, asr #6
eor r1, r0, r1
lsl r0, r0, #6
mvn r1, r1
asr r0, r0, #6
orr r1, r3, r1
tst r1, #33554432
asreq r0, r2, #6
bx lr
|
arm |
26 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return addu<26>(a, b);
}
|
_f:
add r2, r1, r0
bic r0, r2, #-67108864
cmn r2, #-67108863
mvnhi r0, #-67108864
cmp r2, r1
mvnlo r0, #-67108864
bx lr
|
arm |
27 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return adds<27>(a, b);
}
|
_f:
mov r2, #32
and r2, r2, r0, lsr #21
add r0, r1, r0
sub r2, r2, #-2147483616
eor r3, r1, r2, asr #5
eor r1, r0, r1
lsl r0, r0, #5
mvn r1, r1
asr r0, r0, #5
orr r1, r3, r1
tst r1, #67108864
asreq r0, r2, #5
bx lr
|
arm |
27 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return addu<27>(a, b);
}
|
_f:
add r2, r1, r0
bic r0, r2, #-134217728
cmn r2, #-134217727
mvnhi r0, #-134217728
cmp r2, r1
mvnlo r0, #-134217728
bx lr
|
arm |
28 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return adds<28>(a, b);
}
|
_f:
mov r2, #16
and r2, r2, r0, lsr #23
add r0, r1, r0
sub r2, r2, #-2147483632
eor r3, r1, r2, asr #4
eor r1, r0, r1
lsl r0, r0, #4
mvn r1, r1
asr r0, r0, #4
orr r1, r3, r1
tst r1, #134217728
asreq r0, r2, #4
bx lr
|
arm |
28 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return addu<28>(a, b);
}
|
_f:
add r2, r1, r0
bic r0, r2, #-268435456
cmn r2, #-268435455
mvnhi r0, #-268435456
cmp r2, r1
mvnlo r0, #-268435456
bx lr
|
arm |
29 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return adds<29>(a, b);
}
|
_f:
mov r2, #8
and r2, r2, r0, lsr #25
add r0, r1, r0
sub r2, r2, #-2147483640
eor r3, r1, r2, asr #3
eor r1, r0, r1
lsl r0, r0, #3
mvn r1, r1
asr r0, r0, #3
orr r1, r3, r1
tst r1, #268435456
asreq r0, r2, #3
bx lr
|
arm |
29 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return addu<29>(a, b);
}
|
_f:
add r2, r1, r0
bic r0, r2, #-536870912
cmn r2, #-536870911
mvnhi r0, #-536870912
cmp r2, r1
mvnlo r0, #-536870912
bx lr
|
arm |
30 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return adds<30>(a, b);
}
|
_f:
mov r2, #4
and r2, r2, r0, lsr #27
add r0, r1, r0
sub r2, r2, #-2147483644
eor r3, r1, r2, asr #2
eor r1, r0, r1
lsl r0, r0, #2
mvn r1, r1
asr r0, r0, #2
orr r1, r3, r1
tst r1, #536870912
asreq r0, r2, #2
bx lr
|
arm |
30 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return addu<30>(a, b);
}
|
_f:
add r2, r1, r0
bic r0, r2, #-1073741824
cmn r2, #-1073741823
mvnhi r0, #-1073741824
cmp r2, r1
mvnlo r0, #-1073741824
bx lr
|
arm |
31 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return adds<31>(a, b);
}
|
_f:
mov r2, #2
and r2, r2, r0, lsr #29
add r0, r1, r0
sub r2, r2, #-2147483646
eor r3, r1, r2, asr #1
eor r1, r0, r1
lsl r0, r0, #1
mvn r1, r1
asr r0, r0, #1
orr r1, r3, r1
tst r1, #1073741824
asreq r0, r2, #1
bx lr
|
arm |
31 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return addu<31>(a, b);
}
|
_f:
mov r2, #0
adds r0, r1, r0
adc r1, r2, #0
orr r1, r1, r0, lsr #31
rsb r1, r1, #0
orr r0, r0, r1
bic r0, r0, #-2147483648
bx lr
|
arm |
32 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return adds<32>(a, b);
}
|
_f:
mvn r2, #-2147483648
add r2, r2, r0, lsr #31
add r0, r1, r0
eor r3, r2, r1
eor r1, r0, r1
mvn r1, r1
orr r1, r3, r1
cmn r1, #1
movgt r0, r2
bx lr
|
arm |
32 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return addu<32>(a, b);
}
|
_f:
adds r0, r0, r1
mvnhs r0, #0
bx lr
|
arm |
33 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return adds<33>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #255
mov lr, #0
and r12, r12, r1, lsl #7
subs r12, r12, #128
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #7
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #31
and r1, r1, #1
asr r4, lr, #24
mvn r2, r2
rsb r1, r1, #0
orr r2, r5, r2
ands r2, r2, #1
orreq r0, r12, r4, lsl #25
asreq r1, lr, #31
pop {r4, r5, r7, lr}
bx lr
|
arm |
33 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return addu<33>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #1
and r1, r1, #1
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #1
bx lr
|
arm |
34 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return adds<34>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #64
mov lr, #0
and r12, r12, r1, lsl #5
subs r12, r12, #64
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #6
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #30
lsl r1, r1, #30
asr r4, lr, #24
mvn r2, r2
asr r1, r1, #30
orr r2, r5, r2
ands r2, r2, #2
orreq r0, r12, r4, lsl #26
asreq r1, lr, #30
pop {r4, r5, r7, lr}
bx lr
|
arm |
34 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return addu<34>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #3
and r1, r1, #3
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #3
bx lr
|
arm |
35 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return adds<35>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #32
mov lr, #0
and r12, r12, r1, lsl #3
subs r12, r12, #32
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #5
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #29
lsl r1, r1, #29
asr r4, lr, #24
mvn r2, r2
asr r1, r1, #29
orr r2, r5, r2
ands r2, r2, #4
orreq r0, r12, r4, lsl #27
asreq r1, lr, #29
pop {r4, r5, r7, lr}
bx lr
|
arm |
35 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return addu<35>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #7
and r1, r1, #7
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #7
bx lr
|
arm |
36 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return adds<36>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #16
mov lr, #0
and r12, r12, r1, lsl #1
subs r12, r12, #16
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #4
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #28
lsl r1, r1, #28
asr r4, lr, #24
mvn r2, r2
asr r1, r1, #28
orr r2, r5, r2
ands r2, r2, #8
orreq r0, r12, r4, lsl #28
asreq r1, lr, #28
pop {r4, r5, r7, lr}
bx lr
|
arm |
36 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return addu<36>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #15
and r1, r1, #15
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #15
bx lr
|
arm |
37 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return adds<37>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #8
mov lr, #0
and r12, r12, r1, lsr #1
subs r12, r12, #8
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #3
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #27
lsl r1, r1, #27
asr r4, lr, #24
mvn r2, r2
asr r1, r1, #27
orr r2, r5, r2
ands r2, r2, #16
orreq r0, r12, r4, lsl #29
asreq r1, lr, #27
pop {r4, r5, r7, lr}
bx lr
|
arm |
37 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return addu<37>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #31
and r1, r1, #31
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #31
bx lr
|
arm |
38 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return adds<38>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #4
mov lr, #0
and r12, r12, r1, lsr #3
subs r12, r12, #4
adc lr, lr, #127
adds r0, r2, r0
lsr r12, r12, #2
adc r1, r3, r1
lsl lr, lr, #24
eor r2, r1, r3
eor r5, r3, lr, asr #26
lsl r1, r1, #26
asr r4, lr, #24
mvn r2, r2
asr r1, r1, #26
orr r2, r5, r2
ands r2, r2, #32
orreq r0, r12, r4, lsl #30
asreq r1, lr, #26
pop {r4, r5, r7, lr}
bx lr
|
arm |
38 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return addu<38>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #63
and r1, r1, #63
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #63
bx lr
|
arm |
39 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return adds<39>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #2
mov lr, #0
and r12, r12, r1, lsr #5
subs r12, r12, #2
adc lr, lr, #127
lsl lr, lr, #24
asr lr, lr, #24
asrs lr, lr, #1
rrx r12, r12
adds r0, r2, r0
eor r4, lr, r3
adc r1, r3, r1
eor r2, r1, r3
lsl r1, r1, #25
mvn r2, r2
orr r2, r4, r2
ands r2, r2, #64
asrne lr, r1, #25
moveq r0, r12
lsl r1, lr, #24
asr r1, r1, #24
pop {r4, r7, lr}
bx lr
|
arm |
39 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return addu<39>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #127
and r1, r1, #127
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #127
bx lr
|
arm |
40 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return adds<40>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
and r12, r1, #255
mvn r4, #0
mov lr, #0
adds r12, r4, r12, lsr #7
adc r4, lr, #127
adds r0, r2, r0
adc r1, r3, r1
eor lr, r4, r3
eor r2, r1, r3
mvn r2, r2
orr r2, lr, r2
lsl r2, r2, #24
asr r2, r2, #24
cmn r2, #1
movgt r1, r4
movgt r0, r12
lsl r1, r1, #24
asr r1, r1, #24
pop {r4, r7, lr}
bx lr
|
arm |
40 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return addu<40>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmp r1, #255
and r1, r1, #255
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
movne r1, #255
bx lr
|
arm |
41 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return adds<41>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #128
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #1
orr lr, lr, #32512
subs r12, r12, #128
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #7
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #23
lsl r1, r1, #23
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #23
orr r2, r5, r2
ands r2, r2, #256
orreq r0, r12, lr, lsl #25
asreq r1, r4, #23
pop {r4, r5, r7, lr}
bx lr
|
arm |
41 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return addu<41>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #9
cmp r12, r2, lsr #9
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #256
andeq r1, r2, r1
bx lr
|
arm |
42 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return adds<42>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #64
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #3
orr lr, lr, #32512
subs r12, r12, #64
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #6
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #22
lsl r1, r1, #22
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #22
orr r2, r5, r2
ands r2, r2, #512
orreq r0, r12, lr, lsl #26
asreq r1, r4, #22
pop {r4, r5, r7, lr}
bx lr
|
arm |
42 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return addu<42>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #10
cmp r12, r2, lsr #10
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #768
andeq r1, r2, r1
bx lr
|
arm |
43 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return adds<43>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #32
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #5
orr lr, lr, #32512
subs r12, r12, #32
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #5
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #21
lsl r1, r1, #21
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #21
orr r2, r5, r2
ands r2, r2, #1024
orreq r0, r12, lr, lsl #27
asreq r1, r4, #21
pop {r4, r5, r7, lr}
bx lr
|
arm |
43 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return addu<43>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #11
cmp r12, r2, lsr #11
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #1792
andeq r1, r2, r1
bx lr
|
arm |
44 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return adds<44>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #16
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #7
orr lr, lr, #32512
subs r12, r12, #16
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #4
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #20
lsl r1, r1, #20
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #20
orr r2, r5, r2
ands r2, r2, #2048
orreq r0, r12, lr, lsl #28
asreq r1, r4, #20
pop {r4, r5, r7, lr}
bx lr
|
arm |
44 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return addu<44>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #12
cmp r12, r2, lsr #12
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #3840
andeq r1, r2, r1
bx lr
|
arm |
45 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return adds<45>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #8
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #9
orr lr, lr, #32512
subs r12, r12, #8
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #3
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #19
lsl r1, r1, #19
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #19
orr r2, r5, r2
ands r2, r2, #4096
orreq r0, r12, lr, lsl #29
asreq r1, r4, #19
pop {r4, r5, r7, lr}
bx lr
|
arm |
45 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return addu<45>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #13
cmp r12, r2, lsr #13
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #7936
andeq r1, r2, r1
bx lr
|
arm |
46 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return adds<46>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #4
mov lr, #255
mov r4, #0
and r12, r12, r1, lsr #11
orr lr, lr, #32512
subs r12, r12, #4
adc r4, r4, lr
adds r0, r2, r0
lsr r12, r12, #2
adc r1, r3, r1
lsl r4, r4, #16
eor r2, r1, r3
eor r5, r3, r4, asr #18
lsl r1, r1, #18
asr lr, r4, #16
mvn r2, r2
asr r1, r1, #18
orr r2, r5, r2
ands r2, r2, #8192
orreq r0, r12, lr, lsl #30
asreq r1, r4, #18
pop {r4, r5, r7, lr}
bx lr
|
arm |
46 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return addu<46>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #14
cmp r12, r2, lsr #14
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #16128
andeq r1, r2, r1
bx lr
|
arm |
47 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return adds<47>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #2
mov lr, #255
mov r5, #0
and r12, r12, r1, lsr #13
orr lr, lr, #32512
subs r4, r12, #2
adc r5, r5, lr
lsl r5, r5, #16
asr r5, r5, #16
asrs r5, r5, #1
rrx r12, r4
adds r0, r2, r0
eor r4, r5, r3
adc r1, r3, r1
eor r2, r1, r3
lsl r1, r1, #17
mvn r2, r2
orr r2, r4, r2
ands r2, r2, #16384
asrne r5, r1, #17
moveq r0, r12
lsl r1, r5, #16
asr r1, r1, #16
pop {r4, r5, r7, lr}
bx lr
|
arm |
47 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return addu<47>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #15
cmp r12, r2, lsr #15
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #32512
andeq r1, r2, r1
bx lr
|
arm |
48 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return adds<48>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #255
mov lr, #255
mvn r5, #0
mov r4, #0
orr r12, r12, #65280
orr lr, lr, #32512
and r12, r1, r12
adds r12, r5, r12, lsr #15
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
eor r5, r4, r3
eor r2, r1, r3
mvn r2, r2
orr r2, r5, r2
lsl r2, r2, #16
asr r2, r2, #16
cmn r2, #1
movgt r1, r4
movgt r0, r12
lsl r1, r1, #16
asr r1, r1, #16
pop {r4, r5, r7, lr}
bx lr
|
arm |
48 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return addu<48>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #16
cmp r12, r2, lsr #16
movne r3, #1
orrs r1, r1, r3
mov r1, #255
mvnne r0, #0
orr r1, r1, #65280
andeq r1, r2, r1
bx lr
|
arm |
49 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return adds<49>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #128
mov r4, #0
and r12, r12, r1, lsr #9
subs r12, r12, #128
lsr r12, r12, #7
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #15
lsl r1, r1, #15
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #15
orr r2, r5, r2
ands r2, r2, #65536
orreq r0, r12, lr, lsl #25
asreq r1, r4, #15
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
49 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return addu<49>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #17
cmp r12, r2, lsr #17
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
50 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return adds<50>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #64
mov r4, #0
and r12, r12, r1, lsr #11
subs r12, r12, #64
lsr r12, r12, #6
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #14
lsl r1, r1, #14
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #14
orr r2, r5, r2
ands r2, r2, #131072
orreq r0, r12, lr, lsl #26
asreq r1, r4, #14
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
50 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return addu<50>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #18
cmp r12, r2, lsr #18
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
51 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return adds<51>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #32
mov r4, #0
and r12, r12, r1, lsr #13
subs r12, r12, #32
lsr r12, r12, #5
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #13
lsl r1, r1, #13
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #13
orr r2, r5, r2
ands r2, r2, #262144
orreq r0, r12, lr, lsl #27
asreq r1, r4, #13
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
51 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return addu<51>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #19
cmp r12, r2, lsr #19
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
52 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return adds<52>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #16
mov r4, #0
and r12, r12, r1, lsr #15
subs r12, r12, #16
lsr r12, r12, #4
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #12
lsl r1, r1, #12
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #12
orr r2, r5, r2
ands r2, r2, #524288
orreq r0, r12, lr, lsl #28
asreq r1, r4, #12
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
52 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return addu<52>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #20
cmp r12, r2, lsr #20
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
53 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return adds<53>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #8
mov r4, #0
and r12, r12, r1, lsr #17
subs r12, r12, #8
lsr r12, r12, #3
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #11
lsl r1, r1, #11
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #11
orr r2, r5, r2
ands r2, r2, #1048576
orreq r0, r12, lr, lsl #29
asreq r1, r4, #11
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
53 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return addu<53>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #21
cmp r12, r2, lsr #21
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
54 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return adds<54>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #4
mov r4, #0
and r12, r12, r1, lsr #19
subs r12, r12, #4
lsr r12, r12, #2
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
lsl r4, r4, #8
eor r2, r1, r3
eor r5, r3, r4, asr #10
lsl r1, r1, #10
asr lr, r4, #8
mvn r2, r2
asr r1, r1, #10
orr r2, r5, r2
ands r2, r2, #2097152
orreq r0, r12, lr, lsl #30
asreq r1, r4, #10
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
54 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return addu<54>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #22
cmp r12, r2, lsr #22
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
55 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return adds<55>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
mov r12, #2
mov r5, #0
and r12, r12, r1, lsr #21
subs r4, r12, #2
adc r5, r5, lr
lsl r5, r5, #8
asr r5, r5, #8
asrs r5, r5, #1
rrx r12, r4
adds r0, r2, r0
eor r4, r5, r3
adc r1, r3, r1
eor r2, r1, r3
lsl r1, r1, #9
mvn r2, r2
orr r2, r4, r2
ands r2, r2, #4194304
asrne r5, r1, #9
moveq r0, r12
lsl r1, r5, #8
asr r1, r1, #8
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
55 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return addu<55>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r2, r3, r1
adc r1, r12, #0
lsr r3, r2, #23
cmp r12, r2, lsr #23
movne r3, #1
orrs r1, r1, r3
ldr r1, LCPI0_0
mvnne r0, #0
andeq r1, r2, r1
bx lr
LCPI0_0:
|
arm |
56 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return adds<56>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
ldr lr, LCPI0_0
and r12, r1, #8388608
mvn r5, #0
mov r4, #0
adds r12, r5, r12, lsr #23
adc r4, r4, lr
adds r0, r2, r0
adc r1, r3, r1
eor r5, r4, r3
eor r2, r1, r3
mvn r2, r2
orr r2, r5, r2
lsl r2, r2, #8
asr r2, r2, #8
cmn r2, #1
movgt r1, r4
movgt r0, r12
lsl r1, r1, #8
asr r1, r1, #8
pop {r4, r5, r7, lr}
bx lr
LCPI0_0:
|
arm |
56 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return addu<56>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
lsr r3, r1, #24
cmp r12, r1, lsr #24
bic r1, r1, #-16777216
movne r3, #1
orrs r2, r2, r3
mvnne r0, #0
mvnne r1, #-16777216
bx lr
|
arm |
57 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return adds<57>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #128
mov lr, #0
and r12, r12, r1, lsr #17
subs r12, r12, #128
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #7
adc r1, r3, r1
eor r4, r3, lr, asr #7
eor r2, r1, r3
lsl r1, r1, #7
mvn r2, r2
asr r1, r1, #7
orr r2, r4, r2
ands r2, r2, #16777216
orreq r0, r12, lr, lsl #25
asreq r1, lr, #7
pop {r4, r7, lr}
bx lr
|
arm |
57 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return addu<57>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
lsr r3, r1, #25
cmp r12, r1, lsr #25
bic r1, r1, #-33554432
movne r3, #1
orrs r2, r2, r3
mvnne r0, #0
mvnne r1, #-33554432
bx lr
|
arm |
58 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return adds<58>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #64
mov lr, #0
and r12, r12, r1, lsr #19
subs r12, r12, #64
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #6
adc r1, r3, r1
eor r4, r3, lr, asr #6
eor r2, r1, r3
lsl r1, r1, #6
mvn r2, r2
asr r1, r1, #6
orr r2, r4, r2
ands r2, r2, #33554432
orreq r0, r12, lr, lsl #26
asreq r1, lr, #6
pop {r4, r7, lr}
bx lr
|
arm |
58 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return addu<58>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmn r1, #-67108863
bic r1, r1, #-67108864
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
mvnne r1, #-67108864
bx lr
|
arm |
59 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return adds<59>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #32
mov lr, #0
and r12, r12, r1, lsr #21
subs r12, r12, #32
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #5
adc r1, r3, r1
eor r4, r3, lr, asr #5
eor r2, r1, r3
lsl r1, r1, #5
mvn r2, r2
asr r1, r1, #5
orr r2, r4, r2
ands r2, r2, #67108864
orreq r0, r12, lr, lsl #27
asreq r1, lr, #5
pop {r4, r7, lr}
bx lr
|
arm |
59 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return addu<59>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmn r1, #-134217727
bic r1, r1, #-134217728
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
mvnne r1, #-134217728
bx lr
|
arm |
60 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return adds<60>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #16
mov lr, #0
and r12, r12, r1, lsr #23
subs r12, r12, #16
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #4
adc r1, r3, r1
eor r4, r3, lr, asr #4
eor r2, r1, r3
lsl r1, r1, #4
mvn r2, r2
asr r1, r1, #4
orr r2, r4, r2
ands r2, r2, #134217728
orreq r0, r12, lr, lsl #28
asreq r1, lr, #4
pop {r4, r7, lr}
bx lr
|
arm |
60 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return addu<60>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmn r1, #-268435455
bic r1, r1, #-268435456
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
mvnne r1, #-268435456
bx lr
|
arm |
61 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return adds<61>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #8
mov lr, #0
and r12, r12, r1, lsr #25
subs r12, r12, #8
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #3
adc r1, r3, r1
eor r4, r3, lr, asr #3
eor r2, r1, r3
lsl r1, r1, #3
mvn r2, r2
asr r1, r1, #3
orr r2, r4, r2
ands r2, r2, #268435456
orreq r0, r12, lr, lsl #29
asreq r1, lr, #3
pop {r4, r7, lr}
bx lr
|
arm |
61 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return addu<61>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmn r1, #-536870911
bic r1, r1, #-536870912
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
mvnne r1, #-536870912
bx lr
|
arm |
62 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return adds<62>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mov r12, #4
mov lr, #0
and r12, r12, r1, lsr #27
subs r12, r12, #4
sbc lr, lr, #-2147483648
adds r0, r2, r0
lsr r12, r12, #2
adc r1, r3, r1
eor r4, r3, lr, asr #2
eor r2, r1, r3
lsl r1, r1, #2
mvn r2, r2
asr r1, r1, #2
orr r2, r4, r2
ands r2, r2, #536870912
orreq r0, r12, lr, lsl #30
asreq r1, lr, #2
pop {r4, r7, lr}
bx lr
|
arm |
62 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return addu<62>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
cmn r1, #-1073741823
bic r1, r1, #-1073741824
movhi r12, #1
orrs r2, r2, r12
mvnne r0, #0
mvnne r1, #-1073741824
bx lr
|
arm |
63 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return adds<63>(a, b);
}
|
_f:
push {r4, r5, r7, lr}
add r7, sp, #8
mov r12, #2
mov lr, #0
and r12, r12, r1, lsr #29
subs r5, r12, #2
sbc r4, lr, #-2147483648
asrs r12, r4, #1
rrx r5, r5
adds r0, r2, r0
eor r4, r12, r3
adc r1, r3, r1
eor r2, r1, r3
lsl r1, r1, #1
mvn r2, r2
orr r2, r4, r2
ands r2, r2, #1073741824
asrne r12, r1, #1
moveq r0, r5
mov r1, r12
pop {r4, r5, r7, lr}
bx lr
|
arm |
63 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return addu<63>(a, b);
}
|
_f:
adds r0, r2, r0
mov r12, #0
adcs r1, r3, r1
adc r2, r12, #0
orr r2, r2, r1, lsr #31
rsb r2, r2, #0
orr r1, r1, r2
orr r0, r0, r2
bic r1, r1, #-2147483648
bx lr
|
arm |
64 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return adds<64>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
mvn lr, #0
mov r12, #0
adds lr, lr, r1, lsr #31
sbc r12, r12, #-2147483648
adds r0, r2, r0
adc r1, r3, r1
eor r4, r12, r3
eor r2, r1, r3
mvn r2, r2
orr r2, r4, r2
cmn r2, #1
movgt r0, lr
movgt r1, r12
pop {r4, r7, lr}
bx lr
|
arm |
64 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return addu<64>(a, b);
}
|
_f:
adds r0, r0, r2
mov r12, #0
adcs r1, r1, r3
adcs r2, r12, #0
mvnne r0, #0
mvnne r1, #0
bx lr
|
arm |
4 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return subs<4>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #3
tst r2, #8
addne r1, r0, #7
lsl r0, r1, #28
asr r0, r0, #28
bx lr
|
arm |
4 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return subu<4>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
and r0, r0, #15
bx lr
|
arm |
5 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return subs<5>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #4
tst r2, #16
addne r1, r0, #15
lsl r0, r1, #27
asr r0, r0, #27
bx lr
|
arm |
5 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return subu<5>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
and r0, r0, #31
bx lr
|
arm |
6 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return subs<6>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #5
tst r2, #32
addne r1, r0, #31
lsl r0, r1, #26
asr r0, r0, #26
bx lr
|
arm |
6 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return subu<6>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
and r0, r0, #63
bx lr
|
arm |
7 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return subs<7>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #6
tst r2, #64
addne r1, r0, #63
lsl r0, r1, #25
asr r0, r0, #25
bx lr
|
arm |
7 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return subu<7>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
and r0, r0, #127
bx lr
|
arm |
8 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return subs<8>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r0, r0, #255
and r2, r3, r2
mov r3, #127
lsl r2, r2, #24
asr r2, r2, #24
cmp r2, #0
addmi r1, r3, r0, lsr #7
lsl r0, r1, #24
asr r0, r0, #24
bx lr
|
arm |
8 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return subu<8>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bx lr
|
arm |
9 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return subs<9>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #8
tst r2, #256
addne r1, r0, #255
lsl r0, r1, #23
asr r0, r0, #23
bx lr
|
arm |
9 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return subu<9>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #256
and r0, r0, r1
bx lr
|
arm |
10 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return subs<10>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #9
tst r2, #512
add r0, r0, #255
addne r1, r0, #256
lsl r0, r1, #22
asr r0, r0, #22
bx lr
|
arm |
10 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return subu<10>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #768
and r0, r0, r1
bx lr
|
arm |
11 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return subs<11>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #10
tst r2, #1024
add r0, r0, #255
addne r1, r0, #768
lsl r0, r1, #21
asr r0, r0, #21
bx lr
|
arm |
11 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return subu<11>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #1792
and r0, r0, r1
bx lr
|
arm |
12 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return subs<12>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #11
tst r2, #2048
add r0, r0, #255
addne r1, r0, #1792
lsl r0, r1, #20
asr r0, r0, #20
bx lr
|
arm |
12 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return subu<12>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #3840
and r0, r0, r1
bx lr
|
arm |
13 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return subs<13>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #12
tst r2, #4096
add r0, r0, #255
addne r1, r0, #3840
lsl r0, r1, #19
asr r0, r0, #19
bx lr
|
arm |
13 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return subu<13>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #7936
and r0, r0, r1
bx lr
|
arm |
14 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return subs<14>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #13
tst r2, #8192
add r0, r0, #255
addne r1, r0, #7936
lsl r0, r1, #18
asr r0, r0, #18
bx lr
|
arm |
14 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return subu<14>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #16128
and r0, r0, r1
bx lr
|
arm |
15 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return subs<15>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #14
tst r2, #16384
add r0, r0, #255
addne r1, r0, #16128
lsl r0, r1, #17
asr r0, r0, #17
bx lr
|
arm |
15 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return subu<15>(a, b);
}
|
_f:
subs r0, r0, r1
mov r1, #255
movlo r0, #0
orr r1, r1, #32512
and r0, r0, r1
bx lr
|
arm |
16 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return subs<16>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r3, r2
mov r3, #255
lsl r2, r2, #16
orr r3, r3, #65280
asr r2, r2, #16
and r0, r0, r3
mov r3, #255
orr r3, r3, #32512
cmp r2, #0
addmi r1, r3, r0, lsr #15
lsl r0, r1, #16
asr r0, r0, #16
bx lr
|
arm |
16 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return subu<16>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bx lr
|
arm |
17 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return subs<17>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #32768
and r0, r3, r0, lsr #1
ldr r3, LCPI0_0
tst r2, #65536
add r0, r0, r3
lsleq r0, r1, #15
asr r0, r0, #15
bx lr
LCPI0_0:
|
arm |
17 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return subu<17>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
18 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return subs<18>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #16384
and r0, r3, r0, lsr #3
ldr r3, LCPI0_0
tst r2, #131072
add r0, r0, r3
lsleq r0, r1, #14
asr r0, r0, #14
bx lr
LCPI0_0:
|
arm |
18 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return subu<18>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
19 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return subs<19>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #8192
and r0, r3, r0, lsr #5
ldr r3, LCPI0_0
tst r2, #262144
add r0, r0, r3
lsleq r0, r1, #13
asr r0, r0, #13
bx lr
LCPI0_0:
|
arm |
19 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return subu<19>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
20 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return subs<20>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #4096
and r0, r3, r0, lsr #7
ldr r3, LCPI0_0
tst r2, #524288
add r0, r0, r3
lsleq r0, r1, #12
asr r0, r0, #12
bx lr
LCPI0_0:
|
arm |
20 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return subu<20>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
21 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return subs<21>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #2048
and r0, r3, r0, lsr #9
ldr r3, LCPI0_0
tst r2, #1048576
add r0, r0, r3
lsleq r0, r1, #11
asr r0, r0, #11
bx lr
LCPI0_0:
|
arm |
21 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return subu<21>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
22 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return subs<22>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1024
and r0, r3, r0, lsr #11
ldr r3, LCPI0_0
tst r2, #2097152
add r0, r0, r3
lsleq r0, r1, #10
asr r0, r0, #10
bx lr
LCPI0_0:
|
arm |
22 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return subu<22>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
23 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return subs<23>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #512
and r0, r3, r0, lsr #13
ldr r3, LCPI0_0
tst r2, #4194304
add r0, r0, r3
lsleq r0, r1, #9
asr r0, r0, #9
bx lr
LCPI0_0:
|
arm |
23 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return subu<23>(a, b);
}
|
_f:
subs r0, r0, r1
ldr r1, LCPI0_0
movlo r0, #0
and r0, r0, r1
bx lr
LCPI0_0:
|
arm |
24 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return subs<24>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #256
and r0, r3, r0, lsr #15
tst r2, #8388608
sub r0, r0, #256
sub r0, r0, #-2147483648
lsleq r0, r1, #8
asr r0, r0, #8
bx lr
|
arm |
24 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return subu<24>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-16777216
bx lr
|
arm |
25 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return subs<25>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #24
mvn r3, #-16777216
tst r2, #16777216
addne r1, r0, r3
lsl r0, r1, #7
asr r0, r0, #7
bx lr
|
arm |
25 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return subu<25>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-33554432
bx lr
|
arm |
26 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return subs<26>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #25
mvn r3, #-33554432
tst r2, #33554432
addne r1, r0, r3
lsl r0, r1, #6
asr r0, r0, #6
bx lr
|
arm |
26 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return subu<26>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-67108864
bx lr
|
arm |
27 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return subs<27>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #26
tst r2, #67108864
subne r1, r0, #-67108863
lsl r0, r1, #5
asr r0, r0, #5
bx lr
|
arm |
27 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return subu<27>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-134217728
bx lr
|
arm |
28 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return subs<28>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #27
tst r2, #134217728
subne r1, r0, #-134217727
lsl r0, r1, #4
asr r0, r0, #4
bx lr
|
arm |
28 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return subu<28>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-268435456
bx lr
|
arm |
29 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return subs<29>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #28
tst r2, #268435456
subne r1, r0, #-268435455
lsl r0, r1, #3
asr r0, r0, #3
bx lr
|
arm |
29 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return subu<29>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-536870912
bx lr
|
arm |
30 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return subs<30>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #29
tst r2, #536870912
subne r1, r0, #-536870911
lsl r0, r1, #2
asr r0, r0, #2
bx lr
|
arm |
30 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return subu<30>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-1073741824
bx lr
|
arm |
31 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return subs<31>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
and r2, r2, r3
mov r3, #1
and r0, r3, r0, lsr #30
tst r2, #1073741824
subne r1, r0, #-1073741823
lsl r0, r1, #1
asr r0, r0, #1
bx lr
|
arm |
31 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return subu<31>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bic r0, r0, #-2147483648
bx lr
|
arm |
32 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return subs<32>(a, b);
}
|
_f:
eor r2, r1, r0
sub r1, r0, r1
eor r3, r1, r0
ands r2, r3, r2
mvn r2, #-2147483648
addmi r1, r2, r0, lsr #31
mov r0, r1
bx lr
|
arm |
32 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return subu<32>(a, b);
}
|
_f:
subs r0, r0, r1
movlo r0, #0
bx lr
|
arm |
33 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return subs<33>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #1
and r0, r1, #1
mov r1, #0
subs r0, r0, #1
adc r1, r1, #0
cmp r2, #0
moveq r1, r3
moveq r0, lr
and r1, r1, #1
rsb r1, r1, #0
pop {r7, lr}
bx lr
|
arm |
33 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return subu<33>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #1
bx lr
|
arm |
34 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return subs<34>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #2
mov r0, #1
and r0, r0, r1, lsr #1
mov r1, #0
subs r0, r0, #1
adc r1, r1, #1
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #30
asr r1, r1, #30
pop {r7, lr}
bx lr
|
arm |
34 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return subu<34>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #3
bx lr
|
arm |
35 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return subs<35>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #4
mov r0, #1
and r0, r0, r1, lsr #2
mov r1, #0
subs r0, r0, #1
adc r1, r1, #3
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #29
asr r1, r1, #29
pop {r7, lr}
bx lr
|
arm |
35 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return subu<35>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #7
bx lr
|
arm |
36 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return subs<36>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #8
mov r0, #1
and r0, r0, r1, lsr #3
mov r1, #0
subs r0, r0, #1
adc r1, r1, #7
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #28
asr r1, r1, #28
pop {r7, lr}
bx lr
|
arm |
36 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return subu<36>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #15
bx lr
|
arm |
37 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return subs<37>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #16
mov r0, #1
and r0, r0, r1, lsr #4
mov r1, #0
subs r0, r0, #1
adc r1, r1, #15
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #27
asr r1, r1, #27
pop {r7, lr}
bx lr
|
arm |
37 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return subu<37>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #31
bx lr
|
arm |
38 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return subs<38>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #32
mov r0, #1
and r0, r0, r1, lsr #5
mov r1, #0
subs r0, r0, #1
adc r1, r1, #31
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #26
asr r1, r1, #26
pop {r7, lr}
bx lr
|
arm |
38 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return subu<38>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #63
bx lr
|
arm |
39 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return subs<39>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #64
mov r0, #1
and r0, r0, r1, lsr #6
mov r1, #0
subs r0, r0, #1
adc r1, r1, #63
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #25
asr r1, r1, #25
pop {r7, lr}
bx lr
|
arm |
39 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return subu<39>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #127
bx lr
|
arm |
40 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return subs<40>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r0, r12
mov r12, #0
lsl r0, r0, #24
asr r2, r0, #24
and r0, r1, #255
mvn r1, #0
adds r0, r1, r0, lsr #7
adc r1, r12, #127
cmp r2, #0
movpl r1, r3
movpl r0, lr
lsl r1, r1, #24
asr r1, r1, #24
pop {r7, lr}
bx lr
|
arm |
40 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return subu<40>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
and r1, r1, #255
bx lr
|
arm |
41 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return subs<41>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #256
mov r0, #1
and r0, r0, r1, lsr #8
mov r1, #0
subs r0, r0, #1
adc r1, r1, #255
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #23
asr r1, r1, #23
pop {r7, lr}
bx lr
|
arm |
41 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return subu<41>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #256
and r1, r1, r2
bx lr
|
arm |
42 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return subs<42>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #512
mov r0, #1
orr r12, r12, #256
and r0, r0, r1, lsr #9
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #22
asr r1, r1, #22
pop {r7, lr}
bx lr
|
arm |
42 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return subu<42>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #768
and r1, r1, r2
bx lr
|
arm |
43 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return subs<43>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #1024
mov r0, #1
orr r12, r12, #768
and r0, r0, r1, lsr #10
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #21
asr r1, r1, #21
pop {r7, lr}
bx lr
|
arm |
43 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return subu<43>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #1792
and r1, r1, r2
bx lr
|
arm |
44 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return subs<44>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #2048
mov r0, #1
orr r12, r12, #1792
and r0, r0, r1, lsr #11
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #20
asr r1, r1, #20
pop {r7, lr}
bx lr
|
arm |
44 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return subu<44>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #3840
and r1, r1, r2
bx lr
|
arm |
45 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return subs<45>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #4096
mov r0, #1
orr r12, r12, #3840
and r0, r0, r1, lsr #12
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #19
asr r1, r1, #19
pop {r7, lr}
bx lr
|
arm |
45 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return subu<45>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #7936
and r1, r1, r2
bx lr
|
arm |
46 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return subs<46>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #8192
mov r0, #1
orr r12, r12, #7936
and r0, r0, r1, lsr #13
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #18
asr r1, r1, #18
pop {r7, lr}
bx lr
|
arm |
46 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return subu<46>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #16128
and r1, r1, r2
bx lr
|
arm |
47 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return subs<47>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #16384
mov r0, #1
orr r12, r12, #16128
and r0, r0, r1, lsr #14
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #17
asr r1, r1, #17
pop {r7, lr}
bx lr
|
arm |
47 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return subu<47>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #32512
and r1, r1, r2
bx lr
|
arm |
48 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return subs<48>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
subs lr, r0, r2
eor r12, r3, r1
mvn r4, #0
sbc r3, r1, r3
eor r0, r3, r1
and r0, r0, r12
mov r12, #255
lsl r0, r0, #16
orr r12, r12, #32512
asr r2, r0, #16
mov r0, #255
orr r0, r0, #65280
and r0, r1, r0
mov r1, #0
adds r0, r4, r0, lsr #15
adc r1, r1, r12
cmp r2, #0
movpl r1, r3
movpl r0, lr
lsl r1, r1, #16
asr r1, r1, #16
pop {r4, r7, lr}
bx lr
|
arm |
48 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return subu<48>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
mov r2, #255
movne r1, #0
movne r0, #0
orr r2, r2, #65280
and r1, r1, r2
bx lr
|
arm |
49 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return subs<49>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
mov r12, #255
and r2, r0, #65536
mov r0, #1
orr r12, r12, #65280
and r0, r0, r1, lsr #16
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #15
asr r1, r1, #15
pop {r7, lr}
bx lr
|
arm |
49 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return subu<49>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
50 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return subs<50>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #131072
mov r0, #1
and r0, r0, r1, lsr #17
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #14
asr r1, r1, #14
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
50 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return subu<50>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
51 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return subs<51>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #262144
mov r0, #1
and r0, r0, r1, lsr #18
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #13
asr r1, r1, #13
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
51 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return subu<51>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
52 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return subs<52>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #524288
mov r0, #1
and r0, r0, r1, lsr #19
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #12
asr r1, r1, #12
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
52 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return subu<52>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
53 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return subs<53>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #1048576
mov r0, #1
and r0, r0, r1, lsr #20
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #11
asr r1, r1, #11
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
53 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return subu<53>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
54 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return subs<54>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #2097152
mov r0, #1
and r0, r0, r1, lsr #21
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #10
asr r1, r1, #10
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
54 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return subu<54>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
55 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return subs<55>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
ldr r12, LCPI0_0
and r2, r0, #4194304
mov r0, #1
and r0, r0, r1, lsr #22
mov r1, #0
subs r0, r0, #1
adc r1, r1, r12
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #9
asr r1, r1, #9
pop {r7, lr}
bx lr
LCPI0_0:
|
arm |
55 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return subu<55>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
ldr r2, LCPI0_0
movne r1, #0
movne r0, #0
and r1, r1, r2
bx lr
LCPI0_0:
|
arm |
56 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return subs<56>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
subs lr, r0, r2
eor r12, r3, r1
mvn r4, #0
sbc r3, r1, r3
eor r0, r3, r1
and r0, r0, r12
ldr r12, LCPI0_0
lsl r0, r0, #8
asr r2, r0, #8
and r0, r1, #8388608
mov r1, #0
adds r0, r4, r0, lsr #23
adc r1, r1, r12
cmp r2, #0
movpl r1, r3
movpl r0, lr
lsl r1, r1, #8
asr r1, r1, #8
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
56 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return subu<56>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-16777216
bx lr
|
arm |
57 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return subs<57>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #16777216
mov r0, #1
and r0, r0, r1, lsr #24
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-16777216
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #7
asr r1, r1, #7
pop {r7, lr}
bx lr
|
arm |
57 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return subu<57>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-33554432
bx lr
|
arm |
58 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return subs<58>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #33554432
mov r0, #1
and r0, r0, r1, lsr #25
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-33554432
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #6
asr r1, r1, #6
pop {r7, lr}
bx lr
|
arm |
58 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return subu<58>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-67108864
bx lr
|
arm |
59 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return subs<59>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #67108864
mov r0, #1
and r0, r0, r1, lsr #26
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-67108864
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #5
asr r1, r1, #5
pop {r7, lr}
bx lr
|
arm |
59 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return subu<59>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-134217728
bx lr
|
arm |
60 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return subs<60>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #134217728
mov r0, #1
and r0, r0, r1, lsr #27
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-134217728
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #4
asr r1, r1, #4
pop {r7, lr}
bx lr
|
arm |
60 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return subu<60>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-268435456
bx lr
|
arm |
61 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return subs<61>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #268435456
mov r0, #1
and r0, r0, r1, lsr #28
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-268435456
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #3
asr r1, r1, #3
pop {r7, lr}
bx lr
|
arm |
61 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return subu<61>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-536870912
bx lr
|
arm |
62 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return subs<62>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #536870912
mov r0, #1
and r0, r0, r1, lsr #29
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-536870912
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #2
asr r1, r1, #2
pop {r7, lr}
bx lr
|
arm |
62 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return subu<62>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-1073741824
bx lr
|
arm |
63 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return subs<63>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r0, r12, r0
and r2, r0, #1073741824
mov r0, #1
and r0, r0, r1, lsr #30
mov r1, #0
subs r0, r0, #1
sbc r1, r1, #-1073741824
cmp r2, #0
moveq r1, r3
moveq r0, lr
lsl r1, r1, #1
asr r1, r1, #1
pop {r7, lr}
bx lr
|
arm |
63 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return subu<63>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r1, #0
movne r0, #0
bic r1, r1, #-2147483648
bx lr
|
arm |
64 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return subs<64>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
subs lr, r0, r2
eor r12, r3, r1
sbc r3, r1, r3
eor r0, r3, r1
and r2, r0, r12
mvn r0, #0
mov r12, #0
adds r0, r0, r1, lsr #31
sbc r1, r12, #-2147483648
cmp r2, #0
movpl r0, lr
movpl r1, r3
pop {r7, lr}
bx lr
|
arm |
64 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return subu<64>(a, b);
}
|
_f:
subs r0, r0, r2
mov r12, #0
sbcs r1, r1, r3
adc r2, r12, #0
rsbs r2, r2, #1
movne r0, #0
movne r1, #0
bx lr
|
arm |
4 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return muls<4>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #16
mov r12, #255
lsl r3, r2, #24
and r0, r1, r0, lsl #1
and lr, r12, r2, lsr #4
asr r3, r3, #24
add r0, r0, #112
lsl r0, r0, #24
and r3, r12, r3, lsr #3
asr r0, r0, #24
cmp r3, lr
lsrne r2, r0, #4
lsl r0, r2, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
4 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return mulu<4>(a, b);
}
|
_f:
mul r2, r1, r0
mov r0, #15
tst r2, #4080
andeq r0, r2, #15
bx lr
|
arm |
5 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return muls<5>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #8
mov r12, #255
lsl r3, r2, #24
and r0, r1, r0, lsr #1
and lr, r12, r2, lsr #5
asr r3, r3, #24
add r0, r0, #120
lsl r0, r0, #24
and r3, r12, r3, lsr #4
asr r0, r0, #24
cmp r3, lr
lsrne r2, r0, #3
lsl r0, r2, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
5 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return mulu<5>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #4064
mov r0, #31
orr r1, r1, #4096
tst r2, r1
andeq r0, r2, #31
bx lr
|
arm |
6 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return muls<6>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #4
mov r12, #255
lsl r3, r2, #24
and r0, r1, r0, lsr #3
and lr, r12, r2, lsr #6
asr r3, r3, #24
add r0, r0, #124
lsl r0, r0, #24
and r3, r12, r3, lsr #5
asr r0, r0, #24
cmp r3, lr
lsrne r2, r0, #2
lsl r0, r2, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
6 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return mulu<6>(a, b);
}
|
_f:
mul r2, r1, r0
mov r0, #63
tst r2, #16320
andeq r0, r2, #63
bx lr
|
arm |
7 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return muls<7>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #2
mov r12, #255
lsl r3, r2, #24
and r0, r1, r0, lsr #5
and lr, r12, r2, lsr #7
asr r3, r3, #24
add r0, r0, #126
lsl r0, r0, #24
and r3, r12, r3, lsr #6
asr r0, r0, #24
cmp r3, lr
lsrne r2, r0, #1
lsl r0, r2, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
7 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return mulu<7>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #16256
mov r0, #127
orr r1, r1, #16384
tst r2, r1
andeq r0, r2, #127
bx lr
|
arm |
8 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return muls<8>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r12, #255
mov lr, #127
lsl r1, r2, #24
and r3, r12, r2, lsr #8
and r0, r0, #255
asr r1, r1, #24
and r1, r12, r1, lsr #7
cmp r1, r3
addne r2, lr, r0, lsr #7
lsl r0, r2, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
8 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return mulu<8>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #0
and r0, r2, #255
cmp r1, r2, lsr #8
movne r0, #255
bx lr
|
arm |
9 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return muls<9>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #128
mov r12, #255
and r0, r1, r0, lsr #1
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #16256
asr r3, r3, #16
and lr, r12, r2, lsr #9
add r0, r0, #16384
and r3, r12, r3, lsr #8
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #7
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
9 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return mulu<9>(a, b);
}
|
_f:
mul r2, r1, r0
ldr r1, LCPI0_0
mov r0, #255
orr r0, r0, #256
tst r2, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
10 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return muls<10>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #64
mov r12, #255
and r0, r1, r0, lsr #3
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #16320
asr r3, r3, #16
and lr, r12, r2, lsr #10
add r0, r0, #16384
and r3, r12, r3, lsr #9
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #6
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
10 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return mulu<10>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #261120
mov r0, #255
orr r1, r1, #66846720
orr r0, r0, #768
tst r2, r1
andeq r0, r2, r0
bx lr
|
arm |
11 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return muls<11>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #32
mov r12, #255
and r0, r1, r0, lsr #5
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #4064
asr r3, r3, #16
and lr, r12, r2, lsr #11
add r0, r0, #28672
and r3, r12, r3, lsr #10
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #5
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
11 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return mulu<11>(a, b);
}
|
_f:
mul r2, r1, r0
ldr r1, LCPI0_0
mov r0, #255
orr r0, r0, #1792
tst r2, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
12 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return muls<12>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #16
mov r12, #255
and r0, r1, r0, lsr #7
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #4080
asr r3, r3, #16
and lr, r12, r2, lsr #12
add r0, r0, #28672
and r3, r12, r3, lsr #11
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #4
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
12 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return mulu<12>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #1044480
mov r0, #255
orr r1, r1, #267386880
orr r0, r0, #3840
tst r2, r1
andeq r0, r2, r0
bx lr
|
arm |
13 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return muls<13>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #8
mov r12, #255
and r0, r1, r0, lsr #9
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #1016
asr r3, r3, #16
and lr, r12, r2, lsr #13
add r0, r0, #31744
and r3, r12, r3, lsr #12
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #3
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
13 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return mulu<13>(a, b);
}
|
_f:
mul r2, r1, r0
ldr r1, LCPI0_0
mov r0, #255
orr r0, r0, #7936
tst r2, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
14 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return muls<14>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #4
mov r12, #255
and r0, r1, r0, lsr #11
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #1020
asr r3, r3, #16
and lr, r12, r2, lsr #14
add r0, r0, #31744
and r3, r12, r3, lsr #13
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #2
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
14 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return mulu<14>(a, b);
}
|
_f:
mul r2, r1, r0
mov r1, #4177920
mov r0, #255
orr r1, r1, #1069547520
orr r0, r0, #16128
tst r2, r1
andeq r0, r2, r0
bx lr
|
arm |
15 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return muls<15>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r2, r1, r0
eor r0, r1, r0
mov r1, #2
mov r12, #255
and r0, r1, r0, lsr #13
lsl r3, r2, #16
orr r12, r12, #65280
add r0, r0, #254
asr r3, r3, #16
and lr, r12, r2, lsr #15
add r0, r0, #32512
and r3, r12, r3, lsr #14
lsl r0, r0, #16
cmp r3, lr
asr r0, r0, #16
lsrne r2, r0, #1
lsl r0, r2, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
15 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return mulu<15>(a, b);
}
|
_f:
mul r2, r1, r0
ldr r1, LCPI0_0
mov r0, #255
orr r0, r0, #32512
tst r2, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
16 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return muls<16>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
mul r3, r1, r0
mov lr, #255
eor r2, r1, r0
mov r12, #255
lsl r0, r3, #16
orr lr, lr, #65280
orr r12, r12, #32512
asr r0, r0, #16
and r2, r2, lr
and r0, lr, r0, lsr #15
cmp r0, r3, lsr #16
addne r3, r12, r2, lsr #15
lsl r0, r3, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
16 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return mulu<16>(a, b);
}
|
_f:
mul r2, r1, r0
mov r0, #255
mov r1, #0
orr r0, r0, #65280
cmp r1, r2, lsr #16
andeq r0, r2, r0
bx lr
|
arm |
17 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return muls<17>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #32768
and r0, r1, r0, lsr #1
ldr r1, LCPI0_0
lsr r3, r2, #17
orr r3, r3, r12, lsl #15
cmp r3, r2, asr #16
add r0, r0, r1
asrne r2, r0, #15
mov r0, r2
bx lr
LCPI0_0:
|
arm |
17 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return mulu<17>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #16646144
orr r3, r3, #-16777216
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
18 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return muls<18>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #16384
and r0, r1, r0, lsr #3
ldr r1, LCPI0_0
lsr r3, r2, #18
orr r3, r3, r12, lsl #14
cmp r3, r2, asr #17
add r0, r0, r1
asrne r2, r0, #14
mov r0, r2
bx lr
LCPI0_0:
|
arm |
18 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return mulu<18>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #66846720
orr r3, r3, #-67108864
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
19 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return muls<19>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #8192
and r0, r1, r0, lsr #5
ldr r1, LCPI0_0
lsr r3, r2, #19
orr r3, r3, r12, lsl #13
cmp r3, r2, asr #18
add r0, r0, r1
asrne r2, r0, #13
mov r0, r2
bx lr
LCPI0_0:
|
arm |
19 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return mulu<19>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #66584576
orr r3, r3, #-67108864
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
20 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return muls<20>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #4096
and r0, r1, r0, lsr #7
ldr r1, LCPI0_0
lsr r3, r2, #20
orr r3, r3, r12, lsl #12
cmp r3, r2, asr #19
add r0, r0, r1
asrne r2, r0, #12
mov r0, r2
bx lr
LCPI0_0:
|
arm |
20 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return mulu<20>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #267386880
orr r3, r3, #-268435456
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
21 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return muls<21>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #2048
and r0, r1, r0, lsr #9
ldr r1, LCPI0_0
lsr r3, r2, #21
orr r3, r3, r12, lsl #11
cmp r3, r2, asr #20
add r0, r0, r1
asrne r2, r0, #11
mov r0, r2
bx lr
LCPI0_0:
|
arm |
21 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return mulu<21>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #266338304
orr r3, r3, #-268435456
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
22 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return muls<22>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #1024
and r0, r1, r0, lsr #11
ldr r1, LCPI0_0
lsr r3, r2, #22
orr r3, r3, r12, lsl #10
cmp r3, r2, asr #21
add r0, r0, r1
asrne r2, r0, #10
mov r0, r2
bx lr
LCPI0_0:
|
arm |
22 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return mulu<22>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #1069547520
orr r3, r3, #-1073741824
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
23 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return muls<23>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #512
and r0, r1, r0, lsr #13
ldr r1, LCPI0_0
lsr r3, r2, #23
orr r3, r3, r12, lsl #9
cmp r3, r2, asr #22
add r0, r0, r1
asrne r2, r0, #9
mov r0, r2
bx lr
LCPI0_0:
|
arm |
23 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return mulu<23>(a, b);
}
|
_f:
umull r2, r3, r1, r0
ldr r0, LCPI0_0
and r1, r3, r0
mov r3, #1065353216
orr r3, r3, #-1073741824
and r3, r2, r3
orrs r1, r3, r1
andeq r0, r2, r0
bx lr
LCPI0_0:
|
arm |
24 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return muls<24>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #256
lsr r3, r2, #24
and r0, r1, r0, lsr #15
sub r0, r0, #256
orr r3, r3, r12, lsl #8
sub r0, r0, #-2147483648
cmp r3, r2, asr #23
asrne r2, r0, #8
mov r0, r2
bx lr
|
arm |
24 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return mulu<24>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-16777216
and r1, r2, #-16777216
orrs r0, r1, r0
mvn r0, #-16777216
biceq r0, r2, #-16777216
bx lr
|
arm |
25 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return muls<25>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #128
lsr r3, r2, #25
and r0, r1, r0, lsr #17
sub r0, r0, #128
orr r3, r3, r12, lsl #7
sub r0, r0, #-2147483648
cmp r3, r2, asr #24
asrne r2, r0, #7
mov r0, r2
bx lr
|
arm |
25 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return mulu<25>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-33554432
and r1, r2, #-33554432
orrs r0, r1, r0
mvn r0, #-33554432
biceq r0, r2, #-33554432
bx lr
|
arm |
26 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return muls<26>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #64
lsr r3, r2, #26
and r0, r1, r0, lsr #19
mvn r1, #-2147483585
orr r3, r3, r12, lsl #6
add r0, r0, r1
cmp r3, r2, asr #25
asrne r2, r0, #6
mov r0, r2
bx lr
|
arm |
26 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return mulu<26>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-67108864
and r1, r2, #-67108864
orrs r0, r1, r0
mvn r0, #-67108864
biceq r0, r2, #-67108864
bx lr
|
arm |
27 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return muls<27>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #32
lsr r3, r2, #27
and r0, r1, r0, lsr #21
orr r3, r3, r12, lsl #5
sub r0, r0, #-2147483616
cmp r3, r2, asr #26
asrne r2, r0, #5
mov r0, r2
bx lr
|
arm |
27 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return mulu<27>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-134217728
and r1, r2, #-134217728
orrs r0, r1, r0
mvn r0, #-134217728
biceq r0, r2, #-134217728
bx lr
|
arm |
28 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return muls<28>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #16
lsr r3, r2, #28
and r0, r1, r0, lsr #23
orr r3, r3, r12, lsl #4
sub r0, r0, #-2147483632
cmp r3, r2, asr #27
asrne r2, r0, #4
mov r0, r2
bx lr
|
arm |
28 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return mulu<28>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-268435456
and r1, r2, #-268435456
orrs r0, r1, r0
mvn r0, #-268435456
biceq r0, r2, #-268435456
bx lr
|
arm |
29 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return muls<29>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #8
lsr r3, r2, #29
and r0, r1, r0, lsr #25
orr r3, r3, r12, lsl #3
sub r0, r0, #-2147483640
cmp r3, r2, asr #28
asrne r2, r0, #3
mov r0, r2
bx lr
|
arm |
29 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return mulu<29>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-536870912
and r1, r2, #-536870912
orrs r0, r1, r0
mvn r0, #-536870912
biceq r0, r2, #-536870912
bx lr
|
arm |
30 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return muls<30>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #4
lsr r3, r2, #30
and r0, r1, r0, lsr #27
orr r3, r3, r12, lsl #2
sub r0, r0, #-2147483644
cmp r3, r2, asr #29
asrne r2, r0, #2
mov r0, r2
bx lr
|
arm |
30 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return mulu<30>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-1073741824
and r1, r2, #-1073741824
orrs r0, r1, r0
mvn r0, #-1073741824
biceq r0, r2, #-1073741824
bx lr
|
arm |
31 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return muls<31>(a, b);
}
|
_f:
smull r2, r12, r1, r0
eor r0, r1, r0
mov r1, #2
lsr r3, r2, #31
and r0, r1, r0, lsr #29
orr r3, r3, r12, lsl #1
sub r0, r0, #-2147483646
cmp r3, r2, asr #30
asrne r2, r0, #1
mov r0, r2
bx lr
|
arm |
31 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return mulu<31>(a, b);
}
|
_f:
umull r2, r3, r1, r0
bic r0, r3, #-2147483648
and r1, r2, #-2147483648
orrs r0, r1, r0
mvn r0, #-2147483648
biceq r0, r2, #-2147483648
bx lr
|
arm |
32 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return muls<32>(a, b);
}
|
_f:
smull r2, r3, r1, r0
eor r0, r1, r0
mvn r1, #-2147483648
cmp r3, r2, asr #31
addne r2, r1, r0, lsr #31
mov r0, r2
bx lr
|
arm |
32 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return mulu<32>(a, b);
}
|
_f:
umull r2, r3, r1, r0
cmp r3, #0
movne r3, #1
cmp r3, #0
mvnne r2, #0
mov r0, r2
bx lr
|
arm |
33 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return muls<33>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #31
orr r6, r2, r5, lsr #1
and r2, lr, #1
lsl r5, r5, #31
rsb r2, r2, #0
orr r5, r5, lr, lsr #1
eor r6, r6, r2
eor r5, r5, r2
orrs r6, r5, r6
beq LBB0_2
eor r0, r3, r1
mov r1, #255
and r0, r1, r0, lsl #7
mov r1, #0
subs r0, r0, #128
adc r1, r1, #127
lsr r0, r0, #7
lsl r1, r1, #24
asr r2, r1, #24
orr r0, r0, r2, lsl #25
asr r2, r1, #31
LBB0_2:
mov r1, r2
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
33 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return mulu<33>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #31
orr lr, r4, r6, lsr #1
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #1
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #31
orr r0, r0, r2, lsr #1
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
34 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return muls<34>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #30
orr r6, r2, r5, lsr #2
lsl r5, r5, #30
lsl r2, lr, #30
orr r5, r5, lr, lsr #2
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #30
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #64
and r0, r1, r0, lsl #5
mov r1, #0
subs r0, r0, #64
adc r1, r1, #127
lsr r0, r0, #6
lsl r1, r1, #24
asr r2, r1, #24
asr r1, r1, #30
orr r0, r0, r2, lsl #26
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
34 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return mulu<34>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #30
orr lr, r4, r6, lsr #2
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #3
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #30
orr r0, r0, r2, lsr #2
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #3
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
35 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return muls<35>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #29
orr r6, r2, r5, lsr #3
lsl r5, r5, #29
lsl r2, lr, #29
orr r5, r5, lr, lsr #3
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #29
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #32
and r0, r1, r0, lsl #3
mov r1, #0
subs r0, r0, #32
adc r1, r1, #127
lsr r0, r0, #5
lsl r1, r1, #24
asr r2, r1, #24
asr r1, r1, #29
orr r0, r0, r2, lsl #27
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
35 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return mulu<35>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #29
orr lr, r4, r6, lsr #3
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #7
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #29
orr r0, r0, r2, lsr #3
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #7
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
36 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return muls<36>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #28
orr r6, r2, r5, lsr #4
lsl r5, r5, #28
lsl r2, lr, #28
orr r5, r5, lr, lsr #4
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #28
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #16
and r0, r1, r0, lsl #1
mov r1, #0
subs r0, r0, #16
adc r1, r1, #127
lsr r0, r0, #4
lsl r1, r1, #24
asr r2, r1, #24
asr r1, r1, #28
orr r0, r0, r2, lsl #28
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
36 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return mulu<36>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #28
orr lr, r4, r6, lsr #4
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #15
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #28
orr r0, r0, r2, lsr #4
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #15
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
37 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return muls<37>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #27
orr r6, r2, r5, lsr #5
lsl r5, r5, #27
lsl r2, lr, #27
orr r5, r5, lr, lsr #5
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #27
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #8
and r0, r1, r0, lsr #1
mov r1, #0
subs r0, r0, #8
adc r1, r1, #127
lsr r0, r0, #3
lsl r1, r1, #24
asr r2, r1, #24
asr r1, r1, #27
orr r0, r0, r2, lsl #29
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
37 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return mulu<37>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #27
orr lr, r4, r6, lsr #5
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #31
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #27
orr r0, r0, r2, lsr #5
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #31
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
38 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return muls<38>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #26
orr r6, r2, r5, lsr #6
lsl r5, r5, #26
lsl r2, lr, #26
orr r5, r5, lr, lsr #6
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #26
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #4
and r0, r1, r0, lsr #3
mov r1, #0
subs r0, r0, #4
adc r1, r1, #127
lsr r0, r0, #2
lsl r1, r1, #24
asr r2, r1, #24
asr r1, r1, #26
orr r0, r0, r2, lsl #30
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
38 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return mulu<38>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #26
orr lr, r4, r6, lsr #6
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #63
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #26
orr r0, r0, r2, lsr #6
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #63
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
39 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return muls<39>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #25
orr r6, r2, r5, lsr #7
lsl r5, r5, #25
lsl r2, lr, #25
orr r5, r5, lr, lsr #7
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #25
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #2
and r0, r1, r0, lsr #5
mov r1, #0
subs r0, r0, #2
adc r1, r1, #127
lsl r1, r1, #24
asr r1, r1, #24
asrs r1, r1, #1
rrx r0, r0
lsl r1, r1, #24
asr r1, r1, #24
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
39 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return mulu<39>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #25
orr lr, r4, r6, lsr #7
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #127
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #25
orr r0, r0, r2, lsr #7
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #127
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
40 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return muls<40>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #24
orr r6, r2, r5, lsr #8
lsl r5, r5, #24
lsl r2, lr, #24
orr r5, r5, lr, lsr #8
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #24
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mvn r2, #0
mov r1, #0
and r0, r0, #255
adds r0, r2, r0, lsr #7
adc r1, r1, #127
lsl r1, r1, #24
asr r1, r1, #24
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
40 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return mulu<40>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #24
orr lr, r4, r6, lsr #8
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #24
orr r0, r0, r2, lsr #8
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, #255
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
41 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return muls<41>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #23
orr r6, r2, r5, lsr #9
lsl r5, r5, #23
lsl r2, lr, #23
orr r5, r5, lr, lsr #9
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #23
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #128
mov r2, #0
and r0, r1, r0, lsr #1
mov r1, #255
subs r0, r0, #128
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #7
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #23
orr r0, r0, r2, lsl #25
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
41 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return mulu<41>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #23
orr lr, r4, r6, lsr #9
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #256
adc r0, r8, #0
lsl r0, r0, #23
orr r0, r0, r2, lsr #9
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
42 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return muls<42>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #22
orr r6, r2, r5, lsr #10
lsl r5, r5, #22
lsl r2, lr, #22
orr r5, r5, lr, lsr #10
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #22
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #64
mov r2, #0
and r0, r1, r0, lsr #3
mov r1, #255
subs r0, r0, #64
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #6
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #22
orr r0, r0, r2, lsl #26
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
42 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return mulu<42>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #22
orr lr, r4, r6, lsr #10
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #768
adc r0, r8, #0
lsl r0, r0, #22
orr r0, r0, r2, lsr #10
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
43 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return muls<43>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #21
orr r6, r2, r5, lsr #11
lsl r5, r5, #21
lsl r2, lr, #21
orr r5, r5, lr, lsr #11
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #21
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #32
mov r2, #0
and r0, r1, r0, lsr #5
mov r1, #255
subs r0, r0, #32
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #5
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #21
orr r0, r0, r2, lsl #27
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
43 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return mulu<43>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #21
orr lr, r4, r6, lsr #11
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #1792
adc r0, r8, #0
lsl r0, r0, #21
orr r0, r0, r2, lsr #11
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
44 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return muls<44>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #20
orr r6, r2, r5, lsr #12
lsl r5, r5, #20
lsl r2, lr, #20
orr r5, r5, lr, lsr #12
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #20
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #16
mov r2, #0
and r0, r1, r0, lsr #7
mov r1, #255
subs r0, r0, #16
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #4
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #20
orr r0, r0, r2, lsl #28
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
44 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return mulu<44>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #20
orr lr, r4, r6, lsr #12
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #3840
adc r0, r8, #0
lsl r0, r0, #20
orr r0, r0, r2, lsr #12
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
45 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return muls<45>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #19
orr r6, r2, r5, lsr #13
lsl r5, r5, #19
lsl r2, lr, #19
orr r5, r5, lr, lsr #13
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #19
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #8
mov r2, #0
and r0, r1, r0, lsr #9
mov r1, #255
subs r0, r0, #8
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #3
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #19
orr r0, r0, r2, lsl #29
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
45 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return mulu<45>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #19
orr lr, r4, r6, lsr #13
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #7936
adc r0, r8, #0
lsl r0, r0, #19
orr r0, r0, r2, lsr #13
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
46 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return muls<46>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #18
orr r6, r2, r5, lsr #14
lsl r5, r5, #18
lsl r2, lr, #18
orr r5, r5, lr, lsr #14
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #18
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #4
mov r2, #0
and r0, r1, r0, lsr #11
mov r1, #255
subs r0, r0, #4
orr r1, r1, #32512
adc r1, r2, r1
lsr r0, r0, #2
lsl r1, r1, #16
asr r2, r1, #16
asr r1, r1, #18
orr r0, r0, r2, lsl #30
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
46 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return mulu<46>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #18
orr lr, r4, r6, lsr #14
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #16128
adc r0, r8, #0
lsl r0, r0, #18
orr r0, r0, r2, lsr #14
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
47 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return muls<47>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #17
orr r6, r2, r5, lsr #15
lsl r5, r5, #17
lsl r2, lr, #17
orr r5, r5, lr, lsr #15
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #17
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #2
mov r2, #0
and r0, r1, r0, lsr #13
mov r1, #255
orr r1, r1, #32512
subs r0, r0, #2
adc r1, r2, r1
lsl r1, r1, #16
asr r1, r1, #16
asrs r1, r1, #1
rrx r0, r0
lsl r1, r1, #16
asr r1, r1, #16
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
47 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return mulu<47>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #17
orr lr, r4, r6, lsr #15
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #32512
adc r0, r8, #0
lsl r0, r0, #17
orr r0, r0, r2, lsr #15
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
48 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return muls<48>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #16
orr r6, r2, r5, lsr #16
lsl r5, r5, #16
lsl r2, lr, #16
orr r5, r5, lr, lsr #16
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #16
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #255
mvn r3, #0
mov r2, #0
orr r1, r1, #65280
and r0, r0, r1
mov r1, #255
orr r1, r1, #32512
adds r0, r3, r0, lsr #15
adc r1, r2, r1
lsl r1, r1, #16
asr r1, r1, #16
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
48 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return mulu<48>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #16
orr lr, r4, r6, lsr #16
umull r4, r10, r3, r0
adds r0, r1, r4
mov r1, #255
adcs r0, r5, r10
orr r1, r1, #65280
adc r0, r8, #0
lsl r0, r0, #16
orr r0, r0, r2, lsr #16
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
49 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return muls<49>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #15
orr r6, r2, r5, lsr #17
lsl r5, r5, #15
lsl r2, lr, #15
orr r5, r5, lr, lsr #17
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #15
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #128
mov r2, #0
and r0, r1, r0, lsr #9
ldr r1, LCPI0_0
subs r0, r0, #128
lsr r0, r0, #7
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #15
orr r0, r0, r2, lsl #25
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
49 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return mulu<49>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #15
orr lr, r4, r6, lsr #17
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #15
orr r0, r0, r2, lsr #17
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
50 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return muls<50>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #14
orr r6, r2, r5, lsr #18
lsl r5, r5, #14
lsl r2, lr, #14
orr r5, r5, lr, lsr #18
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #14
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #64
mov r2, #0
and r0, r1, r0, lsr #11
ldr r1, LCPI0_0
subs r0, r0, #64
lsr r0, r0, #6
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #14
orr r0, r0, r2, lsl #26
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
50 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return mulu<50>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #14
orr lr, r4, r6, lsr #18
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #14
orr r0, r0, r2, lsr #18
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
51 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return muls<51>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #13
orr r6, r2, r5, lsr #19
lsl r5, r5, #13
lsl r2, lr, #13
orr r5, r5, lr, lsr #19
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #13
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #32
mov r2, #0
and r0, r1, r0, lsr #13
ldr r1, LCPI0_0
subs r0, r0, #32
lsr r0, r0, #5
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #13
orr r0, r0, r2, lsl #27
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
51 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return mulu<51>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #13
orr lr, r4, r6, lsr #19
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #13
orr r0, r0, r2, lsr #19
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
52 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return muls<52>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #12
orr r6, r2, r5, lsr #20
lsl r5, r5, #12
lsl r2, lr, #12
orr r5, r5, lr, lsr #20
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #12
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #16
mov r2, #0
and r0, r1, r0, lsr #15
ldr r1, LCPI0_0
subs r0, r0, #16
lsr r0, r0, #4
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #12
orr r0, r0, r2, lsl #28
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
52 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return mulu<52>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #12
orr lr, r4, r6, lsr #20
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #12
orr r0, r0, r2, lsr #20
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
53 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return muls<53>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #11
orr r6, r2, r5, lsr #21
lsl r5, r5, #11
lsl r2, lr, #11
orr r5, r5, lr, lsr #21
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #11
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #8
mov r2, #0
and r0, r1, r0, lsr #17
ldr r1, LCPI0_0
subs r0, r0, #8
lsr r0, r0, #3
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #11
orr r0, r0, r2, lsl #29
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
53 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return mulu<53>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #11
orr lr, r4, r6, lsr #21
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #11
orr r0, r0, r2, lsr #21
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
54 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return muls<54>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #10
orr r6, r2, r5, lsr #22
lsl r5, r5, #10
lsl r2, lr, #10
orr r5, r5, lr, lsr #22
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #10
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #4
mov r2, #0
and r0, r1, r0, lsr #19
ldr r1, LCPI0_0
subs r0, r0, #4
lsr r0, r0, #2
adc r1, r2, r1
lsl r1, r1, #8
asr r2, r1, #8
asr r1, r1, #10
orr r0, r0, r2, lsl #30
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
54 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return mulu<54>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #10
orr lr, r4, r6, lsr #22
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #10
orr r0, r0, r2, lsr #22
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
55 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return muls<55>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #9
orr r6, r2, r5, lsr #23
lsl r5, r5, #9
lsl r2, lr, #9
orr r5, r5, lr, lsr #23
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #9
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
mov r1, #2
mov r2, #0
and r0, r1, r0, lsr #21
ldr r1, LCPI0_0
subs r0, r0, #2
adc r1, r2, r1
lsl r1, r1, #8
asr r1, r1, #8
asrs r1, r1, #1
rrx r0, r0
lsl r1, r1, #8
asr r1, r1, #8
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
55 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return mulu<55>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #9
orr lr, r4, r6, lsr #23
umull r4, r10, r3, r0
adds r0, r1, r4
ldr r1, LCPI0_0
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #9
orr r0, r0, r2, lsr #23
orrs r0, lr, r0
mvnne r12, #0
andeq r1, r6, r1
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
56 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return muls<56>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
mov r12, r0
asr r4, r1, #31
mul r5, r2, r4
umull r0, lr, r2, r12
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r12
asr r2, r5, #31
umlal lr, r6, r3, r12
smlal r5, r2, r3, r1
adds r5, r5, r6
adc r2, r2, r6, asr #31
lsl r2, r2, #8
orr r6, r2, r5, lsr #24
lsl r5, r5, #8
lsl r2, lr, #8
orr r5, r5, lr, lsr #24
eor r6, r6, r2, asr #31
eor r5, r5, r2, asr #31
orrs r6, r5, r6
asreq r1, r2, #8
popeq {r4, r5, r6, r7, lr}
bxeq lr
LBB0_1:
eor r0, r3, r1
ldr r1, LCPI0_0
mvn r3, #0
mov r2, #0
and r0, r0, #8388608
adds r0, r3, r0, lsr #23
adc r1, r2, r1
lsl r1, r1, #8
asr r1, r1, #8
pop {r4, r5, r6, r7, lr}
bx lr
LCPI0_0:
|
arm |
56 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return mulu<56>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #8
orr lr, r4, r6, lsr #24
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-16777216
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #8
orr r0, r0, r2, lsr #24
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-16777216
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
57 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return muls<57>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #7
orr r2, r0, r4, lsr #25
lsl r4, r4, #7
lsl r0, lr, #7
orr r6, r4, lr, lsr #25
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #25
lsl r0, r12, #7
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #128
and r0, r1, r0, lsr #17
mov r1, #0
subs r0, r0, #128
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #7
orr r0, r0, r1, lsl #25
asr r1, r1, #7
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
57 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return mulu<57>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #7
orr lr, r4, r6, lsr #25
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-33554432
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #7
orr r0, r0, r2, lsr #25
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-33554432
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
58 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return muls<58>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #6
orr r2, r0, r4, lsr #26
lsl r4, r4, #6
lsl r0, lr, #6
orr r6, r4, lr, lsr #26
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #26
lsl r0, r12, #6
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #64
and r0, r1, r0, lsr #19
mov r1, #0
subs r0, r0, #64
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #6
orr r0, r0, r1, lsl #26
asr r1, r1, #6
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
58 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return mulu<58>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #6
orr lr, r4, r6, lsr #26
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-67108864
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #6
orr r0, r0, r2, lsr #26
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-67108864
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
59 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return muls<59>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #5
orr r2, r0, r4, lsr #27
lsl r4, r4, #5
lsl r0, lr, #5
orr r6, r4, lr, lsr #27
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #27
lsl r0, r12, #5
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #32
and r0, r1, r0, lsr #21
mov r1, #0
subs r0, r0, #32
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #5
orr r0, r0, r1, lsl #27
asr r1, r1, #5
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
59 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return mulu<59>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #5
orr lr, r4, r6, lsr #27
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-134217728
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #5
orr r0, r0, r2, lsr #27
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-134217728
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
60 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return muls<60>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #4
orr r2, r0, r4, lsr #28
lsl r4, r4, #4
lsl r0, lr, #4
orr r6, r4, lr, lsr #28
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #28
lsl r0, r12, #4
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #16
and r0, r1, r0, lsr #23
mov r1, #0
subs r0, r0, #16
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #4
orr r0, r0, r1, lsl #28
asr r1, r1, #4
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
60 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return mulu<60>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #4
orr lr, r4, r6, lsr #28
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-268435456
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #4
orr r0, r0, r2, lsr #28
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-268435456
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
61 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return muls<61>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #3
orr r2, r0, r4, lsr #29
lsl r4, r4, #3
lsl r0, lr, #3
orr r6, r4, lr, lsr #29
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #29
lsl r0, r12, #3
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #8
and r0, r1, r0, lsr #25
mov r1, #0
subs r0, r0, #8
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #3
orr r0, r0, r1, lsl #29
asr r1, r1, #3
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
61 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return mulu<61>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #3
orr lr, r4, r6, lsr #29
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-536870912
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #3
orr r0, r0, r2, lsr #29
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-536870912
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
62 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return muls<62>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #2
orr r2, r0, r4, lsr #30
lsl r4, r4, #2
lsl r0, lr, #2
orr r6, r4, lr, lsr #30
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #30
lsl r0, r12, #2
b LBB0_3
LBB0_2:
eor r0, r3, r1
mov r1, #4
and r0, r1, r0, lsr #27
mov r1, #0
subs r0, r0, #4
sbc r1, r1, #-2147483648
LBB0_3:
lsr r0, r0, #2
orr r0, r0, r1, lsl #30
asr r1, r1, #2
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
62 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return mulu<62>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #2
orr lr, r4, r6, lsr #30
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-1073741824
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #2
orr r0, r0, r2, lsr #30
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-1073741824
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
63 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return muls<63>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull r12, lr, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal lr, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal lr, r6, r3, r0
smlal r5, r2, r3, r1
adds r4, r5, r6
adc r0, r2, r6, asr #31
lsl r0, r0, #1
orr r2, r0, r4, lsr #31
lsl r4, r4, #1
lsl r0, lr, #1
orr r6, r4, lr, lsr #31
eor r2, r2, r0, asr #31
eor r6, r6, r0, asr #31
orrs r2, r6, r2
bne LBB0_2
orr r1, r0, r12, lsr #31
lsl r0, r12, #1
asrs r1, r1, #1
rrx r0, r0
pop {r4, r5, r6, r7, lr}
bx lr
LBB0_2:
eor r0, r3, r1
mov r1, #2
and r0, r1, r0, lsr #29
mov r1, #0
subs r0, r0, #2
sbc r1, r1, #-2147483648
asrs r1, r1, #1
rrx r0, r0
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
63 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return mulu<63>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
push {r8, r10}
umull lr, r8, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
adcs r5, lr, r6
mov r6, r1
mov r2, r5
adc r8, r8, #0
umlal r6, r2, r3, r0
lsl r4, r2, #1
orr lr, r4, r6, lsr #31
umull r4, r10, r3, r0
adds r0, r1, r4
mvn r1, #-2147483648
adcs r0, r5, r10
adc r0, r8, #0
lsl r0, r0, #1
orr r0, r0, r2, lsr #31
orrs r0, lr, r0
mvnne r12, #0
biceq r1, r6, #-2147483648
mov r0, r12
pop {r8, r10}
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
64 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return muls<64>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
asr r4, r1, #31
umull lr, r12, r2, r0
mul r5, r2, r4
asr r4, r3, #31
umlal r12, r5, r2, r1
mul r6, r4, r0
asr r2, r5, #31
umlal r12, r6, r3, r0
smlal r5, r2, r3, r1
adds r0, r5, r6
adc r2, r2, r6, asr #31
eor r0, r0, r12, asr #31
eor r2, r2, r12, asr #31
orr r2, r0, r2
eor r0, r3, r1
mvn r3, #0
mov r1, #0
adds r0, r3, r0, lsr #31
sbc r1, r1, #-2147483648
cmp r2, #0
moveq r0, lr
moveq r1, r12
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
64 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return mulu<64>(a, b);
}
|
_f:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
umull lr, r4, r3, r1
umull r5, r6, r2, r1
umull r12, r1, r2, r0
adds r1, r1, r5
mov r5, #0
adcs r2, lr, r6
adc r6, r4, #0
mov r4, #0
umlal r1, r4, r3, r0
rsbs r0, r4, #0
eor r0, r2, r0
sbc r2, r5, #0
eor r2, r6, r2
orrs r0, r0, r2
mvn r0, #0
movne r12, r0
movne r1, r0
mov r0, r12
pop {r4, r5, r6, r7, lr}
bx lr
|
arm |
4 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return divs<4>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #8
add r3, r1, #1
orr r2, r3, r2
tst r2, #15
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
4 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return divu<4>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
5 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return divs<5>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #16
add r3, r1, #1
orr r2, r3, r2
tst r2, #31
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
5 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return divu<5>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
6 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return divs<6>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #32
add r3, r1, #1
orr r2, r3, r2
tst r2, #63
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
6 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return divu<6>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
7 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return divs<7>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #64
add r3, r1, #1
orr r2, r3, r2
tst r2, #127
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
7 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return divu<7>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
8 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return divs<8>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
eor r2, r0, #128
add r3, r1, #1
orr r2, r3, r2
tst r2, #255
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #24
asr r0, r0, #24
pop {r7, lr}
bx lr
|
arm |
8 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return divu<8>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
9 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return divs<9>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #256
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #256
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
9 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return divu<9>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
10 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return divs<10>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #512
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #768
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
10 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return divu<10>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
11 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return divs<11>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #1024
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #1792
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
11 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return divu<11>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
12 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return divs<12>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #2048
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #3840
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
12 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return divu<12>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
13 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return divs<13>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #4096
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #7936
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
13 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return divu<13>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
14 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return divs<14>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #8192
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #16128
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
14 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return divu<14>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
15 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return divs<15>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
add r2, r0, #16384
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #32512
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
15 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return divu<15>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
16 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return divs<16>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
eor r2, r0, #32768
add r3, r1, #1
orr r2, r3, r2
mov r3, #255
orr r3, r3, #65280
tst r2, r3
addeq r0, r0, #1
bl ___divsi3
lsl r0, r0, #16
asr r0, r0, #16
pop {r7, lr}
bx lr
|
arm |
16 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return divu<16>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivsi3
pop {r7, lr}
bx lr
|
arm |
17 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return divs<17>(a, b);
}
|
_f:
add r2, r0, #65536
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
17 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return divu<17>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
18 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return divs<18>(a, b);
}
|
_f:
add r2, r0, #131072
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
18 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return divu<18>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
19 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return divs<19>(a, b);
}
|
_f:
add r2, r0, #262144
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
19 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return divu<19>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
20 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return divs<20>(a, b);
}
|
_f:
add r2, r0, #524288
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
20 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return divu<20>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
21 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return divs<21>(a, b);
}
|
_f:
add r2, r0, #1048576
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
21 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return divu<21>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
22 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return divs<22>(a, b);
}
|
_f:
add r2, r0, #2097152
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
22 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return divu<22>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
23 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return divs<23>(a, b);
}
|
_f:
add r2, r0, #4194304
add r3, r1, #1
orr r2, r3, r2
ldr r3, LCPI0_0
tst r2, r3
addeq r0, r0, #1
b ___divsi3
LCPI0_0:
|
arm |
23 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return divu<23>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
24 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return divs<24>(a, b);
}
|
_f:
add r2, r0, #8388608
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-16777216
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
24 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return divu<24>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
25 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return divs<25>(a, b);
}
|
_f:
add r2, r0, #16777216
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-33554432
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
25 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return divu<25>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
26 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return divs<26>(a, b);
}
|
_f:
add r2, r0, #33554432
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-67108864
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
26 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return divu<26>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
27 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return divs<27>(a, b);
}
|
_f:
add r2, r0, #67108864
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-134217728
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
27 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return divu<27>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
28 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return divs<28>(a, b);
}
|
_f:
add r2, r0, #134217728
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-268435456
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
28 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return divu<28>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
29 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return divs<29>(a, b);
}
|
_f:
add r2, r0, #268435456
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-536870912
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
29 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return divu<29>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
30 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return divs<30>(a, b);
}
|
_f:
add r2, r0, #536870912
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-1073741824
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
30 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return divu<30>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
31 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return divs<31>(a, b);
}
|
_f:
add r2, r0, #1073741824
add r3, r1, #1
orr r2, r3, r2
mvn r3, #-2147483648
tst r2, r3
addeq r0, r0, #1
b ___divsi3
|
arm |
31 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return divu<31>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
32 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return divs<32>(a, b);
}
|
_f:
eor r2, r0, #-2147483648
add r3, r1, #1
orrs r2, r3, r2
addeq r0, r0, #1
b ___divsi3
|
arm |
32 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return divu<32>(a, b);
}
|
_f:
b ___udivsi3
|
arm |
33 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return divs<33>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #1
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #1
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
33 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return divu<33>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
34 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return divs<34>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #2
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #3
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
34 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return divu<34>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
35 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return divs<35>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #4
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #7
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
35 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return divu<35>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
36 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return divs<36>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #8
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #15
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
36 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return divu<36>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
37 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return divs<37>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #16
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #31
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
37 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return divu<37>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
38 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return divs<38>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #32
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #63
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
38 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return divu<38>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
39 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return divs<39>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #64
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #127
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
39 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return divu<39>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
40 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return divs<40>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
eor r4, r1, #128
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
and r4, r4, #255
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
40 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return divu<40>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
41 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return divs<41>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #256
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #256
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
41 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return divu<41>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
42 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return divs<42>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #512
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #768
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
42 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return divu<42>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
43 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return divs<43>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #1024
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #1792
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
43 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return divu<43>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
44 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return divs<44>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #2048
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #3840
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
44 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return divu<44>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
45 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return divs<45>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #4096
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #7936
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
45 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return divu<45>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
46 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return divs<46>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #8192
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #16128
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
46 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return divu<46>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
47 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return divs<47>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #16384
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #32512
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
47 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return divu<47>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
48 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return divs<48>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
eor r4, r1, #32768
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
mov r4, #255
orr r4, r4, #65280
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
48 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return divu<48>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
49 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return divs<49>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #65536
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
49 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return divu<49>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
50 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return divs<50>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #131072
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
50 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return divu<50>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
51 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return divs<51>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #262144
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
51 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return divu<51>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
52 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return divs<52>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #524288
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
52 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return divu<52>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
53 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return divs<53>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #1048576
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
53 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return divu<53>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
54 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return divs<54>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #2097152
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
54 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return divu<54>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
55 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return divs<55>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #4194304
adc lr, r3, #0
orr r12, r12, r0
orr lr, lr, r4
ldr r4, LCPI0_0
and r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
LCPI0_0:
|
arm |
55 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return divu<55>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
56 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return divs<56>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
eor r4, r1, #8388608
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-16777216
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
56 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return divu<56>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
57 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return divs<57>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #16777216
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-33554432
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
57 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return divu<57>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
58 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return divs<58>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #33554432
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-67108864
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
58 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return divu<58>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
59 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return divs<59>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #67108864
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-134217728
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
59 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return divu<59>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
60 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return divs<60>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #134217728
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-268435456
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
60 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return divu<60>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
61 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return divs<61>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #268435456
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-536870912
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
61 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return divu<61>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
62 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return divs<62>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #536870912
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-1073741824
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
62 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return divu<62>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
63 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return divs<63>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
add r4, r1, #1073741824
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
bic r4, r4, #-2147483648
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
63 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return divu<63>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm |
64 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return divs<64>(a, b);
}
|
_f:
push {r4, r7, lr}
add r7, sp, #4
adds r12, r2, #1
eor r4, r1, #-2147483648
adc lr, r3, #0
orr r12, r12, r0
orr r4, lr, r4
orr r4, r12, r4
adds r12, r0, #1
adc lr, r1, #0
cmp r4, #0
moveq r0, r12
moveq r1, lr
bl ___divdi3
pop {r4, r7, lr}
bx lr
|
arm |
64 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return divu<64>(a, b);
}
|
_f:
push {r7, lr}
mov r7, sp
bl ___udivdi3
pop {r7, lr}
bx lr
|
arm64 |
4 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return adds<4>(a, b);
}
|
_f: ; @f
lsl w8, w0, #1
and w8, w8, #0x10
add w8, w8, #112
sbfx w8, w8, #4, #4
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #4
tst w9, #0x8
csel w0, w8, w10, eq
ret
|
arm64 |
4 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return addu<4>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xff
cmp w9, #15
ccmp w9, w8, #0, ls
and w8, w8, #0xf
mov w9, #15
csel w0, w9, w8, ne
ret
|
arm64 |
5 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return adds<5>(a, b);
}
|
_f: ; @f
lsr w8, w0, #1
and w8, w8, #0x8
add w8, w8, #120
sbfx w8, w8, #3, #5
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #5
tst w9, #0x10
csel w0, w8, w10, eq
ret
|
arm64 |
5 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return addu<5>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xff
cmp w9, #31
ccmp w9, w8, #0, ls
and w8, w8, #0x1f
mov w9, #31
csel w0, w9, w8, ne
ret
|
arm64 |
6 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return adds<6>(a, b);
}
|
_f: ; @f
lsr w8, w0, #3
and w8, w8, #0x4
add w8, w8, #124
sbfx w8, w8, #2, #6
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #6
tst w9, #0x20
csel w0, w8, w10, eq
ret
|
arm64 |
6 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return addu<6>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xff
cmp w9, #63
ccmp w9, w8, #0, ls
and w8, w8, #0x3f
mov w9, #63
csel w0, w9, w8, ne
ret
|
arm64 |
7 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return adds<7>(a, b);
}
|
_f: ; @f
lsr w8, w0, #5
and w8, w8, #0x2
add w8, w8, #126
sbfx w8, w8, #1, #7
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #7
tst w9, #0x40
csel w0, w8, w10, eq
ret
|
arm64 |
7 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return addu<7>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xff
cmp w9, w8
cset w10, ne
orr w9, w10, w9, lsr #7
neg w9, w9
orr w8, w8, w9
and w0, w8, #0x7f
ret
|
arm64 |
8 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return adds<8>(a, b);
}
|
_f: ; @f
ubfx w8, w0, #7, #1
add w8, w8, #127
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sxtb w9, w9
cmp w9, #0
csel w8, w8, w10, ge
sxtb w0, w8
ret
|
arm64 |
8 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return addu<8>(a, b);
}
|
_f: ; @f
add w8, w0, w1
mov w9, #255
cmp w8, #255
csel w0, w8, w9, lo
ret
|
arm64 |
9 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return adds<9>(a, b);
}
|
_f: ; @f
lsr w8, w0, #1
and w8, w8, #0x80
mov w9, #32640
add w8, w8, w9
sbfx w8, w8, #7, #9
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #9
tst w9, #0x100
csel w0, w8, w10, eq
ret
|
arm64 |
9 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return addu<9>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
cmp w9, #511
ccmp w9, w8, #0, ls
and w8, w8, #0x1ff
mov w9, #511
csel w0, w9, w8, ne
ret
|
arm64 |
10 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return adds<10>(a, b);
}
|
_f: ; @f
lsr w8, w0, #3
and w8, w8, #0x40
mov w9, #32704
add w8, w8, w9
sbfx w8, w8, #6, #10
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #10
tst w9, #0x200
csel w0, w8, w10, eq
ret
|
arm64 |
10 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return addu<10>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
cmp w9, #1023
ccmp w9, w8, #0, ls
and w8, w8, #0x3ff
mov w9, #1023
csel w0, w9, w8, ne
ret
|
arm64 |
11 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return adds<11>(a, b);
}
|
_f: ; @f
lsr w8, w0, #5
and w8, w8, #0x20
mov w9, #32736
add w8, w8, w9
sbfx w8, w8, #5, #11
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #11
tst w9, #0x400
csel w0, w8, w10, eq
ret
|
arm64 |
11 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return addu<11>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
cmp w9, #2047
ccmp w9, w8, #0, ls
and w8, w8, #0x7ff
mov w9, #2047
csel w0, w9, w8, ne
ret
|
arm64 |
12 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return adds<12>(a, b);
}
|
_f: ; @f
lsr w8, w0, #7
and w8, w8, #0x10
mov w9, #32752
add w8, w8, w9
sbfx w8, w8, #4, #12
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #12
tst w9, #0x800
csel w0, w8, w10, eq
ret
|
arm64 |
12 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return addu<12>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
cmp w9, #4095
ccmp w9, w8, #0, ls
and w8, w8, #0xfff
mov w9, #4095
csel w0, w9, w8, ne
ret
|
arm64 |
13 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return adds<13>(a, b);
}
|
_f: ; @f
lsr w8, w0, #9
and w8, w8, #0x8
mov w9, #32760
add w8, w8, w9
sbfx w8, w8, #3, #13
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #13
tst w9, #0x1000
csel w0, w8, w10, eq
ret
|
arm64 |
13 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return addu<13>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
ubfx w10, w8, #13, #3
cmp w10, #0
ccmp w9, w8, #0, eq
and w8, w8, #0x1fff
mov w9, #8191
csel w0, w9, w8, ne
ret
|
arm64 |
14 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return adds<14>(a, b);
}
|
_f: ; @f
lsr w8, w0, #11
and w8, w8, #0x4
mov w9, #32764
add w8, w8, w9
sbfx w8, w8, #2, #14
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #14
tst w9, #0x2000
csel w0, w8, w10, eq
ret
|
arm64 |
14 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return addu<14>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
ubfx w10, w8, #14, #2
cmp w10, #0
ccmp w9, w8, #0, eq
and w8, w8, #0x3fff
mov w9, #16383
csel w0, w9, w8, ne
ret
|
arm64 |
15 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return adds<15>(a, b);
}
|
_f: ; @f
lsr w8, w0, #13
and w8, w8, #0x2
mov w9, #32766
add w8, w8, w9
sbfx w8, w8, #1, #15
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #15
tst w9, #0x4000
csel w0, w8, w10, eq
ret
|
arm64 |
15 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return addu<15>(a, b);
}
|
_f: ; @f
add w8, w1, w0
and w9, w8, #0xffff
cmp w9, w8
cset w10, ne
orr w9, w10, w9, lsr #15
neg w9, w9
orr w8, w8, w9
and w0, w8, #0x7fff
ret
|
arm64 |
16 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return adds<16>(a, b);
}
|
_f: ; @f
and w8, w0, #0x8000
mov w9, #32767
add w8, w9, w8, lsr #15
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sxth w9, w9
cmp w9, #0
csel w8, w8, w10, ge
sxth w0, w8
ret
|
arm64 |
16 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return addu<16>(a, b);
}
|
_f: ; @f
mov w8, #65535
add w9, w0, w1
cmp w9, w8
csel w0, w9, w8, lo
ret
|
arm64 |
17 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return adds<17>(a, b);
}
|
_f: ; @f
lsr w8, w0, #1
and w8, w8, #0x8000
mov w9, #2147450880
add w8, w8, w9
asr w8, w8, #15
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #17
tst w9, #0x10000
csel w0, w8, w10, eq
ret
|
arm64 |
17 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return addu<17>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #17
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x1ffff
mov w10, #131071
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
18 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return adds<18>(a, b);
}
|
_f: ; @f
lsr w8, w0, #3
and w8, w8, #0x4000
mov w9, #2147467264
add w8, w8, w9
asr w8, w8, #14
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #18
tst w9, #0x20000
csel w0, w8, w10, eq
ret
|
arm64 |
18 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return addu<18>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #18
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x3ffff
mov w10, #262143
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
19 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return adds<19>(a, b);
}
|
_f: ; @f
lsr w8, w0, #5
and w8, w8, #0x2000
mov w9, #2147475456
add w8, w8, w9
asr w8, w8, #13
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #19
tst w9, #0x40000
csel w0, w8, w10, eq
ret
|
arm64 |
19 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return addu<19>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #19
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x7ffff
mov w10, #524287
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
20 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return adds<20>(a, b);
}
|
_f: ; @f
lsr w8, w0, #7
and w8, w8, #0x1000
mov w9, #2147479552
add w8, w8, w9
asr w8, w8, #12
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #20
tst w9, #0x80000
csel w0, w8, w10, eq
ret
|
arm64 |
20 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return addu<20>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #20
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0xfffff
mov w10, #1048575
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
21 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return adds<21>(a, b);
}
|
_f: ; @f
lsr w8, w0, #9
and w8, w8, #0x800
mov w9, #2147481600
add w8, w8, w9
asr w8, w8, #11
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #21
tst w9, #0x100000
csel w0, w8, w10, eq
ret
|
arm64 |
21 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return addu<21>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #21
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x1fffff
mov w10, #2097151
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
22 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return adds<22>(a, b);
}
|
_f: ; @f
lsr w8, w0, #11
and w8, w8, #0x400
mov w9, #2147482624
add w8, w8, w9
asr w8, w8, #10
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #22
tst w9, #0x200000
csel w0, w8, w10, eq
ret
|
arm64 |
22 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return addu<22>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #22
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x3fffff
mov w10, #4194303
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
23 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return adds<23>(a, b);
}
|
_f: ; @f
lsr w8, w0, #13
and w8, w8, #0x200
mov w9, #2147483136
add w8, w8, w9
asr w8, w8, #9
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #23
tst w9, #0x400000
csel w0, w8, w10, eq
ret
|
arm64 |
23 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return addu<23>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #23
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x7fffff
mov w10, #8388607
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
24 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return adds<24>(a, b);
}
|
_f: ; @f
lsr w8, w0, #15
and w8, w8, #0x100
mov w9, #2147483392
add w8, w8, w9
asr w8, w8, #8
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #24
tst w9, #0x800000
csel w0, w8, w10, eq
ret
|
arm64 |
24 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return addu<24>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #24
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0xffffff
mov w10, #16777215
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
25 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return adds<25>(a, b);
}
|
_f: ; @f
lsr w8, w0, #17
and w8, w8, #0x80
mov w9, #2147483520
add w8, w8, w9
asr w8, w8, #7
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #25
tst w9, #0x1000000
csel w0, w8, w10, eq
ret
|
arm64 |
25 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return addu<25>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #25
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x1ffffff
mov w10, #33554431
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
26 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return adds<26>(a, b);
}
|
_f: ; @f
lsr w8, w0, #19
and w8, w8, #0x40
mov w9, #2147483584
add w8, w8, w9
asr w8, w8, #6
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #26
tst w9, #0x2000000
csel w0, w8, w10, eq
ret
|
arm64 |
26 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return addu<26>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #26
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x3ffffff
mov w10, #67108863
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
27 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return adds<27>(a, b);
}
|
_f: ; @f
lsr w8, w0, #21
and w8, w8, #0x20
mov w9, #2147483616
add w8, w8, w9
asr w8, w8, #5
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #27
tst w9, #0x4000000
csel w0, w8, w10, eq
ret
|
arm64 |
27 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return addu<27>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #27
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x7ffffff
mov w10, #134217727
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
28 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return adds<28>(a, b);
}
|
_f: ; @f
lsr w8, w0, #23
and w8, w8, #0x10
mov w9, #2147483632
add w8, w8, w9
asr w8, w8, #4
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #28
tst w9, #0x8000000
csel w0, w8, w10, eq
ret
|
arm64 |
28 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return addu<28>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #28
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0xfffffff
mov w10, #268435455
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
29 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return adds<29>(a, b);
}
|
_f: ; @f
lsr w8, w0, #25
and w8, w8, #0x8
mov w9, #2147483640
add w8, w8, w9
asr w8, w8, #3
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #29
tst w9, #0x10000000
csel w0, w8, w10, eq
ret
|
arm64 |
29 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return addu<29>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #29
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x1fffffff
mov w10, #536870911
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
30 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return adds<30>(a, b);
}
|
_f: ; @f
lsr w8, w0, #27
and w8, w8, #0x4
mov w9, #2147483644
add w8, w8, w9
asr w8, w8, #2
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #30
tst w9, #0x20000000
csel w0, w8, w10, eq
ret
|
arm64 |
30 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return addu<30>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
lsr w10, w8, #30
cmp w10, #0
cset w10, ne
orr w9, w9, w10
and w8, w8, #0x3fffffff
mov w10, #1073741823
cmp w9, #0
csel w0, w10, w8, ne
ret
|
arm64 |
31 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return adds<31>(a, b);
}
|
_f: ; @f
lsr w8, w0, #29
and w8, w8, #0x2
mov w9, #2147483646
add w8, w8, w9
asr w8, w8, #1
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
sbfx w10, w10, #0, #31
tst w9, #0x40000000
csel w0, w8, w10, eq
ret
|
arm64 |
31 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return addu<31>(a, b);
}
|
_f: ; @f
adds w8, w1, w0
cset w9, hs
orr w9, w9, w8, lsr #31
neg w9, w9
orr w8, w8, w9
and w0, w8, #0x7fffffff
ret
|
arm64 |
32 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return adds<32>(a, b);
}
|
_f: ; @f
mov w8, #2147483647
add w8, w8, w0, lsr #31
eor w9, w8, w1
add w10, w1, w0
eor w11, w10, w1
orn w9, w9, w11
cmp w9, #0
csel w0, w8, w10, ge
ret
|
arm64 |
32 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return addu<32>(a, b);
}
|
_f: ; @f
adds w8, w0, w1
csinv w0, w8, wzr, lo
ret
|
arm64 |
33 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return adds<33>(a, b);
}
|
_f: ; @f
lsr x8, x0, #1
and x8, x8, #0x80000000
mov x9, #9223372034707292160
add x8, x8, x9
asr x8, x8, #31
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #33
tst x9, #0x100000000
csel x0, x8, x10, eq
ret
|
arm64 |
33 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return addu<33>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #33
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1ffffffff
cmp w9, #0
mov x9, #8589934591
csel x0, x9, x8, ne
ret
|
arm64 |
34 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return adds<34>(a, b);
}
|
_f: ; @f
lsr x8, x0, #3
and x8, x8, #0x40000000
mov x9, #9223372035781033984
add x8, x8, x9
asr x8, x8, #30
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #34
tst x9, #0x200000000
csel x0, x8, x10, eq
ret
|
arm64 |
34 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return addu<34>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #34
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3ffffffff
cmp w9, #0
mov x9, #17179869183
csel x0, x9, x8, ne
ret
|
arm64 |
35 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return adds<35>(a, b);
}
|
_f: ; @f
lsr x8, x0, #5
and x8, x8, #0x20000000
mov x9, #9223372036317904896
add x8, x8, x9
asr x8, x8, #29
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #35
tst x9, #0x400000000
csel x0, x8, x10, eq
ret
|
arm64 |
35 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return addu<35>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #35
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7ffffffff
cmp w9, #0
mov x9, #34359738367
csel x0, x9, x8, ne
ret
|
arm64 |
36 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return adds<36>(a, b);
}
|
_f: ; @f
lsr x8, x0, #7
and x8, x8, #0x10000000
mov x9, #9223372036586340352
add x8, x8, x9
asr x8, x8, #28
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #36
tst x9, #0x800000000
csel x0, x8, x10, eq
ret
|
arm64 |
36 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return addu<36>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #36
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xfffffffff
cmp w9, #0
mov x9, #68719476735
csel x0, x9, x8, ne
ret
|
arm64 |
37 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return adds<37>(a, b);
}
|
_f: ; @f
lsr x8, x0, #9
and x8, x8, #0x8000000
mov x9, #9223372036720558080
add x8, x8, x9
asr x8, x8, #27
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #37
tst x9, #0x1000000000
csel x0, x8, x10, eq
ret
|
arm64 |
37 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return addu<37>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #37
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1fffffffff
cmp w9, #0
mov x9, #137438953471
csel x0, x9, x8, ne
ret
|
arm64 |
38 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return adds<38>(a, b);
}
|
_f: ; @f
lsr x8, x0, #11
and x8, x8, #0x4000000
mov x9, #9223372036787666944
add x8, x8, x9
asr x8, x8, #26
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #38
tst x9, #0x2000000000
csel x0, x8, x10, eq
ret
|
arm64 |
38 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return addu<38>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #38
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3fffffffff
cmp w9, #0
mov x9, #274877906943
csel x0, x9, x8, ne
ret
|
arm64 |
39 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return adds<39>(a, b);
}
|
_f: ; @f
lsr x8, x0, #13
and x8, x8, #0x2000000
mov x9, #9223372036821221376
add x8, x8, x9
asr x8, x8, #25
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #39
tst x9, #0x4000000000
csel x0, x8, x10, eq
ret
|
arm64 |
39 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return addu<39>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #39
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7fffffffff
cmp w9, #0
mov x9, #549755813887
csel x0, x9, x8, ne
ret
|
arm64 |
40 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return adds<40>(a, b);
}
|
_f: ; @f
lsr x8, x0, #15
and x8, x8, #0x1000000
mov x9, #9223372036837998592
add x8, x8, x9
asr x8, x8, #24
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #40
tst x9, #0x8000000000
csel x0, x8, x10, eq
ret
|
arm64 |
40 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return addu<40>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #40
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xffffffffff
cmp w9, #0
mov x9, #1099511627775
csel x0, x9, x8, ne
ret
|
arm64 |
41 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return adds<41>(a, b);
}
|
_f: ; @f
lsr x8, x0, #17
and x8, x8, #0x800000
mov x9, #9223372036846387200
add x8, x8, x9
asr x8, x8, #23
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #41
tst x9, #0x10000000000
csel x0, x8, x10, eq
ret
|
arm64 |
41 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return addu<41>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #41
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1ffffffffff
cmp w9, #0
mov x9, #2199023255551
csel x0, x9, x8, ne
ret
|
arm64 |
42 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return adds<42>(a, b);
}
|
_f: ; @f
lsr x8, x0, #19
and x8, x8, #0x400000
mov x9, #9223372036850581504
add x8, x8, x9
asr x8, x8, #22
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #42
tst x9, #0x20000000000
csel x0, x8, x10, eq
ret
|
arm64 |
42 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return addu<42>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #42
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3ffffffffff
cmp w9, #0
mov x9, #4398046511103
csel x0, x9, x8, ne
ret
|
arm64 |
43 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return adds<43>(a, b);
}
|
_f: ; @f
lsr x8, x0, #21
and x8, x8, #0x200000
mov x9, #9223372036852678656
add x8, x8, x9
asr x8, x8, #21
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #43
tst x9, #0x40000000000
csel x0, x8, x10, eq
ret
|
arm64 |
43 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return addu<43>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #43
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7ffffffffff
cmp w9, #0
mov x9, #8796093022207
csel x0, x9, x8, ne
ret
|
arm64 |
44 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return adds<44>(a, b);
}
|
_f: ; @f
lsr x8, x0, #23
and x8, x8, #0x100000
mov x9, #9223372036853727232
add x8, x8, x9
asr x8, x8, #20
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #44
tst x9, #0x80000000000
csel x0, x8, x10, eq
ret
|
arm64 |
44 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return addu<44>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #44
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xfffffffffff
cmp w9, #0
mov x9, #17592186044415
csel x0, x9, x8, ne
ret
|
arm64 |
45 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return adds<45>(a, b);
}
|
_f: ; @f
lsr x8, x0, #25
and x8, x8, #0x80000
mov x9, #9223372036854251520
add x8, x8, x9
asr x8, x8, #19
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #45
tst x9, #0x100000000000
csel x0, x8, x10, eq
ret
|
arm64 |
45 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return addu<45>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #45
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1fffffffffff
cmp w9, #0
mov x9, #35184372088831
csel x0, x9, x8, ne
ret
|
arm64 |
46 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return adds<46>(a, b);
}
|
_f: ; @f
lsr x8, x0, #27
and x8, x8, #0x40000
mov x9, #9223372036854513664
add x8, x8, x9
asr x8, x8, #18
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #46
tst x9, #0x200000000000
csel x0, x8, x10, eq
ret
|
arm64 |
46 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return addu<46>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #46
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3fffffffffff
cmp w9, #0
mov x9, #70368744177663
csel x0, x9, x8, ne
ret
|
arm64 |
47 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return adds<47>(a, b);
}
|
_f: ; @f
lsr x8, x0, #29
and x8, x8, #0x20000
mov x9, #9223372036854644736
add x8, x8, x9
asr x8, x8, #17
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #47
tst x9, #0x400000000000
csel x0, x8, x10, eq
ret
|
arm64 |
47 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return addu<47>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #47
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7fffffffffff
cmp w9, #0
mov x9, #140737488355327
csel x0, x9, x8, ne
ret
|
arm64 |
48 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return adds<48>(a, b);
}
|
_f: ; @f
lsr x8, x0, #31
and x8, x8, #0x10000
mov x9, #9223372036854710272
add x8, x8, x9
asr x8, x8, #16
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #48
tst x9, #0x800000000000
csel x0, x8, x10, eq
ret
|
arm64 |
48 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return addu<48>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #48
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xffffffffffff
cmp w9, #0
mov x9, #281474976710655
csel x0, x9, x8, ne
ret
|
arm64 |
49 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return adds<49>(a, b);
}
|
_f: ; @f
lsr x8, x0, #33
and x8, x8, #0x8000
mov x9, #9223372036854743040
add x8, x8, x9
asr x8, x8, #15
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #49
tst x9, #0x1000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
49 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return addu<49>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #49
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1ffffffffffff
cmp w9, #0
mov x9, #562949953421311
csel x0, x9, x8, ne
ret
|
arm64 |
50 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return adds<50>(a, b);
}
|
_f: ; @f
lsr x8, x0, #35
and x8, x8, #0x4000
mov x9, #9223372036854759424
add x8, x8, x9
asr x8, x8, #14
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #50
tst x9, #0x2000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
50 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return addu<50>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #50
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3ffffffffffff
cmp w9, #0
mov x9, #1125899906842623
csel x0, x9, x8, ne
ret
|
arm64 |
51 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return adds<51>(a, b);
}
|
_f: ; @f
lsr x8, x0, #37
and x8, x8, #0x2000
mov x9, #9223372036854767616
add x8, x8, x9
asr x8, x8, #13
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #51
tst x9, #0x4000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
51 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return addu<51>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #51
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7ffffffffffff
cmp w9, #0
mov x9, #2251799813685247
csel x0, x9, x8, ne
ret
|
arm64 |
52 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return adds<52>(a, b);
}
|
_f: ; @f
lsr x8, x0, #39
and x8, x8, #0x1000
mov x9, #9223372036854771712
add x8, x8, x9
asr x8, x8, #12
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #52
tst x9, #0x8000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
52 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return addu<52>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #52
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xfffffffffffff
cmp w9, #0
mov x9, #4503599627370495
csel x0, x9, x8, ne
ret
|
arm64 |
53 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return adds<53>(a, b);
}
|
_f: ; @f
lsr x8, x0, #41
and x8, x8, #0x800
mov x9, #9223372036854773760
add x8, x8, x9
asr x8, x8, #11
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #53
tst x9, #0x10000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
53 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return addu<53>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #53
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1fffffffffffff
cmp w9, #0
mov x9, #9007199254740991
csel x0, x9, x8, ne
ret
|
arm64 |
54 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return adds<54>(a, b);
}
|
_f: ; @f
lsr x8, x0, #43
and x8, x8, #0x400
mov x9, #9223372036854774784
add x8, x8, x9
asr x8, x8, #10
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #54
tst x9, #0x20000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
54 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return addu<54>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #54
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3fffffffffffff
cmp w9, #0
mov x9, #18014398509481983
csel x0, x9, x8, ne
ret
|
arm64 |
55 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return adds<55>(a, b);
}
|
_f: ; @f
lsr x8, x0, #45
and x8, x8, #0x200
mov x9, #9223372036854775296
add x8, x8, x9
asr x8, x8, #9
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #55
tst x9, #0x40000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
55 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return addu<55>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #55
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7fffffffffffff
cmp w9, #0
mov x9, #36028797018963967
csel x0, x9, x8, ne
ret
|
arm64 |
56 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return adds<56>(a, b);
}
|
_f: ; @f
lsr x8, x0, #47
and x8, x8, #0x100
mov x9, #9223372036854775552
add x8, x8, x9
asr x8, x8, #8
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #56
tst x9, #0x80000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
56 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return addu<56>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #56
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xffffffffffffff
cmp w9, #0
mov x9, #72057594037927935
csel x0, x9, x8, ne
ret
|
arm64 |
57 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return adds<57>(a, b);
}
|
_f: ; @f
lsr x8, x0, #49
and x8, x8, #0x80
mov x9, #9223372036854775680
add x8, x8, x9
asr x8, x8, #7
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #57
tst x9, #0x100000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
57 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return addu<57>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #57
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1ffffffffffffff
cmp w9, #0
mov x9, #144115188075855871
csel x0, x9, x8, ne
ret
|
arm64 |
58 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return adds<58>(a, b);
}
|
_f: ; @f
lsr x8, x0, #51
and x8, x8, #0x40
mov x9, #9223372036854775744
add x8, x8, x9
asr x8, x8, #6
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #58
tst x9, #0x200000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
58 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return addu<58>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #58
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3ffffffffffffff
cmp w9, #0
mov x9, #288230376151711743
csel x0, x9, x8, ne
ret
|
arm64 |
59 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return adds<59>(a, b);
}
|
_f: ; @f
lsr x8, x0, #53
and x8, x8, #0x20
mov x9, #9223372036854775776
add x8, x8, x9
asr x8, x8, #5
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #59
tst x9, #0x400000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
59 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return addu<59>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #59
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x7ffffffffffffff
cmp w9, #0
mov x9, #576460752303423487
csel x0, x9, x8, ne
ret
|
arm64 |
60 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return adds<60>(a, b);
}
|
_f: ; @f
lsr x8, x0, #55
and x8, x8, #0x10
mov x9, #9223372036854775792
add x8, x8, x9
asr x8, x8, #4
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #60
tst x9, #0x800000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
60 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return addu<60>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #60
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0xfffffffffffffff
cmp w9, #0
mov x9, #1152921504606846975
csel x0, x9, x8, ne
ret
|
arm64 |
61 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return adds<61>(a, b);
}
|
_f: ; @f
lsr x8, x0, #57
and x8, x8, #0x8
mov x9, #9223372036854775800
add x8, x8, x9
asr x8, x8, #3
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #61
tst x9, #0x1000000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
61 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return addu<61>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #61
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x1fffffffffffffff
cmp w9, #0
mov x9, #2305843009213693951
csel x0, x9, x8, ne
ret
|
arm64 |
62 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return adds<62>(a, b);
}
|
_f: ; @f
lsr x8, x0, #59
and x8, x8, #0x4
mov x9, #9223372036854775804
add x8, x8, x9
asr x8, x8, #2
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #62
tst x9, #0x2000000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
62 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return addu<62>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
lsr x10, x8, #62
cmp x10, #0
cset w10, ne
orr w9, w9, w10
and x8, x8, #0x3fffffffffffffff
cmp w9, #0
mov x9, #4611686018427387903
csel x0, x9, x8, ne
ret
|
arm64 |
63 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return adds<63>(a, b);
}
|
_f: ; @f
lsr x8, x0, #61
and x8, x8, #0x2
mov x9, #9223372036854775806
add x8, x8, x9
asr x8, x8, #1
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
sbfx x10, x10, #0, #63
tst x9, #0x4000000000000000
csel x0, x8, x10, eq
ret
|
arm64 |
63 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return addu<63>(a, b);
}
|
_f: ; @f
adds x8, x1, x0
cset w9, hs
orr x9, x9, x8, lsr #63
neg x9, x9
orr x8, x8, x9
and x0, x8, #0x7fffffffffffffff
ret
|
arm64 |
64 |
add |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return adds<64>(a, b);
}
|
_f: ; @f
mov x8, #9223372036854775807
add x8, x8, x0, lsr #63
eor x9, x8, x1
add x10, x1, x0
eor x11, x10, x1
orn x9, x9, x11
cmp x9, #0
csel x0, x8, x10, ge
ret
|
arm64 |
64 |
add |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return addu<64>(a, b);
}
|
_f: ; @f
adds x8, x0, x1
csinv x0, x8, xzr, lo
ret
|
arm64 |
4 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return subs<4>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #3, #1
add w10, w10, #7
tst w8, #0x8
csel w8, w9, w10, eq
sbfx w0, w8, #0, #4
ret
|
arm64 |
4 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return subu<4>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0xf
ret
|
arm64 |
5 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return subs<5>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #4, #1
add w10, w10, #15
tst w8, #0x10
csel w8, w9, w10, eq
sbfx w0, w8, #0, #5
ret
|
arm64 |
5 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return subu<5>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1f
ret
|
arm64 |
6 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return subs<6>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #5, #1
add w10, w10, #31
tst w8, #0x20
csel w8, w9, w10, eq
sbfx w0, w8, #0, #6
ret
|
arm64 |
6 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return subu<6>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3f
ret
|
arm64 |
7 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return subs<7>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #6, #1
add w10, w10, #63
tst w8, #0x40
csel w8, w9, w10, eq
sbfx w0, w8, #0, #7
ret
|
arm64 |
7 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return subu<7>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7f
ret
|
arm64 |
8 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return subs<8>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w10, w8
sxtb w8, w8
ubfx w10, w0, #7, #1
add w10, w10, #127
cmp w8, #0
csel w8, w10, w9, lt
sxtb w0, w8
ret
|
arm64 |
8 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return subu<8>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w0, wzr, w8, lo
ret
|
arm64 |
9 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return subs<9>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #8, #1
add w10, w10, #255
tst w8, #0x100
csel w8, w9, w10, eq
sbfx w0, w8, #0, #9
ret
|
arm64 |
9 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return subu<9>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1ff
ret
|
arm64 |
10 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return subs<10>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #9, #1
add w10, w10, #511
tst w8, #0x200
csel w8, w9, w10, eq
sbfx w0, w8, #0, #10
ret
|
arm64 |
10 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return subu<10>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3ff
ret
|
arm64 |
11 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return subs<11>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #10, #1
add w10, w10, #1023
tst w8, #0x400
csel w8, w9, w10, eq
sbfx w0, w8, #0, #11
ret
|
arm64 |
11 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return subu<11>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7ff
ret
|
arm64 |
12 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return subs<12>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #11, #1
add w10, w10, #2047
tst w8, #0x800
csel w8, w9, w10, eq
sbfx w0, w8, #0, #12
ret
|
arm64 |
12 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return subu<12>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0xfff
ret
|
arm64 |
13 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return subs<13>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #12, #1
add w10, w10, #4095
tst w8, #0x1000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #13
ret
|
arm64 |
13 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return subu<13>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1fff
ret
|
arm64 |
14 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return subs<14>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #13, #1
mov w11, #8191
add w10, w10, w11
tst w8, #0x2000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #14
ret
|
arm64 |
14 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return subu<14>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3fff
ret
|
arm64 |
15 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return subs<15>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #14, #1
mov w11, #16383
add w10, w10, w11
tst w8, #0x4000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #15
ret
|
arm64 |
15 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return subu<15>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7fff
ret
|
arm64 |
16 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return subs<16>(a, b);
}
|
_f: ; @f
and w8, w0, #0x8000
eor w9, w1, w0
sub w10, w0, w1
eor w11, w10, w0
and w9, w11, w9
sxth w9, w9
mov w11, #32767
add w8, w11, w8, lsr #15
cmp w9, #0
csel w8, w8, w10, lt
sxth w0, w8
ret
|
arm64 |
16 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return subu<16>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w0, wzr, w8, lo
ret
|
arm64 |
17 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return subs<17>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #1
and w10, w10, #0x8000
mov w11, #2147450880
add w10, w10, w11
lsl w9, w9, #15
tst w8, #0x10000
csel w8, w9, w10, eq
asr w0, w8, #15
ret
|
arm64 |
17 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return subu<17>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1ffff
ret
|
arm64 |
18 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return subs<18>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #3
and w10, w10, #0x4000
mov w11, #2147467264
add w10, w10, w11
lsl w9, w9, #14
tst w8, #0x20000
csel w8, w9, w10, eq
asr w0, w8, #14
ret
|
arm64 |
18 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return subu<18>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3ffff
ret
|
arm64 |
19 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return subs<19>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #5
and w10, w10, #0x2000
mov w11, #2147475456
add w10, w10, w11
lsl w9, w9, #13
tst w8, #0x40000
csel w8, w9, w10, eq
asr w0, w8, #13
ret
|
arm64 |
19 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return subu<19>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7ffff
ret
|
arm64 |
20 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return subs<20>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #7
and w10, w10, #0x1000
mov w11, #2147479552
add w10, w10, w11
lsl w9, w9, #12
tst w8, #0x80000
csel w8, w9, w10, eq
asr w0, w8, #12
ret
|
arm64 |
20 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return subu<20>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0xfffff
ret
|
arm64 |
21 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return subs<21>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #9
and w10, w10, #0x800
mov w11, #2147481600
add w10, w10, w11
lsl w9, w9, #11
tst w8, #0x100000
csel w8, w9, w10, eq
asr w0, w8, #11
ret
|
arm64 |
21 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return subu<21>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1fffff
ret
|
arm64 |
22 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return subs<22>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #11
and w10, w10, #0x400
mov w11, #2147482624
add w10, w10, w11
lsl w9, w9, #10
tst w8, #0x200000
csel w8, w9, w10, eq
asr w0, w8, #10
ret
|
arm64 |
22 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return subu<22>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3fffff
ret
|
arm64 |
23 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return subs<23>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #13
and w10, w10, #0x200
mov w11, #2147483136
add w10, w10, w11
lsl w9, w9, #9
tst w8, #0x400000
csel w8, w9, w10, eq
asr w0, w8, #9
ret
|
arm64 |
23 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return subu<23>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7fffff
ret
|
arm64 |
24 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return subs<24>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
lsr w10, w0, #15
and w10, w10, #0x100
mov w11, #2147483392
add w10, w10, w11
lsl w9, w9, #8
tst w8, #0x800000
csel w8, w9, w10, eq
asr w0, w8, #8
ret
|
arm64 |
24 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return subu<24>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0xffffff
ret
|
arm64 |
25 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return subs<25>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #24, #1
mov w11, #16777215
add w10, w10, w11
tst w8, #0x1000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #25
ret
|
arm64 |
25 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return subu<25>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1ffffff
ret
|
arm64 |
26 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return subs<26>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #25, #1
mov w11, #33554431
add w10, w10, w11
tst w8, #0x2000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #26
ret
|
arm64 |
26 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return subu<26>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3ffffff
ret
|
arm64 |
27 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return subs<27>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #26, #1
mov w11, #67108863
add w10, w10, w11
tst w8, #0x4000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #27
ret
|
arm64 |
27 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return subu<27>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7ffffff
ret
|
arm64 |
28 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return subs<28>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #27, #1
mov w11, #134217727
add w10, w10, w11
tst w8, #0x8000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #28
ret
|
arm64 |
28 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return subu<28>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0xfffffff
ret
|
arm64 |
29 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return subs<29>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #28, #1
mov w11, #268435455
add w10, w10, w11
tst w8, #0x10000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #29
ret
|
arm64 |
29 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return subu<29>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x1fffffff
ret
|
arm64 |
30 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return subs<30>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #29, #1
mov w11, #536870911
add w10, w10, w11
tst w8, #0x20000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #30
ret
|
arm64 |
30 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return subu<30>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x3fffffff
ret
|
arm64 |
31 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return subs<31>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
and w8, w8, w10
ubfx w10, w0, #30, #1
mov w11, #1073741823
add w10, w10, w11
tst w8, #0x40000000
csel w8, w9, w10, eq
sbfx w0, w8, #0, #31
ret
|
arm64 |
31 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return subu<31>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w8, wzr, w8, lo
and w0, w8, #0x7fffffff
ret
|
arm64 |
32 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return subs<32>(a, b);
}
|
_f: ; @f
eor w8, w1, w0
sub w9, w0, w1
eor w10, w9, w0
mov w11, #2147483647
add w11, w11, w0, lsr #31
tst w10, w8
csel w0, w11, w9, lt
ret
|
arm64 |
32 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return subu<32>(a, b);
}
|
_f: ; @f
subs w8, w0, w1
csel w0, wzr, w8, lo
ret
|
arm64 |
33 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return subs<33>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #1
and x10, x10, #0x80000000
mov x11, #9223372034707292160
add x10, x10, x11
lsl x9, x9, #31
tst x8, #0x100000000
csel x8, x9, x10, eq
asr x0, x8, #31
ret
|
arm64 |
33 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return subu<33>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1ffffffff
ret
|
arm64 |
34 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return subs<34>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #3
and x10, x10, #0x40000000
mov x11, #9223372035781033984
add x10, x10, x11
lsl x9, x9, #30
tst x8, #0x200000000
csel x8, x9, x10, eq
asr x0, x8, #30
ret
|
arm64 |
34 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return subu<34>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3ffffffff
ret
|
arm64 |
35 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return subs<35>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #5
and x10, x10, #0x20000000
mov x11, #9223372036317904896
add x10, x10, x11
lsl x9, x9, #29
tst x8, #0x400000000
csel x8, x9, x10, eq
asr x0, x8, #29
ret
|
arm64 |
35 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return subu<35>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7ffffffff
ret
|
arm64 |
36 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return subs<36>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #7
and x10, x10, #0x10000000
mov x11, #9223372036586340352
add x10, x10, x11
lsl x9, x9, #28
tst x8, #0x800000000
csel x8, x9, x10, eq
asr x0, x8, #28
ret
|
arm64 |
36 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return subu<36>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xfffffffff
ret
|
arm64 |
37 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return subs<37>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #9
and x10, x10, #0x8000000
mov x11, #9223372036720558080
add x10, x10, x11
lsl x9, x9, #27
tst x8, #0x1000000000
csel x8, x9, x10, eq
asr x0, x8, #27
ret
|
arm64 |
37 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return subu<37>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1fffffffff
ret
|
arm64 |
38 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return subs<38>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #11
and x10, x10, #0x4000000
mov x11, #9223372036787666944
add x10, x10, x11
lsl x9, x9, #26
tst x8, #0x2000000000
csel x8, x9, x10, eq
asr x0, x8, #26
ret
|
arm64 |
38 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return subu<38>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3fffffffff
ret
|
arm64 |
39 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return subs<39>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #13
and x10, x10, #0x2000000
mov x11, #9223372036821221376
add x10, x10, x11
lsl x9, x9, #25
tst x8, #0x4000000000
csel x8, x9, x10, eq
asr x0, x8, #25
ret
|
arm64 |
39 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return subu<39>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7fffffffff
ret
|
arm64 |
40 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return subs<40>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #15
and x10, x10, #0x1000000
mov x11, #9223372036837998592
add x10, x10, x11
lsl x9, x9, #24
tst x8, #0x8000000000
csel x8, x9, x10, eq
asr x0, x8, #24
ret
|
arm64 |
40 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return subu<40>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xffffffffff
ret
|
arm64 |
41 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return subs<41>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #17
and x10, x10, #0x800000
mov x11, #9223372036846387200
add x10, x10, x11
lsl x9, x9, #23
tst x8, #0x10000000000
csel x8, x9, x10, eq
asr x0, x8, #23
ret
|
arm64 |
41 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return subu<41>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1ffffffffff
ret
|
arm64 |
42 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return subs<42>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #19
and x10, x10, #0x400000
mov x11, #9223372036850581504
add x10, x10, x11
lsl x9, x9, #22
tst x8, #0x20000000000
csel x8, x9, x10, eq
asr x0, x8, #22
ret
|
arm64 |
42 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return subu<42>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3ffffffffff
ret
|
arm64 |
43 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return subs<43>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #21
and x10, x10, #0x200000
mov x11, #9223372036852678656
add x10, x10, x11
lsl x9, x9, #21
tst x8, #0x40000000000
csel x8, x9, x10, eq
asr x0, x8, #21
ret
|
arm64 |
43 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return subu<43>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7ffffffffff
ret
|
arm64 |
44 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return subs<44>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #23
and x10, x10, #0x100000
mov x11, #9223372036853727232
add x10, x10, x11
lsl x9, x9, #20
tst x8, #0x80000000000
csel x8, x9, x10, eq
asr x0, x8, #20
ret
|
arm64 |
44 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return subu<44>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xfffffffffff
ret
|
arm64 |
45 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return subs<45>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #25
and x10, x10, #0x80000
mov x11, #9223372036854251520
add x10, x10, x11
lsl x9, x9, #19
tst x8, #0x100000000000
csel x8, x9, x10, eq
asr x0, x8, #19
ret
|
arm64 |
45 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return subu<45>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1fffffffffff
ret
|
arm64 |
46 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return subs<46>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #27
and x10, x10, #0x40000
mov x11, #9223372036854513664
add x10, x10, x11
lsl x9, x9, #18
tst x8, #0x200000000000
csel x8, x9, x10, eq
asr x0, x8, #18
ret
|
arm64 |
46 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return subu<46>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3fffffffffff
ret
|
arm64 |
47 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return subs<47>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #29
and x10, x10, #0x20000
mov x11, #9223372036854644736
add x10, x10, x11
lsl x9, x9, #17
tst x8, #0x400000000000
csel x8, x9, x10, eq
asr x0, x8, #17
ret
|
arm64 |
47 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return subu<47>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7fffffffffff
ret
|
arm64 |
48 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return subs<48>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #31
and x10, x10, #0x10000
mov x11, #9223372036854710272
add x10, x10, x11
lsl x9, x9, #16
tst x8, #0x800000000000
csel x8, x9, x10, eq
asr x0, x8, #16
ret
|
arm64 |
48 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return subu<48>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xffffffffffff
ret
|
arm64 |
49 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return subs<49>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #33
and x10, x10, #0x8000
mov x11, #9223372036854743040
add x10, x10, x11
lsl x9, x9, #15
tst x8, #0x1000000000000
csel x8, x9, x10, eq
asr x0, x8, #15
ret
|
arm64 |
49 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return subu<49>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1ffffffffffff
ret
|
arm64 |
50 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return subs<50>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #35
and x10, x10, #0x4000
mov x11, #9223372036854759424
add x10, x10, x11
lsl x9, x9, #14
tst x8, #0x2000000000000
csel x8, x9, x10, eq
asr x0, x8, #14
ret
|
arm64 |
50 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return subu<50>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3ffffffffffff
ret
|
arm64 |
51 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return subs<51>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #37
and x10, x10, #0x2000
mov x11, #9223372036854767616
add x10, x10, x11
lsl x9, x9, #13
tst x8, #0x4000000000000
csel x8, x9, x10, eq
asr x0, x8, #13
ret
|
arm64 |
51 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return subu<51>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7ffffffffffff
ret
|
arm64 |
52 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return subs<52>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #39
and x10, x10, #0x1000
mov x11, #9223372036854771712
add x10, x10, x11
lsl x9, x9, #12
tst x8, #0x8000000000000
csel x8, x9, x10, eq
asr x0, x8, #12
ret
|
arm64 |
52 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return subu<52>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xfffffffffffff
ret
|
arm64 |
53 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return subs<53>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #41
and x10, x10, #0x800
mov x11, #9223372036854773760
add x10, x10, x11
lsl x9, x9, #11
tst x8, #0x10000000000000
csel x8, x9, x10, eq
asr x0, x8, #11
ret
|
arm64 |
53 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return subu<53>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1fffffffffffff
ret
|
arm64 |
54 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return subs<54>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #43
and x10, x10, #0x400
mov x11, #9223372036854774784
add x10, x10, x11
lsl x9, x9, #10
tst x8, #0x20000000000000
csel x8, x9, x10, eq
asr x0, x8, #10
ret
|
arm64 |
54 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return subu<54>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3fffffffffffff
ret
|
arm64 |
55 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return subs<55>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #45
and x10, x10, #0x200
mov x11, #9223372036854775296
add x10, x10, x11
lsl x9, x9, #9
tst x8, #0x40000000000000
csel x8, x9, x10, eq
asr x0, x8, #9
ret
|
arm64 |
55 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return subu<55>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7fffffffffffff
ret
|
arm64 |
56 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return subs<56>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
lsr x10, x0, #47
and x10, x10, #0x100
mov x11, #9223372036854775552
add x10, x10, x11
lsl x9, x9, #8
tst x8, #0x80000000000000
csel x8, x9, x10, eq
asr x0, x8, #8
ret
|
arm64 |
56 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return subu<56>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xffffffffffffff
ret
|
arm64 |
57 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return subs<57>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #56, #1
mov x11, #72057594037927935
add x10, x10, x11
tst x8, #0x100000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #57
ret
|
arm64 |
57 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return subu<57>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1ffffffffffffff
ret
|
arm64 |
58 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return subs<58>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #57, #1
mov x11, #144115188075855871
add x10, x10, x11
tst x8, #0x200000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #58
ret
|
arm64 |
58 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return subu<58>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3ffffffffffffff
ret
|
arm64 |
59 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return subs<59>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #58, #1
mov x11, #288230376151711743
add x10, x10, x11
tst x8, #0x400000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #59
ret
|
arm64 |
59 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return subu<59>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7ffffffffffffff
ret
|
arm64 |
60 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return subs<60>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #59, #1
mov x11, #576460752303423487
add x10, x10, x11
tst x8, #0x800000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #60
ret
|
arm64 |
60 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return subu<60>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0xfffffffffffffff
ret
|
arm64 |
61 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return subs<61>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #60, #1
mov x11, #1152921504606846975
add x10, x10, x11
tst x8, #0x1000000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #61
ret
|
arm64 |
61 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return subu<61>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x1fffffffffffffff
ret
|
arm64 |
62 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return subs<62>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #61, #1
mov x11, #2305843009213693951
add x10, x10, x11
tst x8, #0x2000000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #62
ret
|
arm64 |
62 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return subu<62>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x3fffffffffffffff
ret
|
arm64 |
63 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return subs<63>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
and x8, x8, x10
ubfx x10, x0, #62, #1
mov x11, #4611686018427387903
add x10, x10, x11
tst x8, #0x4000000000000000
csel x8, x9, x10, eq
sbfx x0, x8, #0, #63
ret
|
arm64 |
63 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return subu<63>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x8, xzr, x8, lo
and x0, x8, #0x7fffffffffffffff
ret
|
arm64 |
64 |
sub |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return subs<64>(a, b);
}
|
_f: ; @f
eor x8, x1, x0
sub x9, x0, x1
eor x10, x9, x0
mov x11, #9223372036854775807
add x11, x11, x0, lsr #63
tst x10, x8
csel x0, x11, x9, lt
ret
|
arm64 |
64 |
sub |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return subu<64>(a, b);
}
|
_f: ; @f
subs x8, x0, x1
csel x0, xzr, x8, lo
ret
|
arm64 |
4 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return muls<4>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #4
sxtb w10, w8
ubfx w10, w10, #3, #8
eor w11, w1, w0
lsl w11, w11, #1
and w11, w11, #0x10
add w11, w11, #112
sbfx w11, w11, #4, #4
cmp w10, w9, uxtb
csel w8, w8, w11, eq
sxtb w0, w8
ret
|
arm64 |
4 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return mulu<4>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0xf
tst w8, #0xff0
mov w8, #15
csel w0, w9, w8, eq
ret
|
arm64 |
5 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return muls<5>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #5
sxtb w10, w8
ubfx w10, w10, #4, #8
eor w11, w1, w0
lsr w11, w11, #1
and w11, w11, #0x8
add w11, w11, #120
sbfx w11, w11, #3, #5
cmp w10, w9, uxtb
csel w8, w8, w11, eq
sxtb w0, w8
ret
|
arm64 |
5 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return mulu<5>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x1f
tst w8, #0x1fe0
mov w8, #31
csel w0, w9, w8, eq
ret
|
arm64 |
6 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return muls<6>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #6
sxtb w10, w8
ubfx w10, w10, #5, #8
eor w11, w1, w0
lsr w11, w11, #3
and w11, w11, #0x4
add w11, w11, #124
sbfx w11, w11, #2, #6
cmp w10, w9, uxtb
csel w8, w8, w11, eq
sxtb w0, w8
ret
|
arm64 |
6 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return mulu<6>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x3f
tst w8, #0x3fc0
mov w8, #63
csel w0, w9, w8, eq
ret
|
arm64 |
7 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return muls<7>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #7
sxtb w10, w8
ubfx w10, w10, #6, #8
eor w11, w1, w0
lsr w11, w11, #5
and w11, w11, #0x2
add w11, w11, #126
sbfx w11, w11, #1, #7
cmp w10, w9, uxtb
csel w8, w8, w11, eq
sxtb w0, w8
ret
|
arm64 |
7 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return mulu<7>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x7f
tst w8, #0x7f80
mov w8, #127
csel w0, w9, w8, eq
ret
|
arm64 |
8 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return muls<8>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
rev w8, w8
lsr w9, w8, #16
asr w10, w8, #16
lsr w8, w8, #24
ubfx w10, w10, #15, #8
eor w11, w1, w0
ubfx w11, w11, #7, #1
add w11, w11, #127
cmp w10, w9, uxtb
csel w8, w8, w11, eq
sxtb w0, w8
ret
|
arm64 |
8 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return mulu<8>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
rev w8, w8
lsr w9, w8, #24
mov w10, #255
tst w10, w8, ror #16
csinv w8, w9, wzr, eq
and w0, w8, #0xff
ret
|
arm64 |
9 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return muls<9>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #9
sxth w10, w8
ubfx w10, w10, #8, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #1
and w9, w9, #0x80
mov w10, #32640
add w9, w9, w10
sbfx w9, w9, #7, #9
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
9 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return mulu<9>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x1ff
tst w8, #0x1fffe00
mov w8, #511
csel w0, w9, w8, eq
ret
|
arm64 |
10 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return muls<10>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #10
sxth w10, w8
ubfx w10, w10, #9, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #3
and w9, w9, #0x40
mov w10, #32704
add w9, w9, w10
sbfx w9, w9, #6, #10
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
10 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return mulu<10>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x3ff
tst w8, #0x3fffc00
mov w8, #1023
csel w0, w9, w8, eq
ret
|
arm64 |
11 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return muls<11>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #11
sxth w10, w8
ubfx w10, w10, #10, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #5
and w9, w9, #0x20
mov w10, #32736
add w9, w9, w10
sbfx w9, w9, #5, #11
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
11 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return mulu<11>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x7ff
tst w8, #0x7fff800
mov w8, #2047
csel w0, w9, w8, eq
ret
|
arm64 |
12 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return muls<12>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #12
sxth w10, w8
ubfx w10, w10, #11, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #7
and w9, w9, #0x10
mov w10, #32752
add w9, w9, w10
sbfx w9, w9, #4, #12
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
12 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return mulu<12>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0xfff
tst w8, #0xffff000
mov w8, #4095
csel w0, w9, w8, eq
ret
|
arm64 |
13 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return muls<13>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #13
sxth w10, w8
ubfx w10, w10, #12, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #9
and w9, w9, #0x8
mov w10, #32760
add w9, w9, w10
sbfx w9, w9, #3, #13
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
13 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return mulu<13>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x1fff
tst w8, #0x1fffe000
mov w8, #8191
csel w0, w9, w8, eq
ret
|
arm64 |
14 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return muls<14>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #14
sxth w10, w8
ubfx w10, w10, #13, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #11
and w9, w9, #0x4
mov w10, #32764
add w9, w9, w10
sbfx w9, w9, #2, #14
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
14 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return mulu<14>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x3fff
tst w8, #0x3fffc000
mov w8, #16383
csel w0, w9, w8, eq
ret
|
arm64 |
15 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return muls<15>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
lsr w9, w8, #15
sxth w10, w8
ubfx w10, w10, #14, #16
cmp w10, w9, uxth
eor w9, w1, w0
lsr w9, w9, #13
and w9, w9, #0x2
mov w10, #32766
add w9, w9, w10
sbfx w9, w9, #1, #15
csel w8, w8, w9, eq
sxth w0, w8
ret
|
arm64 |
15 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return mulu<15>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
and w9, w8, #0x7fff
tst w8, #0x7fff8000
mov w8, #32767
csel w0, w9, w8, eq
ret
|
arm64 |
16 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return muls<16>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
ror w8, w8, #16
lsr w9, w8, #16
asr w10, w8, #31
and w10, w10, #0xffff
eor w11, w1, w0
and w11, w11, #0x8000
mov w12, #32767
add w11, w12, w11, lsr #15
cmp w10, w8, uxth
csel w8, w9, w11, eq
sxth w0, w8
ret
|
arm64 |
16 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return mulu<16>(a, b);
}
|
_f: ; @f
mul w8, w1, w0
ror w8, w8, #16
lsr w9, w8, #16
tst w8, #0xffff
csinv w8, w9, wzr, eq
and w0, w8, #0xffff
ret
|
arm64 |
17 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return muls<17>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #17
cmp w9, w8, asr #16
eor w9, w1, w0
lsr w9, w9, #1
and w9, w9, #0x8000
mov w10, #2147450880
add w9, w9, w10
asr w9, w9, #15
csel w0, w8, w9, eq
ret
|
arm64 |
17 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return mulu<17>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x1ffff
tst x8, #0x1fffffffe0000
mov w8, #131071
csel w0, w9, w8, eq
ret
|
arm64 |
18 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return muls<18>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #18
cmp w9, w8, asr #17
eor w9, w1, w0
lsr w9, w9, #3
and w9, w9, #0x4000
mov w10, #2147467264
add w9, w9, w10
asr w9, w9, #14
csel w0, w8, w9, eq
ret
|
arm64 |
18 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return mulu<18>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x3ffff
tst x8, #0x3fffffffc0000
mov w8, #262143
csel w0, w9, w8, eq
ret
|
arm64 |
19 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return muls<19>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #19
cmp w9, w8, asr #18
eor w9, w1, w0
lsr w9, w9, #5
and w9, w9, #0x2000
mov w10, #2147475456
add w9, w9, w10
asr w9, w9, #13
csel w0, w8, w9, eq
ret
|
arm64 |
19 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return mulu<19>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x7ffff
tst x8, #0x7fffffff80000
mov w8, #524287
csel w0, w9, w8, eq
ret
|
arm64 |
20 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return muls<20>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #20
cmp w9, w8, asr #19
eor w9, w1, w0
lsr w9, w9, #7
and w9, w9, #0x1000
mov w10, #2147479552
add w9, w9, w10
asr w9, w9, #12
csel w0, w8, w9, eq
ret
|
arm64 |
20 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return mulu<20>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0xfffff
tst x8, #0xffffffff00000
mov w8, #1048575
csel w0, w9, w8, eq
ret
|
arm64 |
21 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return muls<21>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #21
cmp w9, w8, asr #20
eor w9, w1, w0
lsr w9, w9, #9
and w9, w9, #0x800
mov w10, #2147481600
add w9, w9, w10
asr w9, w9, #11
csel w0, w8, w9, eq
ret
|
arm64 |
21 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return mulu<21>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x1fffff
tst x8, #0x1fffffffe00000
mov w8, #2097151
csel w0, w9, w8, eq
ret
|
arm64 |
22 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return muls<22>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #22
cmp w9, w8, asr #21
eor w9, w1, w0
lsr w9, w9, #11
and w9, w9, #0x400
mov w10, #2147482624
add w9, w9, w10
asr w9, w9, #10
csel w0, w8, w9, eq
ret
|
arm64 |
22 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return mulu<22>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x3fffff
tst x8, #0x3fffffffc00000
mov w8, #4194303
csel w0, w9, w8, eq
ret
|
arm64 |
23 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return muls<23>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #23
cmp w9, w8, asr #22
eor w9, w1, w0
lsr w9, w9, #13
and w9, w9, #0x200
mov w10, #2147483136
add w9, w9, w10
asr w9, w9, #9
csel w0, w8, w9, eq
ret
|
arm64 |
23 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return mulu<23>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x7fffff
tst x8, #0x7fffffff800000
mov w8, #8388607
csel w0, w9, w8, eq
ret
|
arm64 |
24 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return muls<24>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #24
cmp w9, w8, asr #23
eor w9, w1, w0
lsr w9, w9, #15
and w9, w9, #0x100
mov w10, #2147483392
add w9, w9, w10
asr w9, w9, #8
csel w0, w8, w9, eq
ret
|
arm64 |
24 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return mulu<24>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0xffffff
tst x8, #0xffffffff000000
mov w8, #16777215
csel w0, w9, w8, eq
ret
|
arm64 |
25 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return muls<25>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #25
cmp w9, w8, asr #24
eor w9, w1, w0
lsr w9, w9, #17
and w9, w9, #0x80
mov w10, #2147483520
add w9, w9, w10
asr w9, w9, #7
csel w0, w8, w9, eq
ret
|
arm64 |
25 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return mulu<25>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x1ffffff
tst x8, #0x1fffffffe000000
mov w8, #33554431
csel w0, w9, w8, eq
ret
|
arm64 |
26 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return muls<26>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #26
cmp w9, w8, asr #25
eor w9, w1, w0
lsr w9, w9, #19
and w9, w9, #0x40
mov w10, #2147483584
add w9, w9, w10
asr w9, w9, #6
csel w0, w8, w9, eq
ret
|
arm64 |
26 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return mulu<26>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x3ffffff
tst x8, #0x3fffffffc000000
mov w8, #67108863
csel w0, w9, w8, eq
ret
|
arm64 |
27 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return muls<27>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #27
cmp w9, w8, asr #26
eor w9, w1, w0
lsr w9, w9, #21
and w9, w9, #0x20
mov w10, #2147483616
add w9, w9, w10
asr w9, w9, #5
csel w0, w8, w9, eq
ret
|
arm64 |
27 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return mulu<27>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x7ffffff
tst x8, #0x7fffffff8000000
mov w8, #134217727
csel w0, w9, w8, eq
ret
|
arm64 |
28 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return muls<28>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #28
cmp w9, w8, asr #27
eor w9, w1, w0
lsr w9, w9, #23
and w9, w9, #0x10
mov w10, #2147483632
add w9, w9, w10
asr w9, w9, #4
csel w0, w8, w9, eq
ret
|
arm64 |
28 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return mulu<28>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0xfffffff
tst x8, #0xffffffff0000000
mov w8, #268435455
csel w0, w9, w8, eq
ret
|
arm64 |
29 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return muls<29>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #29
cmp w9, w8, asr #28
eor w9, w1, w0
lsr w9, w9, #25
and w9, w9, #0x8
mov w10, #2147483640
add w9, w9, w10
asr w9, w9, #3
csel w0, w8, w9, eq
ret
|
arm64 |
29 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return mulu<29>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x1fffffff
tst x8, #0x1fffffffe0000000
mov w8, #536870911
csel w0, w9, w8, eq
ret
|
arm64 |
30 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return muls<30>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #30
cmp w9, w8, asr #29
eor w9, w1, w0
lsr w9, w9, #27
and w9, w9, #0x4
mov w10, #2147483644
add w9, w9, w10
asr w9, w9, #2
csel w0, w8, w9, eq
ret
|
arm64 |
30 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return mulu<30>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x3fffffff
tst x8, #0x3fffffffc0000000
mov w8, #1073741823
csel w0, w9, w8, eq
ret
|
arm64 |
31 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return muls<31>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
lsr x9, x8, #31
cmp w9, w8, asr #30
eor w9, w1, w0
lsr w9, w9, #29
and w9, w9, #0x2
mov w10, #2147483646
add w9, w9, w10
asr w9, w9, #1
csel w0, w8, w9, eq
ret
|
arm64 |
31 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return mulu<31>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
and w9, w8, #0x7fffffff
tst x8, #0x7fffffff80000000
mov w8, #2147483647
csel w0, w9, w8, eq
ret
|
arm64 |
32 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return muls<32>(a, b);
}
|
_f: ; @f
smull x8, w1, w0
ror x8, x8, #32
lsr x9, x8, #32
eor w10, w1, w0
mov w11, #2147483647
add w10, w11, w10, lsr #31
cmp w8, w9, asr #31
csel w0, w9, w10, eq
ret
|
arm64 |
32 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return mulu<32>(a, b);
}
|
_f: ; @f
umull x8, w1, w0
ror x8, x8, #32
lsr x9, x8, #32
cmp w8, #0
csinv w0, w9, wzr, eq
ret
|
arm64 |
33 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return muls<33>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #33
lsl x9, x12, #31
eor x10, x1, x0
lsr x10, x10, #1
and x10, x10, #0x80000000
mov x11, #9223372034707292160
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #31
ret
|
arm64 |
33 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return mulu<33>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #33
and x10, x12, #0xffffffff
bfi x10, x9, #32, #1
mov x9, #8589934591
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
34 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return muls<34>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #34
lsl x9, x12, #30
eor x10, x1, x0
lsr x10, x10, #3
and x10, x10, #0x40000000
mov x11, #9223372035781033984
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #30
ret
|
arm64 |
34 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return mulu<34>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #34
and x10, x12, #0xffffffff
bfi x10, x9, #32, #2
mov x9, #17179869183
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
35 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return muls<35>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #35
lsl x9, x12, #29
eor x10, x1, x0
lsr x10, x10, #5
and x10, x10, #0x20000000
mov x11, #9223372036317904896
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #29
ret
|
arm64 |
35 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return mulu<35>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #35
and x10, x12, #0xffffffff
bfi x10, x9, #32, #3
mov x9, #34359738367
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
36 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return muls<36>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #36
lsl x9, x12, #28
eor x10, x1, x0
lsr x10, x10, #7
and x10, x10, #0x10000000
mov x11, #9223372036586340352
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #28
ret
|
arm64 |
36 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return mulu<36>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #36
and x10, x12, #0xffffffff
bfi x10, x9, #32, #4
mov x9, #68719476735
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
37 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return muls<37>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #37
lsl x9, x12, #27
eor x10, x1, x0
lsr x10, x10, #9
and x10, x10, #0x8000000
mov x11, #9223372036720558080
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #27
ret
|
arm64 |
37 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return mulu<37>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #37
and x10, x12, #0xffffffff
bfi x10, x9, #32, #5
mov x9, #137438953471
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
38 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return muls<38>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #38
lsl x9, x12, #26
eor x10, x1, x0
lsr x10, x10, #11
and x10, x10, #0x4000000
mov x11, #9223372036787666944
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #26
ret
|
arm64 |
38 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return mulu<38>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #38
and x10, x12, #0xffffffff
bfi x10, x9, #32, #6
mov x9, #274877906943
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
39 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return muls<39>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #39
lsl x9, x12, #25
eor x10, x1, x0
lsr x10, x10, #13
and x10, x10, #0x2000000
mov x11, #9223372036821221376
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #25
ret
|
arm64 |
39 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return mulu<39>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #39
and x10, x12, #0xffffffff
bfi x10, x9, #32, #7
mov x9, #549755813887
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
40 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return muls<40>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #40
lsl x9, x12, #24
eor x10, x1, x0
lsr x10, x10, #15
and x10, x10, #0x1000000
mov x11, #9223372036837998592
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #24
ret
|
arm64 |
40 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return mulu<40>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #40
and x10, x12, #0xffffffff
bfi x10, x9, #32, #8
mov x9, #1099511627775
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
41 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return muls<41>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #41
lsl x9, x12, #23
eor x10, x1, x0
lsr x10, x10, #17
and x10, x10, #0x800000
mov x11, #9223372036846387200
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #23
ret
|
arm64 |
41 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return mulu<41>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #41
and x10, x12, #0xffffffff
bfi x10, x9, #32, #9
mov x9, #2199023255551
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
42 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return muls<42>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #42
lsl x9, x12, #22
eor x10, x1, x0
lsr x10, x10, #19
and x10, x10, #0x400000
mov x11, #9223372036850581504
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #22
ret
|
arm64 |
42 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return mulu<42>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #42
and x10, x12, #0xffffffff
bfi x10, x9, #32, #10
mov x9, #4398046511103
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
43 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return muls<43>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #43
lsl x9, x12, #21
eor x10, x1, x0
lsr x10, x10, #21
and x10, x10, #0x200000
mov x11, #9223372036852678656
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #21
ret
|
arm64 |
43 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return mulu<43>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #43
and x10, x12, #0xffffffff
bfi x10, x9, #32, #11
mov x9, #8796093022207
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
44 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return muls<44>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #44
lsl x9, x12, #20
eor x10, x1, x0
lsr x10, x10, #23
and x10, x10, #0x100000
mov x11, #9223372036853727232
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #20
ret
|
arm64 |
44 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return mulu<44>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #44
and x10, x12, #0xffffffff
bfi x10, x9, #32, #12
mov x9, #17592186044415
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
45 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return muls<45>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #45
lsl x9, x12, #19
eor x10, x1, x0
lsr x10, x10, #25
and x10, x10, #0x80000
mov x11, #9223372036854251520
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #19
ret
|
arm64 |
45 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return mulu<45>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #45
and x10, x12, #0xffffffff
bfi x10, x9, #32, #13
mov x9, #35184372088831
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
46 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return muls<46>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #46
lsl x9, x12, #18
eor x10, x1, x0
lsr x10, x10, #27
and x10, x10, #0x40000
mov x11, #9223372036854513664
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #18
ret
|
arm64 |
46 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return mulu<46>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #46
and x10, x12, #0xffffffff
bfi x10, x9, #32, #14
mov x9, #70368744177663
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
47 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return muls<47>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #47
lsl x9, x12, #17
eor x10, x1, x0
lsr x10, x10, #29
and x10, x10, #0x20000
mov x11, #9223372036854644736
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #17
ret
|
arm64 |
47 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return mulu<47>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #47
and x10, x12, #0xffffffff
bfi x10, x9, #32, #15
mov x9, #140737488355327
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
48 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return muls<48>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #48
lsl x9, x12, #16
eor x10, x1, x0
lsr x10, x10, #31
and x10, x10, #0x10000
mov x11, #9223372036854710272
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #16
ret
|
arm64 |
48 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return mulu<48>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #48
and x10, x12, #0xffffffff
bfi x10, x9, #32, #16
mov x9, #281474976710655
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
49 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return muls<49>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #49
lsl x9, x12, #15
eor x10, x1, x0
lsr x10, x10, #33
and x10, x10, #0x8000
mov x11, #9223372036854743040
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #15
ret
|
arm64 |
49 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return mulu<49>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #49
and x10, x12, #0xffffffff
bfi x10, x9, #32, #17
mov x9, #562949953421311
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
50 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return muls<50>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #50
lsl x9, x12, #14
eor x10, x1, x0
lsr x10, x10, #35
and x10, x10, #0x4000
mov x11, #9223372036854759424
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #14
ret
|
arm64 |
50 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return mulu<50>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #50
and x10, x12, #0xffffffff
bfi x10, x9, #32, #18
mov x9, #1125899906842623
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
51 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return muls<51>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #51
lsl x9, x12, #13
eor x10, x1, x0
lsr x10, x10, #37
and x10, x10, #0x2000
mov x11, #9223372036854767616
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #13
ret
|
arm64 |
51 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return mulu<51>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #51
and x10, x12, #0xffffffff
bfi x10, x9, #32, #19
mov x9, #2251799813685247
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
52 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return muls<52>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #52
lsl x9, x12, #12
eor x10, x1, x0
lsr x10, x10, #39
and x10, x10, #0x1000
mov x11, #9223372036854771712
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #12
ret
|
arm64 |
52 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return mulu<52>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #52
and x10, x12, #0xffffffff
bfi x10, x9, #32, #20
mov x9, #4503599627370495
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
53 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return muls<53>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #53
lsl x9, x12, #11
eor x10, x1, x0
lsr x10, x10, #41
and x10, x10, #0x800
mov x11, #9223372036854773760
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #11
ret
|
arm64 |
53 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return mulu<53>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #53
and x10, x12, #0xffffffff
bfi x10, x9, #32, #21
mov x9, #9007199254740991
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
54 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return muls<54>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #54
lsl x9, x12, #10
eor x10, x1, x0
lsr x10, x10, #43
and x10, x10, #0x400
mov x11, #9223372036854774784
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #10
ret
|
arm64 |
54 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return mulu<54>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #54
and x10, x12, #0xffffffff
bfi x10, x9, #32, #22
mov x9, #18014398509481983
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
55 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return muls<55>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #55
lsl x9, x12, #9
eor x10, x1, x0
lsr x10, x10, #45
and x10, x10, #0x200
mov x11, #9223372036854775296
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #9
ret
|
arm64 |
55 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return mulu<55>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #55
and x10, x12, #0xffffffff
bfi x10, x9, #32, #23
mov x9, #36028797018963967
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
56 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return muls<56>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #56
lsl x9, x12, #8
eor x10, x1, x0
lsr x10, x10, #47
and x10, x10, #0x100
mov x11, #9223372036854775552
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #8
ret
|
arm64 |
56 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return mulu<56>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #56
and x10, x12, #0xffffffff
bfi x10, x9, #32, #24
mov x9, #72057594037927935
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
57 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return muls<57>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #57
lsl x9, x12, #7
eor x10, x1, x0
lsr x10, x10, #49
and x10, x10, #0x80
mov x11, #9223372036854775680
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #7
ret
|
arm64 |
57 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return mulu<57>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #57
and x10, x12, #0xffffffff
bfi x10, x9, #32, #25
mov x9, #144115188075855871
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
58 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return muls<58>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #58
lsl x9, x12, #6
eor x10, x1, x0
lsr x10, x10, #51
and x10, x10, #0x40
mov x11, #9223372036854775744
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #6
ret
|
arm64 |
58 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return mulu<58>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #58
and x10, x12, #0xffffffff
bfi x10, x9, #32, #26
mov x9, #288230376151711743
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
59 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return muls<59>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #59
lsl x9, x12, #5
eor x10, x1, x0
lsr x10, x10, #53
and x10, x10, #0x20
mov x11, #9223372036854775776
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #5
ret
|
arm64 |
59 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return mulu<59>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #59
and x10, x12, #0xffffffff
bfi x10, x9, #32, #27
mov x9, #576460752303423487
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
60 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return muls<60>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #60
lsl x9, x12, #4
eor x10, x1, x0
lsr x10, x10, #55
and x10, x10, #0x10
mov x11, #9223372036854775792
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #4
ret
|
arm64 |
60 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return mulu<60>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #60
and x10, x12, #0xffffffff
bfi x10, x9, #32, #28
mov x9, #1152921504606846975
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
61 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return muls<61>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #61
lsl x9, x12, #3
eor x10, x1, x0
lsr x10, x10, #57
and x10, x10, #0x8
mov x11, #9223372036854775800
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #3
ret
|
arm64 |
61 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return mulu<61>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #61
and x10, x12, #0xffffffff
bfi x10, x9, #32, #29
mov x9, #2305843009213693951
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
62 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return muls<62>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #62
lsl x9, x12, #2
eor x10, x1, x0
lsr x10, x10, #59
and x10, x10, #0x4
mov x11, #9223372036854775804
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #2
ret
|
arm64 |
62 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return mulu<62>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #62
and x10, x12, #0xffffffff
bfi x10, x9, #32, #30
mov x9, #4611686018427387903
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
63 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return muls<63>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
extr x8, x8, x10, #63
lsl x9, x12, #1
eor x10, x1, x0
lsr x10, x10, #61
and x10, x10, #0x2
mov x11, #9223372036854775806
add x10, x10, x11
cmp x8, x9, asr #63
csel x8, x9, x10, eq
asr x0, x8, #1
ret
|
arm64 |
63 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return mulu<63>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
add x8, x8, x9, lsr #32
lsl x10, x9, #32
extr x8, x8, x10, #63
and x10, x12, #0xffffffff
bfi x10, x9, #32, #31
mov x9, #9223372036854775807
cmp x8, #0
csel x0, x10, x9, eq
ret
|
arm64 |
64 |
mul |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return muls<64>(a, b);
}
|
_f: ; @f
asr x8, x0, #32
and x9, x0, #0xffffffff
asr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, asr #32
add x8, x8, x9, asr #32
lsl x10, x9, #32
bfi x12, x9, #32, #32
eor x9, x1, x0
mov x11, #9223372036854775807
add x9, x11, x9, lsr #63
cmp x8, x10, asr #63
csel x0, x12, x9, eq
ret
|
arm64 |
64 |
mul |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return mulu<64>(a, b);
}
|
_f: ; @f
lsr x8, x0, #32
and x9, x0, #0xffffffff
lsr x10, x1, #32
and x11, x1, #0xffffffff
umull x12, w1, w0
mul x11, x11, x8
add x11, x11, x12, lsr #32
mul x9, x10, x9
add x9, x9, w11, uxtw
mul x8, x10, x8
add x8, x8, x11, lsr #32
bfi x12, x9, #32, #32
cmn x8, x9, lsr #32
csinv x0, x12, xzr, eq
ret
|
arm64 |
4 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<4>
f (sinteger_t<4> a,
sinteger_t<4> b) {
return divs<4>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #8
orr w8, w8, w9
tst w8, #0xf
cinc w8, w0, eq
sdiv w8, w8, w1
sxtb w0, w8
ret
|
arm64 |
4 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<4>
f (uinteger_t<4> a,
uinteger_t<4> b) {
return divu<4>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
5 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<5>
f (sinteger_t<5> a,
sinteger_t<5> b) {
return divs<5>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #16
orr w8, w8, w9
tst w8, #0x1f
cinc w8, w0, eq
sdiv w8, w8, w1
sxtb w0, w8
ret
|
arm64 |
5 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<5>
f (uinteger_t<5> a,
uinteger_t<5> b) {
return divu<5>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
6 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<6>
f (sinteger_t<6> a,
sinteger_t<6> b) {
return divs<6>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #32
orr w8, w8, w9
tst w8, #0x3f
cinc w8, w0, eq
sdiv w8, w8, w1
sxtb w0, w8
ret
|
arm64 |
6 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<6>
f (uinteger_t<6> a,
uinteger_t<6> b) {
return divu<6>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
7 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<7>
f (sinteger_t<7> a,
sinteger_t<7> b) {
return divs<7>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #64
orr w8, w8, w9
tst w8, #0x7f
cinc w8, w0, eq
sdiv w8, w8, w1
sxtb w0, w8
ret
|
arm64 |
7 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<7>
f (uinteger_t<7> a,
uinteger_t<7> b) {
return divu<7>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
8 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<8>
f (sinteger_t<8> a,
sinteger_t<8> b) {
return divs<8>(a, b);
}
|
_f: ; @f
add w8, w1, #1
eor w9, w0, #0x80
orr w8, w8, w9
tst w8, #0xff
cinc w8, w0, eq
sdiv w8, w8, w1
sxtb w0, w8
ret
|
arm64 |
8 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<8>
f (uinteger_t<8> a,
uinteger_t<8> b) {
return divu<8>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
9 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<9>
f (sinteger_t<9> a,
sinteger_t<9> b) {
return divs<9>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #256
orr w8, w8, w9
tst w8, #0x1ff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
9 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<9>
f (uinteger_t<9> a,
uinteger_t<9> b) {
return divu<9>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
10 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<10>
f (sinteger_t<10> a,
sinteger_t<10> b) {
return divs<10>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #512
orr w8, w8, w9
tst w8, #0x3ff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
10 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<10>
f (uinteger_t<10> a,
uinteger_t<10> b) {
return divu<10>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
11 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<11>
f (sinteger_t<11> a,
sinteger_t<11> b) {
return divs<11>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #1024
orr w8, w8, w9
tst w8, #0x7ff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
11 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<11>
f (uinteger_t<11> a,
uinteger_t<11> b) {
return divu<11>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
12 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<12>
f (sinteger_t<12> a,
sinteger_t<12> b) {
return divs<12>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #2048
orr w8, w8, w9
tst w8, #0xfff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
12 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<12>
f (uinteger_t<12> a,
uinteger_t<12> b) {
return divu<12>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
13 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<13>
f (sinteger_t<13> a,
sinteger_t<13> b) {
return divs<13>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #1, lsl #12 ; =4096
orr w8, w8, w9
tst w8, #0x1fff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
13 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<13>
f (uinteger_t<13> a,
uinteger_t<13> b) {
return divu<13>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
14 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<14>
f (sinteger_t<14> a,
sinteger_t<14> b) {
return divs<14>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #2, lsl #12 ; =8192
orr w8, w8, w9
tst w8, #0x3fff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
14 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<14>
f (uinteger_t<14> a,
uinteger_t<14> b) {
return divu<14>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
15 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<15>
f (sinteger_t<15> a,
sinteger_t<15> b) {
return divs<15>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #4, lsl #12 ; =16384
orr w8, w8, w9
tst w8, #0x7fff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
15 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<15>
f (uinteger_t<15> a,
uinteger_t<15> b) {
return divu<15>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
16 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<16>
f (sinteger_t<16> a,
sinteger_t<16> b) {
return divs<16>(a, b);
}
|
_f: ; @f
add w8, w1, #1
eor w9, w0, #0x8000
orr w8, w8, w9
tst w8, #0xffff
cinc w8, w0, eq
sdiv w8, w8, w1
sxth w0, w8
ret
|
arm64 |
16 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<16>
f (uinteger_t<16> a,
uinteger_t<16> b) {
return divu<16>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
17 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<17>
f (sinteger_t<17> a,
sinteger_t<17> b) {
return divs<17>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #16, lsl #12 ; =65536
orr w8, w8, w9
tst w8, #0x1ffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
17 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<17>
f (uinteger_t<17> a,
uinteger_t<17> b) {
return divu<17>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
18 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<18>
f (sinteger_t<18> a,
sinteger_t<18> b) {
return divs<18>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #32, lsl #12 ; =131072
orr w8, w8, w9
tst w8, #0x3ffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
18 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<18>
f (uinteger_t<18> a,
uinteger_t<18> b) {
return divu<18>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
19 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<19>
f (sinteger_t<19> a,
sinteger_t<19> b) {
return divs<19>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #64, lsl #12 ; =262144
orr w8, w8, w9
tst w8, #0x7ffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
19 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<19>
f (uinteger_t<19> a,
uinteger_t<19> b) {
return divu<19>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
20 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<20>
f (sinteger_t<20> a,
sinteger_t<20> b) {
return divs<20>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #128, lsl #12 ; =524288
orr w8, w8, w9
tst w8, #0xfffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
20 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<20>
f (uinteger_t<20> a,
uinteger_t<20> b) {
return divu<20>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
21 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<21>
f (sinteger_t<21> a,
sinteger_t<21> b) {
return divs<21>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #256, lsl #12 ; =1048576
orr w8, w8, w9
tst w8, #0x1fffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
21 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<21>
f (uinteger_t<21> a,
uinteger_t<21> b) {
return divu<21>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
22 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<22>
f (sinteger_t<22> a,
sinteger_t<22> b) {
return divs<22>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #512, lsl #12 ; =2097152
orr w8, w8, w9
tst w8, #0x3fffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
22 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<22>
f (uinteger_t<22> a,
uinteger_t<22> b) {
return divu<22>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
23 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<23>
f (sinteger_t<23> a,
sinteger_t<23> b) {
return divs<23>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #1024, lsl #12 ; =4194304
orr w8, w8, w9
tst w8, #0x7fffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
23 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<23>
f (uinteger_t<23> a,
uinteger_t<23> b) {
return divu<23>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
24 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<24>
f (sinteger_t<24> a,
sinteger_t<24> b) {
return divs<24>(a, b);
}
|
_f: ; @f
add w8, w1, #1
add w9, w0, #2048, lsl #12 ; =8388608
orr w8, w8, w9
tst w8, #0xffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
24 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<24>
f (uinteger_t<24> a,
uinteger_t<24> b) {
return divu<24>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
25 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<25>
f (sinteger_t<25> a,
sinteger_t<25> b) {
return divs<25>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #16777216
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x1ffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
25 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<25>
f (uinteger_t<25> a,
uinteger_t<25> b) {
return divu<25>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
26 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<26>
f (sinteger_t<26> a,
sinteger_t<26> b) {
return divs<26>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #33554432
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x3ffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
26 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<26>
f (uinteger_t<26> a,
uinteger_t<26> b) {
return divu<26>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
27 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<27>
f (sinteger_t<27> a,
sinteger_t<27> b) {
return divs<27>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #67108864
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x7ffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
27 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<27>
f (uinteger_t<27> a,
uinteger_t<27> b) {
return divu<27>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
28 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<28>
f (sinteger_t<28> a,
sinteger_t<28> b) {
return divs<28>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #134217728
add w9, w0, w9
orr w8, w8, w9
tst w8, #0xfffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
28 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<28>
f (uinteger_t<28> a,
uinteger_t<28> b) {
return divu<28>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
29 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<29>
f (sinteger_t<29> a,
sinteger_t<29> b) {
return divs<29>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #268435456
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x1fffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
29 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<29>
f (uinteger_t<29> a,
uinteger_t<29> b) {
return divu<29>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
30 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<30>
f (sinteger_t<30> a,
sinteger_t<30> b) {
return divs<30>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #536870912
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x3fffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
30 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<30>
f (uinteger_t<30> a,
uinteger_t<30> b) {
return divu<30>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
31 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<31>
f (sinteger_t<31> a,
sinteger_t<31> b) {
return divs<31>(a, b);
}
|
_f: ; @f
add w8, w1, #1
mov w9, #1073741824
add w9, w0, w9
orr w8, w8, w9
tst w8, #0x7fffffff
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
31 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<31>
f (uinteger_t<31> a,
uinteger_t<31> b) {
return divu<31>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
32 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<32>
f (sinteger_t<32> a,
sinteger_t<32> b) {
return divs<32>(a, b);
}
|
_f: ; @f
add w8, w1, #1
eor w9, w0, #0x80000000
orr w8, w8, w9
cmp w8, #0
cinc w8, w0, eq
sdiv w0, w8, w1
ret
|
arm64 |
32 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<32>
f (uinteger_t<32> a,
uinteger_t<32> b) {
return divu<32>(a, b);
}
|
_f: ; @f
udiv w0, w0, w1
ret
|
arm64 |
33 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<33>
f (sinteger_t<33> a,
sinteger_t<33> b) {
return divs<33>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #4294967296
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1ffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
33 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<33>
f (uinteger_t<33> a,
uinteger_t<33> b) {
return divu<33>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
34 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<34>
f (sinteger_t<34> a,
sinteger_t<34> b) {
return divs<34>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #8589934592
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3ffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
34 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<34>
f (uinteger_t<34> a,
uinteger_t<34> b) {
return divu<34>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
35 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<35>
f (sinteger_t<35> a,
sinteger_t<35> b) {
return divs<35>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #17179869184
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7ffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
35 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<35>
f (uinteger_t<35> a,
uinteger_t<35> b) {
return divu<35>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
36 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<36>
f (sinteger_t<36> a,
sinteger_t<36> b) {
return divs<36>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #34359738368
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xfffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
36 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<36>
f (uinteger_t<36> a,
uinteger_t<36> b) {
return divu<36>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
37 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<37>
f (sinteger_t<37> a,
sinteger_t<37> b) {
return divs<37>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #68719476736
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1fffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
37 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<37>
f (uinteger_t<37> a,
uinteger_t<37> b) {
return divu<37>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
38 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<38>
f (sinteger_t<38> a,
sinteger_t<38> b) {
return divs<38>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #137438953472
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3fffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
38 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<38>
f (uinteger_t<38> a,
uinteger_t<38> b) {
return divu<38>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
39 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<39>
f (sinteger_t<39> a,
sinteger_t<39> b) {
return divs<39>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #274877906944
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7fffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
39 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<39>
f (uinteger_t<39> a,
uinteger_t<39> b) {
return divu<39>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
40 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<40>
f (sinteger_t<40> a,
sinteger_t<40> b) {
return divs<40>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #549755813888
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
40 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<40>
f (uinteger_t<40> a,
uinteger_t<40> b) {
return divu<40>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
41 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<41>
f (sinteger_t<41> a,
sinteger_t<41> b) {
return divs<41>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #1099511627776
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1ffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
41 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<41>
f (uinteger_t<41> a,
uinteger_t<41> b) {
return divu<41>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
42 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<42>
f (sinteger_t<42> a,
sinteger_t<42> b) {
return divs<42>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #2199023255552
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3ffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
42 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<42>
f (uinteger_t<42> a,
uinteger_t<42> b) {
return divu<42>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
43 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<43>
f (sinteger_t<43> a,
sinteger_t<43> b) {
return divs<43>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #4398046511104
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7ffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
43 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<43>
f (uinteger_t<43> a,
uinteger_t<43> b) {
return divu<43>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
44 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<44>
f (sinteger_t<44> a,
sinteger_t<44> b) {
return divs<44>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #8796093022208
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xfffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
44 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<44>
f (uinteger_t<44> a,
uinteger_t<44> b) {
return divu<44>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
45 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<45>
f (sinteger_t<45> a,
sinteger_t<45> b) {
return divs<45>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #17592186044416
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1fffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
45 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<45>
f (uinteger_t<45> a,
uinteger_t<45> b) {
return divu<45>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
46 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<46>
f (sinteger_t<46> a,
sinteger_t<46> b) {
return divs<46>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #35184372088832
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3fffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
46 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<46>
f (uinteger_t<46> a,
uinteger_t<46> b) {
return divu<46>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
47 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<47>
f (sinteger_t<47> a,
sinteger_t<47> b) {
return divs<47>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #70368744177664
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7fffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
47 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<47>
f (uinteger_t<47> a,
uinteger_t<47> b) {
return divu<47>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
48 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<48>
f (sinteger_t<48> a,
sinteger_t<48> b) {
return divs<48>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #140737488355328
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
48 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<48>
f (uinteger_t<48> a,
uinteger_t<48> b) {
return divu<48>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
49 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<49>
f (sinteger_t<49> a,
sinteger_t<49> b) {
return divs<49>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #281474976710656
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1ffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
49 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<49>
f (uinteger_t<49> a,
uinteger_t<49> b) {
return divu<49>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
50 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<50>
f (sinteger_t<50> a,
sinteger_t<50> b) {
return divs<50>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #562949953421312
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3ffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
50 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<50>
f (uinteger_t<50> a,
uinteger_t<50> b) {
return divu<50>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
51 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<51>
f (sinteger_t<51> a,
sinteger_t<51> b) {
return divs<51>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #1125899906842624
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7ffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
51 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<51>
f (uinteger_t<51> a,
uinteger_t<51> b) {
return divu<51>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
52 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<52>
f (sinteger_t<52> a,
sinteger_t<52> b) {
return divs<52>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #2251799813685248
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xfffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
52 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<52>
f (uinteger_t<52> a,
uinteger_t<52> b) {
return divu<52>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
53 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<53>
f (sinteger_t<53> a,
sinteger_t<53> b) {
return divs<53>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #4503599627370496
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1fffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
53 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<53>
f (uinteger_t<53> a,
uinteger_t<53> b) {
return divu<53>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
54 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<54>
f (sinteger_t<54> a,
sinteger_t<54> b) {
return divs<54>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #9007199254740992
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3fffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
54 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<54>
f (uinteger_t<54> a,
uinteger_t<54> b) {
return divu<54>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
55 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<55>
f (sinteger_t<55> a,
sinteger_t<55> b) {
return divs<55>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #18014398509481984
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7fffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
55 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<55>
f (uinteger_t<55> a,
uinteger_t<55> b) {
return divu<55>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
56 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<56>
f (sinteger_t<56> a,
sinteger_t<56> b) {
return divs<56>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #36028797018963968
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
56 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<56>
f (uinteger_t<56> a,
uinteger_t<56> b) {
return divu<56>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
57 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<57>
f (sinteger_t<57> a,
sinteger_t<57> b) {
return divs<57>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #72057594037927936
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1ffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
57 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<57>
f (uinteger_t<57> a,
uinteger_t<57> b) {
return divu<57>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
58 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<58>
f (sinteger_t<58> a,
sinteger_t<58> b) {
return divs<58>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #144115188075855872
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3ffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
58 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<58>
f (uinteger_t<58> a,
uinteger_t<58> b) {
return divu<58>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
59 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<59>
f (sinteger_t<59> a,
sinteger_t<59> b) {
return divs<59>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #288230376151711744
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7ffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
59 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<59>
f (uinteger_t<59> a,
uinteger_t<59> b) {
return divu<59>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
60 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<60>
f (sinteger_t<60> a,
sinteger_t<60> b) {
return divs<60>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #576460752303423488
add x9, x0, x9
orr x8, x8, x9
tst x8, #0xfffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
60 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<60>
f (uinteger_t<60> a,
uinteger_t<60> b) {
return divu<60>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
61 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<61>
f (sinteger_t<61> a,
sinteger_t<61> b) {
return divs<61>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #1152921504606846976
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x1fffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
61 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<61>
f (uinteger_t<61> a,
uinteger_t<61> b) {
return divu<61>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
62 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<62>
f (sinteger_t<62> a,
sinteger_t<62> b) {
return divs<62>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #2305843009213693952
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x3fffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
62 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<62>
f (uinteger_t<62> a,
uinteger_t<62> b) {
return divu<62>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
63 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<63>
f (sinteger_t<63> a,
sinteger_t<63> b) {
return divs<63>(a, b);
}
|
_f: ; @f
add x8, x1, #1
mov x9, #4611686018427387904
add x9, x0, x9
orr x8, x8, x9
tst x8, #0x7fffffffffffffff
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
63 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<63>
f (uinteger_t<63> a,
uinteger_t<63> b) {
return divu<63>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|
arm64 |
64 |
div |
signed |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" sinteger_t<64>
f (sinteger_t<64> a,
sinteger_t<64> b) {
return divs<64>(a, b);
}
|
_f: ; @f
add x8, x1, #1
eor x9, x0, #0x8000000000000000
orr x8, x8, x9
cmp x8, #0
cinc x8, x0, eq
sdiv x0, x8, x1
ret
|
arm64 |
64 |
div |
unsigned |
#include "saturation/saturation.hpp"
using namespace saturation;
extern "C" uinteger_t<64>
f (uinteger_t<64> a,
uinteger_t<64> b) {
return divu<64>(a, b);
}
|
_f: ; @f
udiv x0, x0, x1
ret
|