Update skeleton

This commit is contained in:
Chunmyong Park
2020-07-02 14:28:58 +00:00
parent 5395c1e9ba
commit e4eec1e81d
33 changed files with 34 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
int nonce = 0; // For random input
int nonce = 1; // For random input
int main() {
int i;

View File

@@ -1,4 +1,4 @@
int nonce = 0; // For random input
int nonce = 1; // For random input
int fibonacci(int n) {
if (n < 2) {

View File

@@ -1,4 +1,4 @@
int nonce = 0; // For random input
int nonce = 1; // For random input
int g = 10;
int foo(int, int k);

View File

@@ -1,4 +1,4 @@
int nonce = 0; // For random input
int nonce = 1; // For random input
int main()
{

View File

@@ -1,4 +1,4 @@
int nonce = 0; // For random input
int nonce = 1; // For random input
int foo() {
int sum = 0;

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @fibonacci (i32) {
init:

View File

@@ -1,5 +1,5 @@
var i32 @g = 10
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo (i32, i32) {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @fibonacci (i32) {
init:

View File

@@ -1,5 +1,5 @@
var i32 @g = 10
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo (i32, i32) {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @fibonacci (i32) {
init:

View File

@@ -1,5 +1,5 @@
var i32 @g = 10
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo (i32, i32) {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @fibonacci (i32) {
init:

View File

@@ -1,5 +1,5 @@
var i32 @g = 10
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo (i32, i32) {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @fibonacci (i32) {
init:

View File

@@ -1,5 +1,5 @@
var i32 @g = 10
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo (i32, i32) {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @main () {
init:

View File

@@ -1,4 +1,4 @@
var i32 @nonce = 0
var i32 @nonce = 1
fun i32 @foo () {
init:

View File

@@ -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,

View File

@@ -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!(

View File

@@ -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");