fixing nasty bug
This commit is contained in:
parent
f386c332e5
commit
f5ef62c6bb
|
@ -331,10 +331,11 @@ function cacheInputs(target) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updaetTab() {
|
/** @param {string} [path] */
|
||||||
|
function updaetTab(path) {
|
||||||
for (const elem of document.querySelectorAll("button[hx-push-url]")) {
|
for (const elem of document.querySelectorAll("button[hx-push-url]")) {
|
||||||
if (elem instanceof HTMLButtonElement)
|
if (elem instanceof HTMLButtonElement)
|
||||||
elem.disabled = elem.getAttribute("hx-push-url") === window.location.pathname;
|
elem.disabled = elem.getAttribute("hx-push-url") === (path ?? window.location.pathname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,17 +369,11 @@ if (window.location.hostname === 'localhost') {
|
||||||
document.body.addEventListener('htmx:afterSwap', (ev) => {
|
document.body.addEventListener('htmx:afterSwap', (ev) => {
|
||||||
if (!(ev.target instanceof HTMLElement)) never();
|
if (!(ev.target instanceof HTMLElement)) never();
|
||||||
wireUp(ev.target);
|
wireUp(ev.target);
|
||||||
if (ev.target.tagName == "MAIN") updaetTab();
|
if (ev.target.tagName == "MAIN" || ev.target.tagName == "BODY")
|
||||||
|
updaetTab(ev['detail'].pathInfo.finalRequestPath);
|
||||||
|
console.log(ev);
|
||||||
});
|
});
|
||||||
|
|
||||||
//document.body.addEventListener('htmx:beforeSend', (ev) => {
|
|
||||||
// const target = ev.target;
|
|
||||||
// if (target instanceof HTMLButtonElement && target.hasAttribute("hx-push-url")) {
|
|
||||||
//
|
|
||||||
// document.getElementById("extra-style").textContent = `[hx-push-url="${target.getAttribute("hx-push-url")}"]{background: var(--primary)}`
|
|
||||||
// }
|
|
||||||
//});
|
|
||||||
|
|
||||||
getFmtInstance().then(inst => {
|
getFmtInstance().then(inst => {
|
||||||
document.body.addEventListener('htmx:configRequest', (ev) => {
|
document.body.addEventListener('htmx:configRequest', (ev) => {
|
||||||
const details = ev['detail'];
|
const details = ev['detail'];
|
||||||
|
|
|
@ -175,8 +175,8 @@ impl Page for Feed {
|
||||||
let mut last_timestamp = None;
|
let mut last_timestamp = None;
|
||||||
for post in cursor {
|
for post in cursor {
|
||||||
write!(buf, "{}", post).unwrap();
|
write!(buf, "{}", post).unwrap();
|
||||||
last_timestamp = Some(post.timestamp);
|
|
||||||
if buf.len() - base_len > MAX_FEED_SIZE {
|
if buf.len() - base_len > MAX_FEED_SIZE {
|
||||||
|
last_timestamp = Some(post.timestamp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -561,9 +561,6 @@ fn base(body: impl FnOnce(&mut String), path: &str, session: Option<&Session>) -
|
||||||
<meta name="charset" content="UTF-8">
|
<meta name="charset" content="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link rel="stylesheet" href="/index.css">
|
<link rel="stylesheet" href="/index.css">
|
||||||
//<style id="extra-style">
|
|
||||||
// "[hx-push-url='" !path "']{background:var(--primary)}"
|
|
||||||
//</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav>
|
<nav>
|
||||||
|
|
|
@ -204,7 +204,15 @@ Rect := struct {
|
||||||
b: Point,
|
b: Point,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Color := packed struct {b: u8, g: u8, r: u8, a: u8}
|
||||||
|
|
||||||
main := fn(): int {
|
main := fn(): int {
|
||||||
|
i := Color.(0, 0, 0, 0)
|
||||||
|
i += .(1, 1, 1, 1)
|
||||||
|
if i.r + i.g + i.b + i.a != 4 {
|
||||||
|
return 1008
|
||||||
|
}
|
||||||
|
|
||||||
a := Point.(1, 2)
|
a := Point.(1, 2)
|
||||||
b := Point.(3, 4)
|
b := Point.(3, 4)
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ use {
|
||||||
},
|
},
|
||||||
alloc::{boxed::Box, string::String, vec::Vec},
|
alloc::{boxed::Box, string::String, vec::Vec},
|
||||||
core::fmt::Display,
|
core::fmt::Display,
|
||||||
|
std::assert_matches::debug_assert_matches,
|
||||||
};
|
};
|
||||||
|
|
||||||
type Offset = u32;
|
type Offset = u32;
|
||||||
|
@ -409,7 +410,7 @@ impl Loc {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_reg(&self) -> bool {
|
fn is_reg(&self) -> bool {
|
||||||
matches!(self, Self::Rt { derefed: false, reg: _, stack: None, offset: 0 })
|
matches!(self, Self::Rt { derefed: false, reg: _, stack, offset } if ({ debug_assert_eq!(*offset, 0); debug_assert_matches!(stack, None); true }))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2126,7 +2127,7 @@ impl Codegen {
|
||||||
let size = self.tys.size_of(ty);
|
let size = self.tys.size_of(ty);
|
||||||
match size {
|
match size {
|
||||||
0 => Loc::default(),
|
0 => Loc::default(),
|
||||||
1..=8 => Loc::reg(self.loc_to_reg(loc, size)),
|
1..=8 if !loc.is_stack() => Loc::reg(self.loc_to_reg(loc, size)),
|
||||||
_ if loc.is_ref() => {
|
_ if loc.is_ref() => {
|
||||||
let new_loc = Loc::stack(self.ci.stack.allocate(size));
|
let new_loc = Loc::stack(self.ci.stack.allocate(size));
|
||||||
self.store_sized(loc, &new_loc, size);
|
self.store_sized(loc, &new_loc, size);
|
||||||
|
@ -2367,7 +2368,17 @@ impl Codegen {
|
||||||
let value = ensure_loaded(value, derefed, size) << (8 * (off % 8));
|
let value = ensure_loaded(value, derefed, size) << (8 * (off % 8));
|
||||||
self.ci.emit(ori(freg, freg, value));
|
self.ci.emit(ori(freg, freg, value));
|
||||||
}
|
}
|
||||||
(lpat!(true, src, soff, ref ssta), lpat!(true, dst, doff, ref dsta)) => {
|
(lpat!(true, src, soff, ref ssta), lpat!(true, dst, doff, ref dsta)) => 'a: {
|
||||||
|
if size <= 8 {
|
||||||
|
let tmp = self.ci.regs.allocate();
|
||||||
|
let off = self.opt_stack_reloc(ssta.as_ref(), soff, 3);
|
||||||
|
self.ci.emit(ld(tmp.get(), src.get(), off, size as _));
|
||||||
|
let off = self.opt_stack_reloc(dsta.as_ref(), soff, 3);
|
||||||
|
self.ci.emit(st(tmp.get(), dst.get(), off, size as _));
|
||||||
|
self.ci.regs.free(tmp);
|
||||||
|
break 'a;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: some oportuinies to ellit more optimal code
|
// TODO: some oportuinies to ellit more optimal code
|
||||||
let src_off = if src.is_ref() { self.ci.regs.allocate() } else { src.as_ref() };
|
let src_off = if src.is_ref() { self.ci.regs.allocate() } else { src.as_ref() };
|
||||||
let dst_off = if dst.is_ref() { self.ci.regs.allocate() } else { dst.as_ref() };
|
let dst_off = if dst.is_ref() { self.ci.regs.allocate() } else { dst.as_ref() };
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
main:
|
main:
|
||||||
ADDI64 r254, r254, -80d
|
ADDI64 r254, r254, -76d
|
||||||
ST r31, r254, 32a, 48h
|
ST r31, r254, 28a, 48h
|
||||||
LI64 r32, 511d
|
LI64 r32, 511d
|
||||||
LI64 r33, 0d
|
LI64 r33, 0d
|
||||||
ST r33, r254, 0a, 1h
|
ST r33, r254, 0a, 1h
|
||||||
|
@ -13,29 +13,26 @@ main:
|
||||||
SRUI16 r33, r33, 8b
|
SRUI16 r33, r33, 8b
|
||||||
ANDI r33, r33, 255d
|
ANDI r33, r33, 255d
|
||||||
ST r33, r254, 3a, 1h
|
ST r33, r254, 3a, 1h
|
||||||
CP r33, r0
|
ADDI64 r33, r254, 0d
|
||||||
LD r33, r254, 0a, 4h
|
|
||||||
ST r33, r254, 4a, 4h
|
|
||||||
ADDI64 r33, r254, 4d
|
|
||||||
LI64 r34, 1d
|
LI64 r34, 1d
|
||||||
ST r34, r254, 8a, 8h
|
ST r34, r254, 4a, 8h
|
||||||
LI64 r34, 2d
|
LI64 r34, 2d
|
||||||
ST r34, r254, 16a, 8h
|
ST r34, r254, 12a, 8h
|
||||||
LI64 r34, 4d
|
LI64 r34, 4d
|
||||||
ST r34, r254, 24a, 8h
|
ST r34, r254, 20a, 8h
|
||||||
ADDI64 r34, r254, 8d
|
ADDI64 r34, r254, 4d
|
||||||
CP r2, r34
|
CP r2, r34
|
||||||
JAL r31, r0, :pass
|
JAL r31, r0, :pass
|
||||||
CP r34, r1
|
CP r34, r1
|
||||||
ADDI64 r35, r254, 4d
|
ADDI64 r35, r254, 0d
|
||||||
LI64 r36, 3d
|
LI64 r36, 3d
|
||||||
ADD64 r35, r35, r36
|
ADD64 r35, r35, r36
|
||||||
CP r36, r0
|
CP r36, r0
|
||||||
LD r36, r35, 4a, 1h
|
LD r36, r35, 0a, 1h
|
||||||
SXT8 r36, r36
|
SXT8 r36, r36
|
||||||
ADD64 r1, r34, r36
|
ADD64 r1, r34, r36
|
||||||
LD r31, r254, 32a, 48h
|
LD r31, r254, 28a, 48h
|
||||||
ADDI64 r254, r254, 80d
|
ADDI64 r254, r254, 76d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
pass:
|
pass:
|
||||||
ADDI64 r254, r254, -48d
|
ADDI64 r254, r254, -48d
|
||||||
|
@ -65,6 +62,6 @@ pass:
|
||||||
LD r31, r254, 0a, 48h
|
LD r31, r254, 0a, 48h
|
||||||
ADDI64 r254, r254, 48d
|
ADDI64 r254, r254, 48d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
code size: 586
|
code size: 557
|
||||||
ret: 7
|
ret: 8
|
||||||
status: Ok(())
|
status: Ok(())
|
||||||
|
|
|
@ -75,8 +75,8 @@ new:
|
||||||
ADDI64 r254, r254, 24d
|
ADDI64 r254, r254, 24d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
push:
|
push:
|
||||||
ADDI64 r254, r254, -72d
|
ADDI64 r254, r254, -80d
|
||||||
ST r31, r254, 0a, 72h
|
ST r31, r254, 0a, 80h
|
||||||
CP r32, r2
|
CP r32, r2
|
||||||
CP r33, r3
|
CP r33, r3
|
||||||
LD r34, r32, 8a, 8h
|
LD r34, r32, 8a, 8h
|
||||||
|
@ -111,7 +111,8 @@ push:
|
||||||
JMP :6
|
JMP :6
|
||||||
5: CP r38, r36
|
5: CP r38, r36
|
||||||
CP r39, r35
|
CP r39, r35
|
||||||
BMC r39, r38, 8h
|
LD r40, r39, 0a, 8h
|
||||||
|
ST r40, r38, 0a, 8h
|
||||||
ADDI64 r35, r35, 8d
|
ADDI64 r35, r35, 8d
|
||||||
ADDI64 r36, r36, 8d
|
ADDI64 r36, r36, 8d
|
||||||
JMP :7
|
JMP :7
|
||||||
|
@ -135,9 +136,9 @@ push:
|
||||||
ADDI64 r38, r38, 1d
|
ADDI64 r38, r38, 1d
|
||||||
ST r38, r32, 8a, 8h
|
ST r38, r32, 8a, 8h
|
||||||
CP r1, r39
|
CP r1, r39
|
||||||
4: LD r31, r254, 0a, 72h
|
4: LD r31, r254, 0a, 80h
|
||||||
ADDI64 r254, r254, 72d
|
ADDI64 r254, r254, 80d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
code size: 1204
|
code size: 1225
|
||||||
ret: 69
|
ret: 69
|
||||||
status: Ok(())
|
status: Ok(())
|
||||||
|
|
|
@ -1,75 +1,130 @@
|
||||||
main:
|
main:
|
||||||
ADDI64 r254, r254, -152d
|
ADDI64 r254, r254, -160d
|
||||||
ST r31, r254, 128a, 24h
|
ST r31, r254, 136a, 24h
|
||||||
|
LI64 r32, 0d
|
||||||
|
ST r32, r254, 0a, 1h
|
||||||
|
LI64 r32, 0d
|
||||||
|
ST r32, r254, 1a, 1h
|
||||||
|
LI64 r32, 0d
|
||||||
|
ST r32, r254, 2a, 1h
|
||||||
|
LI64 r32, 0d
|
||||||
|
ST r32, r254, 3a, 1h
|
||||||
LI64 r32, 1d
|
LI64 r32, 1d
|
||||||
ST r32, r254, 0a, 8h
|
ST r32, r254, 4a, 1h
|
||||||
LI64 r32, 2d
|
LI64 r32, 1d
|
||||||
ST r32, r254, 8a, 8h
|
ST r32, r254, 5a, 1h
|
||||||
LI64 r32, 3d
|
LI64 r32, 1d
|
||||||
ST r32, r254, 16a, 8h
|
ST r32, r254, 6a, 1h
|
||||||
LI64 r32, 4d
|
LI64 r32, 1d
|
||||||
ST r32, r254, 24a, 8h
|
ST r32, r254, 7a, 1h
|
||||||
LD r32, r254, 0a, 8h
|
CP r32, r0
|
||||||
LD r33, r254, 16a, 8h
|
LD r32, r254, 0a, 1h
|
||||||
ADD64 r32, r32, r33
|
CP r33, r0
|
||||||
ST r32, r254, 32a, 8h
|
LD r33, r254, 4a, 1h
|
||||||
LD r32, r254, 8a, 8h
|
ADD8 r32, r32, r33
|
||||||
LD r33, r254, 24a, 8h
|
ST r32, r254, 0a, 1h
|
||||||
ADD64 r32, r32, r33
|
CP r32, r0
|
||||||
ST r32, r254, 40a, 8h
|
LD r32, r254, 1a, 1h
|
||||||
LD r32, r254, 16a, 8h
|
CP r33, r0
|
||||||
LD r33, r254, 0a, 8h
|
LD r33, r254, 5a, 1h
|
||||||
SUB64 r32, r32, r33
|
ADD8 r32, r32, r33
|
||||||
ST r32, r254, 48a, 8h
|
ST r32, r254, 1a, 1h
|
||||||
LD r32, r254, 24a, 8h
|
CP r32, r0
|
||||||
|
LD r32, r254, 2a, 1h
|
||||||
|
CP r33, r0
|
||||||
|
LD r33, r254, 6a, 1h
|
||||||
|
ADD8 r32, r32, r33
|
||||||
|
ST r32, r254, 2a, 1h
|
||||||
|
CP r32, r0
|
||||||
|
LD r32, r254, 3a, 1h
|
||||||
|
CP r33, r0
|
||||||
|
LD r33, r254, 7a, 1h
|
||||||
|
ADD8 r32, r32, r33
|
||||||
|
ST r32, r254, 3a, 1h
|
||||||
|
CP r32, r0
|
||||||
|
LD r32, r254, 2a, 1h
|
||||||
|
CP r33, r0
|
||||||
|
LD r33, r254, 1a, 1h
|
||||||
|
ADD8 r32, r32, r33
|
||||||
|
CP r33, r0
|
||||||
|
LD r33, r254, 0a, 1h
|
||||||
|
ADD8 r32, r32, r33
|
||||||
|
CP r33, r0
|
||||||
|
LD r33, r254, 3a, 1h
|
||||||
|
ADD8 r32, r32, r33
|
||||||
|
LI64 r33, 4d
|
||||||
|
JEQ r32, r33, :0
|
||||||
|
LI64 r1, 1008d
|
||||||
|
JMP :1
|
||||||
|
0: LI64 r33, 1d
|
||||||
|
ST r33, r254, 8a, 8h
|
||||||
|
LI64 r33, 2d
|
||||||
|
ST r33, r254, 16a, 8h
|
||||||
|
LI64 r33, 3d
|
||||||
|
ST r33, r254, 24a, 8h
|
||||||
|
LI64 r33, 4d
|
||||||
|
ST r33, r254, 32a, 8h
|
||||||
LD r33, r254, 8a, 8h
|
LD r33, r254, 8a, 8h
|
||||||
SUB64 r32, r32, r33
|
LD r32, r254, 24a, 8h
|
||||||
ST r32, r254, 56a, 8h
|
ADD64 r33, r33, r32
|
||||||
LI64 r32, 0d
|
ST r33, r254, 40a, 8h
|
||||||
ST r32, r254, 64a, 8h
|
|
||||||
LI64 r32, 0d
|
|
||||||
ST r32, r254, 72a, 8h
|
|
||||||
LD r32, r254, 64a, 8h
|
|
||||||
LD r33, r254, 16a, 8h
|
LD r33, r254, 16a, 8h
|
||||||
SUB64 r32, r32, r33
|
|
||||||
ST r32, r254, 80a, 8h
|
|
||||||
LD r32, r254, 72a, 8h
|
|
||||||
LD r33, r254, 24a, 8h
|
|
||||||
SUB64 r32, r32, r33
|
|
||||||
ST r32, r254, 88a, 8h
|
|
||||||
ADDI64 r32, r254, 0d
|
|
||||||
ADDI64 r33, r254, 96d
|
|
||||||
BMC r32, r33, 16h
|
|
||||||
LD r33, r254, 80a, 8h
|
|
||||||
LD r32, r254, 32a, 8h
|
LD r32, r254, 32a, 8h
|
||||||
ADD64 r33, r33, r32
|
ADD64 r33, r33, r32
|
||||||
|
ST r33, r254, 48a, 8h
|
||||||
|
LD r33, r254, 24a, 8h
|
||||||
|
LD r32, r254, 8a, 8h
|
||||||
|
SUB64 r33, r33, r32
|
||||||
|
ST r33, r254, 56a, 8h
|
||||||
|
LD r33, r254, 32a, 8h
|
||||||
|
LD r32, r254, 16a, 8h
|
||||||
|
SUB64 r33, r33, r32
|
||||||
|
ST r33, r254, 64a, 8h
|
||||||
|
LI64 r33, 0d
|
||||||
|
ST r33, r254, 72a, 8h
|
||||||
|
LI64 r33, 0d
|
||||||
ST r33, r254, 80a, 8h
|
ST r33, r254, 80a, 8h
|
||||||
LD r33, r254, 88a, 8h
|
LD r33, r254, 72a, 8h
|
||||||
LD r32, r254, 40a, 8h
|
LD r32, r254, 24a, 8h
|
||||||
ADD64 r33, r33, r32
|
SUB64 r33, r33, r32
|
||||||
ST r33, r254, 88a, 8h
|
ST r33, r254, 88a, 8h
|
||||||
LD r33, r254, 96a, 8h
|
|
||||||
LD r32, r254, 48a, 8h
|
|
||||||
ADD64 r33, r33, r32
|
|
||||||
ST r33, r254, 96a, 8h
|
|
||||||
LD r33, r254, 104a, 8h
|
|
||||||
LD r32, r254, 56a, 8h
|
|
||||||
ADD64 r33, r33, r32
|
|
||||||
ST r33, r254, 104a, 8h
|
|
||||||
LD r33, r254, 80a, 8h
|
LD r33, r254, 80a, 8h
|
||||||
|
LD r32, r254, 32a, 8h
|
||||||
|
SUB64 r33, r33, r32
|
||||||
|
ST r33, r254, 96a, 8h
|
||||||
|
ADDI64 r33, r254, 8d
|
||||||
|
ADDI64 r32, r254, 104d
|
||||||
|
BMC r33, r32, 16h
|
||||||
|
LD r32, r254, 88a, 8h
|
||||||
|
LD r33, r254, 40a, 8h
|
||||||
|
ADD64 r32, r32, r33
|
||||||
|
ST r32, r254, 88a, 8h
|
||||||
LD r32, r254, 96a, 8h
|
LD r32, r254, 96a, 8h
|
||||||
ADD64 r33, r33, r32
|
LD r33, r254, 48a, 8h
|
||||||
ST r33, r254, 112a, 8h
|
ADD64 r32, r32, r33
|
||||||
LD r33, r254, 88a, 8h
|
ST r32, r254, 96a, 8h
|
||||||
LD r32, r254, 104a, 8h
|
LD r32, r254, 104a, 8h
|
||||||
ADD64 r33, r33, r32
|
LD r33, r254, 56a, 8h
|
||||||
ST r33, r254, 120a, 8h
|
ADD64 r32, r32, r33
|
||||||
|
ST r32, r254, 104a, 8h
|
||||||
|
LD r32, r254, 112a, 8h
|
||||||
|
LD r33, r254, 64a, 8h
|
||||||
|
ADD64 r32, r32, r33
|
||||||
|
ST r32, r254, 112a, 8h
|
||||||
|
LD r32, r254, 88a, 8h
|
||||||
|
LD r33, r254, 104a, 8h
|
||||||
|
ADD64 r32, r32, r33
|
||||||
|
ST r32, r254, 120a, 8h
|
||||||
|
LD r32, r254, 96a, 8h
|
||||||
LD r33, r254, 112a, 8h
|
LD r33, r254, 112a, 8h
|
||||||
|
ADD64 r32, r32, r33
|
||||||
|
ST r32, r254, 128a, 8h
|
||||||
LD r32, r254, 120a, 8h
|
LD r32, r254, 120a, 8h
|
||||||
ADD64 r1, r33, r32
|
LD r33, r254, 128a, 8h
|
||||||
LD r31, r254, 128a, 24h
|
ADD64 r1, r32, r33
|
||||||
ADDI64 r254, r254, 152d
|
1: LD r31, r254, 136a, 24h
|
||||||
|
ADDI64 r254, r254, 160d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
code size: 778
|
code size: 1264
|
||||||
ret: 10
|
ret: 10
|
||||||
status: Ok(())
|
status: Ok(())
|
||||||
|
|
|
@ -40,26 +40,25 @@ fib_iter:
|
||||||
ADDI64 r254, r254, 40d
|
ADDI64 r254, r254, 40d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
main:
|
main:
|
||||||
ADDI64 r254, r254, -42d
|
ADDI64 r254, r254, -34d
|
||||||
ST r31, r254, 2a, 40h
|
ST r31, r254, 2a, 32h
|
||||||
LI64 r32, 10d
|
LI64 r32, 10d
|
||||||
ST r32, r254, 0a, 1h
|
ST r32, r254, 0a, 1h
|
||||||
LI64 r32, 10d
|
LI64 r32, 10d
|
||||||
ST r32, r254, 1a, 1h
|
ST r32, r254, 1a, 1h
|
||||||
CP r32, r0
|
CP r32, r0
|
||||||
LD r32, r254, 0a, 1h
|
LD r32, r254, 1a, 1h
|
||||||
CP r33, r0
|
CP r2, r0
|
||||||
LD r33, r254, 1a, 1h
|
LD r2, r254, 0a, 1h
|
||||||
CP r2, r32
|
|
||||||
JAL r31, r0, :fib
|
JAL r31, r0, :fib
|
||||||
CP r34, r1
|
CP r33, r1
|
||||||
CP r2, r33
|
CP r2, r32
|
||||||
JAL r31, r0, :fib_iter
|
JAL r31, r0, :fib_iter
|
||||||
CP r35, r1
|
CP r34, r1
|
||||||
SUB64 r1, r34, r35
|
SUB64 r1, r33, r34
|
||||||
LD r31, r254, 2a, 40h
|
LD r31, r254, 2a, 32h
|
||||||
ADDI64 r254, r254, 42d
|
ADDI64 r254, r254, 34d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
code size: 452
|
code size: 449
|
||||||
ret: 0
|
ret: 0
|
||||||
status: Ok(())
|
status: Ok(())
|
||||||
|
|
|
@ -23,7 +23,8 @@ main:
|
||||||
ST r34, r254, 7a, 1h
|
ST r34, r254, 7a, 1h
|
||||||
LD r34, r254, 0a, 8h
|
LD r34, r254, 0a, 8h
|
||||||
ST r34, r254, 8a, 8h
|
ST r34, r254, 8a, 8h
|
||||||
ST r34, r254, 16a, 8h
|
LD r34, r254, 0a, 8h
|
||||||
|
ST r34, r254, 8a, 8h
|
||||||
LD r1, r254, 8a, 16h
|
LD r1, r254, 8a, 16h
|
||||||
LD r31, r254, 24a, 32h
|
LD r31, r254, 24a, 32h
|
||||||
ADDI64 r254, r254, 56d
|
ADDI64 r254, r254, 56d
|
||||||
|
@ -40,6 +41,6 @@ small_struct:
|
||||||
LD r31, r254, 4a, 16h
|
LD r31, r254, 4a, 16h
|
||||||
ADDI64 r254, r254, 20d
|
ADDI64 r254, r254, 20d
|
||||||
JALA r0, r31, 0a
|
JALA r0, r31, 0a
|
||||||
code size: 440
|
code size: 453
|
||||||
ret: 0
|
ret: 0
|
||||||
status: Ok(())
|
status: Ok(())
|
||||||
|
|
Loading…
Reference in a new issue