These comments are based on n4663 (2017-03-25).
Coroutines add a small number of new expressions to the language:
- co-await expression:
co_await
cast-expression
Good summary: http://cpp.mimuw.edu.pl/files/await-yield-c++-coroutines.pdf
"ClangFormat2": { | |
"format_on_save": true, | |
}, |
// This file is part of the smolcc project | |
// SPDX-License-Identifier: MIT | |
#pragma once | |
#include <memory> | |
#include <type_traits> | |
namespace detail { |
#include <cstdio> | |
class A { | |
public: | |
A() = default; | |
static void OverridableInit() { | |
std::printf("I am in A\n"); | |
} |
case Type::LowShelf: | |
if(gain >= 0) { | |
n = 1 / (1 + k / q + k * k); | |
a0 = (1 + sqrt(v) / q * k + v * k * k) * n; | |
a1 = 2 * (v * k * k - 1) * n; | |
a2 = (1 - sqrt(v) / q * k + v * k * k) * n; | |
b1 = 2 * (k * k - 1) * n; | |
b2 = (1 - k / q + k * k) * n; | |
} else { | |
n = 1 / (1 + sqrt(v) / q * k + v * k * k); |
import math | |
import numpy | |
import matplotlib.pyplot as plt | |
def IdealH(f): | |
T = 1. / 441000. # we use the tenfold sampling frequency | |
OmegaU = 1. / 15e-6 | |
OmegaL = 15. / 50. * OmegaU | |
# Calculate filter coefficients | |
V0 = OmegaL / OmegaU |
import math | |
import numpy | |
import matplotlib.pyplot as plt | |
def IdealH(f): | |
T = 1. / 441000. # we use the tenfold sampling frequency | |
OmegaU = 1. / 15e-6 | |
OmegaL = 15. / 50. * OmegaU | |
# Calculate filter coefficients |
void ADR(Imm<2> immlo, Imm<19> immhi, Reg Rd); | |
void ADRP(Imm<2> immlo, Imm<19> immhi, Reg Rd); | |
void ADD_addsub_imm(bool sf, Imm<2> shift, Imm<12> imm12, Reg Rn, Reg Rd); | |
void ADDS_addsub_imm(bool sf, Imm<2> shift, Imm<12> imm12, Reg Rn, Reg Rd); | |
void SUB_addsub_imm(bool sf, Imm<2> shift, Imm<12> imm12, Reg Rn, Reg Rd); | |
void SUBS_addsub_imm(bool sf, Imm<2> shift, Imm<12> imm12, Reg Rn, Reg Rd); | |
void AND_log_imm(bool sf, bool N, Imm<6> immr, Imm<6> imms, Reg Rn, Reg Rd); | |
void ORR_log_imm(bool sf, bool N, Imm<6> immr, Imm<6> imms, Reg Rn, Reg Rd); | |
void EOR_log_imm(bool sf, bool N, Imm<6> immr, Imm<6> imms, Reg Rn, Reg Rd); | |
void ANDS_log_imm(bool sf, bool N, Imm<6> immr, Imm<6> imms, Reg Rn, Reg Rd); |
ld1 {v4.s}[1], [x7], #4 | |
fadd v1.2s, v1.2s, v3.2s | |
sshll v2.4s, v2.4h, #0 | |
sshll v3.4s, v3.4h, #0 | |
fmul v3.2s, v4.2s, v3.s[0] | |
fcvtzs w12, s0, #0xf | |
fsqrt s0, s0 | |
frinta s0, s0 | |
fmax d1, d1, d2 | |
fmin d8, d0, d2 |
These comments are based on n4663 (2017-03-25).
Coroutines add a small number of new expressions to the language:
co_await
cast-expressionGood summary: http://cpp.mimuw.edu.pl/files/await-yield-c++-coroutines.pdf
std::uint32_t duplicate(std::uint32_t o) { | |
return ((o & 0x80808080) >> 7) * 0xFF; | |
} | |
# compiler suggestion: | |
duplicate(unsigned int): | |
shr edi, 7 | |
and edi, 16843009 | |
mov eax, edi | |
shl eax, 8 |