rename _alloca to alloca_ for mingw

pull/2/head
MITSUNARI Shigeo 6 years ago
parent 574a0cce8d
commit 89673daa36
  1. 21
      src/gen.cpp
  2. 4
      src/llvm_gen.hpp

@ -57,7 +57,7 @@ struct Code : public mcl::Generator {
return; return;
} }
const size_t n = r.bit / unit; const size_t n = r.bit / unit;
for (size_t i = 0; i < n; i++) { for (uint32_t i = 0; i < n; i++) {
store(trunc(r, unit), getelementptr(p, i)); store(trunc(r, unit), getelementptr(p, i));
if (i < n - 1) { if (i < n - 1) {
r = lshr(r, unit); r = lshr(r, unit);
@ -73,7 +73,7 @@ struct Code : public mcl::Generator {
p = getelementptr(p, offset); p = getelementptr(p, offset);
} }
Operand v = load(p); Operand v = load(p);
for (size_t i = 1; i < n; i++) { for (uint32_t i = 1; i < n; i++) {
v = zext(v, v.bit + unit); v = zext(v, v.bit + unit);
Operand t = load(getelementptr(p, i)); Operand t = load(getelementptr(p, i));
t = zext(t, v.bit); t = zext(t, v.bit);
@ -336,7 +336,7 @@ struct Code : public mcl::Generator {
mcl_fp_sqr_NIST_P192 = Function("mcl_fp_sqr_NIST_P192L" + suf, Void, py, px); mcl_fp_sqr_NIST_P192 = Function("mcl_fp_sqr_NIST_P192L" + suf, Void, py, px);
verifyAndSetPrivate(mcl_fp_sqr_NIST_P192); verifyAndSetPrivate(mcl_fp_sqr_NIST_P192);
beginFunc(mcl_fp_sqr_NIST_P192); beginFunc(mcl_fp_sqr_NIST_P192);
Operand buf = _alloca(unit, 192 * 2 / unit); Operand buf = alloca_(unit, 192 * 2 / unit);
// QQQ define later // QQQ define later
Function mcl_fpDbl_sqrPre("mcl_fpDbl_sqrPre" + cybozu::itoa(192 / unit) + "L" + suf, Void, buf, px); Function mcl_fpDbl_sqrPre("mcl_fpDbl_sqrPre" + cybozu::itoa(192 / unit) + "L" + suf, Void, buf, px);
call(mcl_fpDbl_sqrPre, buf, px); call(mcl_fpDbl_sqrPre, buf, px);
@ -353,7 +353,7 @@ struct Code : public mcl::Generator {
Function f("mcl_fp_mulNIST_P192L" + suf, Void, pz, px, py); Function f("mcl_fp_mulNIST_P192L" + suf, Void, pz, px, py);
verifyAndSetPrivate(f); verifyAndSetPrivate(f);
beginFunc(f); beginFunc(f);
Operand buf = _alloca(unit, 192 * 2 / unit); Operand buf = alloca_(unit, 192 * 2 / unit);
// QQQ define later // QQQ define later
Function mcl_fpDbl_mulPre("mcl_fpDbl_mulPre" + cybozu::itoa(192 / unit) + "L" + suf, Void, buf, px, py); Function mcl_fpDbl_mulPre("mcl_fpDbl_mulPre" + cybozu::itoa(192 / unit) + "L" + suf, Void, buf, px, py);
call(mcl_fpDbl_mulPre, buf, px, py); call(mcl_fpDbl_mulPre, buf, px, py);
@ -629,8 +629,8 @@ struct Code : public mcl::Generator {
Operand x = px[0]; Operand x = px[0];
for (size_t i = 1; i < n; i++) { for (size_t i = 1; i < n; i++) {
Operand y = px[i]; Operand y = px[i];
size_t shift = x.bit; uint32_t shift = x.bit;
size_t size = x.bit + y.bit; uint32_t size = x.bit + y.bit;
x = zext(x, size); x = zext(x, size);
y = zext(y, size); y = zext(y, size);
y = shl(y, shift); y = shl(y, shift);
@ -713,7 +713,7 @@ struct Code : public mcl::Generator {
Operand d = zext(loadN(py, H), half + unit); Operand d = zext(loadN(py, H), half + unit);
Operand t1 = add(a, b); Operand t1 = add(a, b);
Operand t2 = add(c, d); Operand t2 = add(c, d);
Operand buf = _alloca(unit, N); Operand buf = alloca_(unit, N);
Operand t1L = trunc(t1, half); Operand t1L = trunc(t1, half);
Operand t2L = trunc(t2, half); Operand t2L = trunc(t2, half);
Operand c1 = trunc(lshr(t1, half), 1); Operand c1 = trunc(lshr(t1, half), 1);
@ -721,8 +721,8 @@ struct Code : public mcl::Generator {
Operand c0 = _and(c1, c2); Operand c0 = _and(c1, c2);
c1 = select(c1, t2L, makeImm(half, 0)); c1 = select(c1, t2L, makeImm(half, 0));
c2 = select(c2, t1L, makeImm(half, 0)); c2 = select(c2, t1L, makeImm(half, 0));
Operand buf1 = _alloca(unit, half / unit); Operand buf1 = alloca_(unit, half / unit);
Operand buf2 = _alloca(unit, half / unit); Operand buf2 = alloca_(unit, half / unit);
storeN(t1L, buf1); storeN(t1L, buf1);
storeN(t2L, buf2); storeN(t2L, buf2);
call(mcl_fpDbl_mulPreM[N / 2], buf, buf1, buf2); call(mcl_fpDbl_mulPreM[N / 2], buf, buf1, buf2);
@ -878,7 +878,6 @@ struct Code : public mcl::Generator {
Operand p = loadN(pp, N); Operand p = loadN(pp, N);
Operand xy = loadN(pxy, N * 2); Operand xy = loadN(pxy, N * 2);
Operand t = zext(xy, b2 + unit); Operand t = zext(xy, b2 + unit);
Operand z;
for (uint32_t i = 0; i < N; i++) { for (uint32_t i = 0; i < N; i++) {
Operand z = trunc(t, unit); Operand z = trunc(t, unit);
Operand q = mul(z, rp); Operand q = mul(z, rp);
@ -891,7 +890,7 @@ struct Code : public mcl::Generator {
p = zext(p, bu); p = zext(p, bu);
Operand vc = sub(t, p); Operand vc = sub(t, p);
Operand c = trunc(lshr(vc, bit), 1); Operand c = trunc(lshr(vc, bit), 1);
z = select(c, t, vc); Operand z = select(c, t, vc);
z = trunc(z, bit); z = trunc(z, bit);
storeN(z, pz); storeN(z, pz);
ret(Void); ret(Void);

@ -146,7 +146,7 @@ struct Generator {
Eval load(const Operand& p); Eval load(const Operand& p);
void store(const Operand& r, const Operand& p); void store(const Operand& r, const Operand& p);
Eval select(const Operand& c, const Operand& r1, const Operand& r2); Eval select(const Operand& c, const Operand& r1, const Operand& r2);
Eval _alloca(uint32_t bit, uint32_t n); Eval alloca_(uint32_t bit, uint32_t n);
// QQQ : type of type must be Type // QQQ : type of type must be Type
Eval bitcast(const Operand& r, const Operand& type); Eval bitcast(const Operand& r, const Operand& type);
Eval icmp(CondType type, const Operand& r1, const Operand& r2); Eval icmp(CondType type, const Operand& r1, const Operand& r2);
@ -524,7 +524,7 @@ inline Generator::Eval Generator::select(const Generator::Operand& c, const Gene
return e; return e;
} }
inline Generator::Eval Generator::_alloca(uint32_t bit, uint32_t n) inline Generator::Eval Generator::alloca_(uint32_t bit, uint32_t n)
{ {
Eval e; Eval e;
e.op = Operand(IntPtr, bit); e.op = Operand(IntPtr, bit);

Loading…
Cancel
Save