mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-14 22:38:46 +00:00
Update skeleton
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
int nonce = 0; // For random input
|
||||
int nonce = 1; // For random input
|
||||
|
||||
int main() {
|
||||
int i;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int nonce = 0; // For random input
|
||||
int nonce = 1; // For random input
|
||||
|
||||
int fibonacci(int n) {
|
||||
if (n < 2) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int nonce = 0; // For random input
|
||||
int nonce = 1; // For random input
|
||||
int g = 10;
|
||||
|
||||
int foo(int, int k);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int nonce = 0; // For random input
|
||||
int nonce = 1; // For random input
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
int nonce = 0; // For random input
|
||||
int nonce = 1; // For random input
|
||||
|
||||
int foo() {
|
||||
int sum = 0;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @fibonacci (i32) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var i32 @g = 10
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo (i32, i32) {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @fibonacci (i32) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var i32 @g = 10
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo (i32, i32) {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @fibonacci (i32) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var i32 @g = 10
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo (i32, i32) {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @fibonacci (i32) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var i32 @g = 10
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo (i32, i32) {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @fibonacci (i32) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
var i32 @g = 10
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo (i32, i32) {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var i32 @nonce = 0
|
||||
var i32 @nonce = 1
|
||||
|
||||
fun i32 @foo () {
|
||||
init:
|
||||
|
||||
@@ -523,6 +523,8 @@ pub enum UType {
|
||||
/// https://riscv.org/specifications/isa-spec-pdf/ (139p)
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum Pseudo {
|
||||
/// la rd, symbol
|
||||
La { rd: Register, symbol: Label },
|
||||
/// li rd, immediate
|
||||
Li {
|
||||
rd: Register,
|
||||
|
||||
@@ -384,6 +384,7 @@ impl WriteString for UType {
|
||||
impl WriteString for Pseudo {
|
||||
fn write_string(&self) -> String {
|
||||
match self {
|
||||
Self::La { rd, symbol } => format!("la\t{},{}", rd.write_string(), symbol.0),
|
||||
Self::Li { rd, imm } => format!("li\t{},{}", rd.write_string(), *imm as i64),
|
||||
Self::Mv { rd, rs } => format!("mv\t{},{}", rd.write_string(), rs.write_string()),
|
||||
Self::Fmv { data_size, rd, rs } => format!(
|
||||
|
||||
@@ -18,7 +18,7 @@ fn modify_c(path: &Path, rand_num: i32) -> String {
|
||||
.expect("`src` must be converted to string");
|
||||
drop(src);
|
||||
|
||||
let from = format!("int {} = 0", NONCE_NAME);
|
||||
let from = format!("int {} = 1", NONCE_NAME);
|
||||
let to = format!("int {} = {}", NONCE_NAME, rand_num);
|
||||
data.replace(&from, &to)
|
||||
}
|
||||
@@ -107,7 +107,6 @@ pub fn test_irgen(path: &Path) {
|
||||
let rand_num = rand::thread_rng().gen();
|
||||
let new_c = modify_c(path, rand_num);
|
||||
modify_ir(&mut ir, rand_num);
|
||||
println!("{}", new_c);
|
||||
|
||||
// compile recolved c example
|
||||
let temp_dir = tempdir().expect("temp dir creation failed");
|
||||
|
||||
Reference in New Issue
Block a user