Implement variable dereferencing.
This commit is contained in:
parent
6d4d6c56ea
commit
6ebe45f369
60
cc_core.c
60
cc_core.c
|
@ -388,7 +388,28 @@ void constant_load(struct token_list* a)
|
||||||
emit_out("\n");
|
emit_out("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void variable_load(struct token_list* a)
|
void emit_dereference(int load_byte) {
|
||||||
|
if(load_byte)
|
||||||
|
{
|
||||||
|
if((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) emit_out("LOAD8 R0 R0 0\n");
|
||||||
|
else if(X86 == Architecture) emit_out("LOAD_BYTE\n");
|
||||||
|
else if(AMD64 == Architecture) emit_out("LOAD_BYTE\n");
|
||||||
|
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD8 R0 MEMORY\n");
|
||||||
|
else if(AARCH64 == Architecture) emit_out("DEREF_X0_BYTE\n");
|
||||||
|
else if(RISCV64 == Architecture) emit_out("RD_A0 RS1_A0 LBU\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) emit_out("LOAD R0 R0 0\n");
|
||||||
|
else if(X86 == Architecture) emit_out("LOAD_INTEGER\n");
|
||||||
|
else if(AMD64 == Architecture) emit_out("LOAD_INTEGER\n");
|
||||||
|
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R0 MEMORY\n");
|
||||||
|
else if(AARCH64 == Architecture) emit_out("DEREF_X0\n");
|
||||||
|
else if(RISCV64 == Architecture) emit_out("RD_A0 RS1_A0 LD\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void variable_load(struct token_list* a, int num_dereference)
|
||||||
{
|
{
|
||||||
require(NULL != global_token, "incomplete variable load received\n");
|
require(NULL != global_token, "incomplete variable load received\n");
|
||||||
if((match("FUNCTION", a->type->name) || match("FUNCTION*", a->type->name)) && match("(", global_token->s))
|
if((match("FUNCTION", a->type->name) || match("FUNCTION*", a->type->name)) && match("(", global_token->s))
|
||||||
|
@ -412,14 +433,23 @@ void variable_load(struct token_list* a)
|
||||||
emit_out("\n");
|
emit_out("\n");
|
||||||
|
|
||||||
if(TRUE == Address_of) return;
|
if(TRUE == Address_of) return;
|
||||||
if(match("=", global_token->s)) return;
|
if(!match("=", global_token->s)) {
|
||||||
|
emit_dereference(FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
if((KNIGHT_POSIX == Architecture) || (KNIGHT_NATIVE == Architecture)) emit_out("LOAD R0 R0 0\n");
|
while (num_dereference > 0)
|
||||||
else if(X86 == Architecture) emit_out("LOAD_INTEGER\n");
|
{
|
||||||
else if(AMD64 == Architecture) emit_out("LOAD_INTEGER\n");
|
if(match("char*", current_target->name)) {
|
||||||
else if(ARMV7L == Architecture) emit_out("!0 R0 LOAD32 R0 MEMORY\n");
|
/* Load a single byte */
|
||||||
else if(AARCH64 == Architecture) emit_out("DEREF_X0\n");
|
emit_dereference(TRUE);
|
||||||
else if(RISCV64 == Architecture) emit_out("RD_A0 RS1_A0 LD\n");
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
emit_dereference(FALSE);
|
||||||
|
}
|
||||||
|
current_target = current_target->type;
|
||||||
|
num_dereference = num_dereference - 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void function_load(struct token_list* a)
|
void function_load(struct token_list* a)
|
||||||
|
@ -688,6 +718,11 @@ void primary_expr_number()
|
||||||
|
|
||||||
void primary_expr_variable()
|
void primary_expr_variable()
|
||||||
{
|
{
|
||||||
|
int num_dereference = 0;
|
||||||
|
while(global_token->s[0] == '*') {
|
||||||
|
global_token = global_token->next;
|
||||||
|
num_dereference = num_dereference + 1;
|
||||||
|
}
|
||||||
char* s = global_token->s;
|
char* s = global_token->s;
|
||||||
global_token = global_token->next;
|
global_token = global_token->next;
|
||||||
struct token_list* a = sym_lookup(s, global_constant_list);
|
struct token_list* a = sym_lookup(s, global_constant_list);
|
||||||
|
@ -697,21 +732,21 @@ void primary_expr_variable()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
a= sym_lookup(s, function->locals);
|
a = sym_lookup(s, function->locals);
|
||||||
if(NULL != a)
|
if(NULL != a)
|
||||||
{
|
{
|
||||||
variable_load(a);
|
variable_load(a, num_dereference);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
a = sym_lookup(s, function->arguments);
|
a = sym_lookup(s, function->arguments);
|
||||||
if(NULL != a)
|
if(NULL != a)
|
||||||
{
|
{
|
||||||
variable_load(a);
|
variable_load(a, num_dereference);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
a= sym_lookup(s, global_function_list);
|
a = sym_lookup(s, global_function_list);
|
||||||
if(NULL != a)
|
if(NULL != a)
|
||||||
{
|
{
|
||||||
function_load(a);
|
function_load(a);
|
||||||
|
@ -1310,6 +1345,7 @@ void primary_expr()
|
||||||
else if(global_token->s[0] == '\'') primary_expr_char();
|
else if(global_token->s[0] == '\'') primary_expr_char();
|
||||||
else if(global_token->s[0] == '"') primary_expr_string();
|
else if(global_token->s[0] == '"') primary_expr_string();
|
||||||
else if(in_set(global_token->s[0], "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")) primary_expr_variable();
|
else if(in_set(global_token->s[0], "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")) primary_expr_variable();
|
||||||
|
else if(global_token->s[0] == '*') primary_expr_variable();
|
||||||
else if(in_set(global_token->s[0], "0123456789")) primary_expr_number();
|
else if(in_set(global_token->s[0], "0123456789")) primary_expr_number();
|
||||||
else primary_expr_failure();
|
else primary_expr_failure();
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,6 @@ struct type* new_primitive(char* name0, char* name1, char* name2, int size, int
|
||||||
b->size = register_size;
|
b->size = register_size;
|
||||||
b->is_signed = sign;
|
b->is_signed = sign;
|
||||||
b->indirect = a;
|
b->indirect = a;
|
||||||
b->type = b;
|
|
||||||
a->type = b;
|
a->type = b;
|
||||||
|
|
||||||
struct type* r = calloc(1, sizeof(struct type));
|
struct type* r = calloc(1, sizeof(struct type));
|
||||||
|
@ -64,6 +63,7 @@ struct type* new_primitive(char* name0, char* name1, char* name2, int size, int
|
||||||
r->is_signed = sign;
|
r->is_signed = sign;
|
||||||
r->indirect = b;
|
r->indirect = b;
|
||||||
r->type = r;
|
r->type = r;
|
||||||
|
b->type = r;
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ aarch64-tests: \
|
||||||
test0024-aarch64-binary \
|
test0024-aarch64-binary \
|
||||||
test0025-aarch64-binary \
|
test0025-aarch64-binary \
|
||||||
test0026-aarch64-binary \
|
test0026-aarch64-binary \
|
||||||
|
test0027-aarch64-binary \
|
||||||
test0100-aarch64-binary \
|
test0100-aarch64-binary \
|
||||||
test0101-aarch64-binary \
|
test0101-aarch64-binary \
|
||||||
test0102-aarch64-binary \
|
test0102-aarch64-binary \
|
||||||
|
@ -88,6 +89,7 @@ amd64-tests: \
|
||||||
test0024-amd64-binary \
|
test0024-amd64-binary \
|
||||||
test0025-amd64-binary \
|
test0025-amd64-binary \
|
||||||
test0026-amd64-binary \
|
test0026-amd64-binary \
|
||||||
|
test0027-amd64-binary \
|
||||||
test0100-amd64-binary \
|
test0100-amd64-binary \
|
||||||
test0101-amd64-binary \
|
test0101-amd64-binary \
|
||||||
test0102-amd64-binary \
|
test0102-amd64-binary \
|
||||||
|
@ -179,6 +181,7 @@ armv7l-tests: \
|
||||||
test0024-armv7l-binary \
|
test0024-armv7l-binary \
|
||||||
test0025-armv7l-binary \
|
test0025-armv7l-binary \
|
||||||
test0026-armv7l-binary \
|
test0026-armv7l-binary \
|
||||||
|
test0027-armv7l-binary \
|
||||||
test0100-armv7l-binary \
|
test0100-armv7l-binary \
|
||||||
test0101-armv7l-binary \
|
test0101-armv7l-binary \
|
||||||
test0102-armv7l-binary \
|
test0102-armv7l-binary \
|
||||||
|
@ -216,6 +219,7 @@ x86-tests: \
|
||||||
test0024-x86-binary \
|
test0024-x86-binary \
|
||||||
test0025-x86-binary \
|
test0025-x86-binary \
|
||||||
test0026-x86-binary \
|
test0026-x86-binary \
|
||||||
|
test0027-x86-binary \
|
||||||
test0100-x86-binary \
|
test0100-x86-binary \
|
||||||
test0101-x86-binary \
|
test0101-x86-binary \
|
||||||
test0102-x86-binary \
|
test0102-x86-binary \
|
||||||
|
@ -255,6 +259,7 @@ riscv64-tests: \
|
||||||
test0024-riscv64-binary \
|
test0024-riscv64-binary \
|
||||||
test0025-riscv64-binary \
|
test0025-riscv64-binary \
|
||||||
test0026-riscv64-binary \
|
test0026-riscv64-binary \
|
||||||
|
test0027-riscv64-binary \
|
||||||
test0100-riscv64-binary \
|
test0100-riscv64-binary \
|
||||||
test0101-riscv64-binary \
|
test0101-riscv64-binary \
|
||||||
test0102-riscv64-binary \
|
test0102-riscv64-binary \
|
||||||
|
@ -345,6 +350,9 @@ test0025-riscv64-binary: M2-Planet | results
|
||||||
test0026-riscv64-binary: M2-Planet | results
|
test0026-riscv64-binary: M2-Planet | results
|
||||||
test/test0026/run_test.sh riscv64
|
test/test0026/run_test.sh riscv64
|
||||||
|
|
||||||
|
test0027-riscv64-binary: M2-Planet | results
|
||||||
|
test/test0027/run_test.sh riscv64
|
||||||
|
|
||||||
test0100-riscv64-binary: M2-Planet | results
|
test0100-riscv64-binary: M2-Planet | results
|
||||||
test/test0100/run_test.sh riscv64
|
test/test0100/run_test.sh riscv64
|
||||||
|
|
||||||
|
@ -450,6 +458,9 @@ test0025-aarch64-binary: M2-Planet | results
|
||||||
test0026-aarch64-binary: M2-Planet | results
|
test0026-aarch64-binary: M2-Planet | results
|
||||||
test/test0026/run_test.sh aarch64
|
test/test0026/run_test.sh aarch64
|
||||||
|
|
||||||
|
test0027-aarch64-binary: M2-Planet | results
|
||||||
|
test/test0027/run_test.sh aarch64
|
||||||
|
|
||||||
test0100-aarch64-binary: M2-Planet | results
|
test0100-aarch64-binary: M2-Planet | results
|
||||||
test/test0100/run_test.sh aarch64
|
test/test0100/run_test.sh aarch64
|
||||||
|
|
||||||
|
@ -555,6 +566,9 @@ test0025-amd64-binary: M2-Planet | results
|
||||||
test0026-amd64-binary: M2-Planet | results
|
test0026-amd64-binary: M2-Planet | results
|
||||||
test/test0026/run_test.sh amd64
|
test/test0026/run_test.sh amd64
|
||||||
|
|
||||||
|
test0027-amd64-binary: M2-Planet | results
|
||||||
|
test/test0027/run_test.sh amd64
|
||||||
|
|
||||||
test0100-amd64-binary: M2-Planet | results
|
test0100-amd64-binary: M2-Planet | results
|
||||||
test/test0100/run_test.sh amd64
|
test/test0100/run_test.sh amd64
|
||||||
|
|
||||||
|
@ -810,6 +824,9 @@ test0025-armv7l-binary: M2-Planet | results
|
||||||
test0026-armv7l-binary: M2-Planet | results
|
test0026-armv7l-binary: M2-Planet | results
|
||||||
test/test0026/run_test.sh armv7l
|
test/test0026/run_test.sh armv7l
|
||||||
|
|
||||||
|
test0027-armv7l-binary: M2-Planet | results
|
||||||
|
test/test0026/run_test.sh armv7l
|
||||||
|
|
||||||
test0100-armv7l-binary: M2-Planet | results
|
test0100-armv7l-binary: M2-Planet | results
|
||||||
test/test0100/run_test.sh armv7l
|
test/test0100/run_test.sh armv7l
|
||||||
|
|
||||||
|
@ -915,6 +932,9 @@ test0025-x86-binary: M2-Planet | results
|
||||||
test0026-x86-binary: M2-Planet | results
|
test0026-x86-binary: M2-Planet | results
|
||||||
test/test0026/run_test.sh x86
|
test/test0026/run_test.sh x86
|
||||||
|
|
||||||
|
test0027-x86-binary: M2-Planet | results
|
||||||
|
test/test0027/run_test.sh x86
|
||||||
|
|
||||||
test0100-x86-binary: M2-Planet | results
|
test0100-x86-binary: M2-Planet | results
|
||||||
test/test0100/run_test.sh x86
|
test/test0100/run_test.sh x86
|
||||||
|
|
||||||
|
|
|
@ -176,6 +176,10 @@ bf7204e213a7221aa783a68d841b5dfb6baa2bb0f5d5bf361e1edfe0c6c1b30b test/results/t
|
||||||
f4676ec3d8eade4c0f405a4b66d7069c78b881fd3f654e7e04f3fe56326542b5 test/results/test0026-armv7l-binary
|
f4676ec3d8eade4c0f405a4b66d7069c78b881fd3f654e7e04f3fe56326542b5 test/results/test0026-armv7l-binary
|
||||||
856fdc8a9045f71583337dfc4a0d2a5cd01a72061d292b6d75e6fa52e70c78df test/results/test0026-riscv64-binary
|
856fdc8a9045f71583337dfc4a0d2a5cd01a72061d292b6d75e6fa52e70c78df test/results/test0026-riscv64-binary
|
||||||
46381cee997ec150a6b3bb7b978908df8d30cf65cc98744451a00f6eb5a70aa6 test/results/test0026-x86-binary
|
46381cee997ec150a6b3bb7b978908df8d30cf65cc98744451a00f6eb5a70aa6 test/results/test0026-x86-binary
|
||||||
|
308ff16be0bbd485cb550ee2f7b49f0bc971bcf00cb043fa59f7053fe5ae7a16 test/results/test0027-aarch64-binary
|
||||||
|
1591d35cf06ee0b2a746f81445b871e19440908c1b49657c85934d7daf131488 test/results/test0027-amd64-binary
|
||||||
|
f871d50855f0b12aa4925b819e1a67140027737262686bca8d622b42cb22bc43 test/results/test0027-riscv64-binary
|
||||||
|
04e75e83bcea38ba913117c4a4fd1dac5264321aa34eb40a934d6596b6bf7978 test/results/test0027-x86-binary
|
||||||
29bc8c839549d674dd7717ee31aa7a974fb81163c7a75ec6357ab129f91ba48c test/results/test0100-aarch64-binary
|
29bc8c839549d674dd7717ee31aa7a974fb81163c7a75ec6357ab129f91ba48c test/results/test0100-aarch64-binary
|
||||||
1f51f1fdc444e40917a7fe59d70472b7bca9a623230093c39c55dd5b911e6ed6 test/results/test0100-amd64-binary
|
1f51f1fdc444e40917a7fe59d70472b7bca9a623230093c39c55dd5b911e6ed6 test/results/test0100-amd64-binary
|
||||||
bc2666096825062ad5bf840e94fe1fe26b37bef2d024d642cc237f98c65fcccc test/results/test0100-armv7l-binary
|
bc2666096825062ad5bf840e94fe1fe26b37bef2d024d642cc237f98c65fcccc test/results/test0100-armv7l-binary
|
||||||
|
@ -217,9 +221,9 @@ eb1f6aab09a1a4966f9f49a518d8aa03ca97aa7c46e443871d758a306671a85e test/results/t
|
||||||
a2cbfd5f76d3be8049c6737e3fa02f191caf29b6885db006fa23f86e6eacc186 test/results/test0106-knight-posix-binary
|
a2cbfd5f76d3be8049c6737e3fa02f191caf29b6885db006fa23f86e6eacc186 test/results/test0106-knight-posix-binary
|
||||||
d75e450e2fcdf19df63f9d6a3fe5e032933e57b33f6f06b39a8ed2f3dc759f17 test/results/test0106-riscv64-binary
|
d75e450e2fcdf19df63f9d6a3fe5e032933e57b33f6f06b39a8ed2f3dc759f17 test/results/test0106-riscv64-binary
|
||||||
473cc504d6cba9eaf648abcf15c83a317ff3f4a7f08f5e8936e3b35b2cc4fbc6 test/results/test0106-x86-binary
|
473cc504d6cba9eaf648abcf15c83a317ff3f4a7f08f5e8936e3b35b2cc4fbc6 test/results/test0106-x86-binary
|
||||||
3b5ddb395491c54ddb705f22467807d450d6560cecd5e5a1e58a80b0d98cebab test/results/test1000-aarch64-binary
|
b5187732c5dd3c90f07404636c8a929d8ef0f4b0e859228468825eff4dbfd66b test/results/test1000-aarch64-binary
|
||||||
d0db9d1f07d96948e6ffd5a27247ac7cc0d72f70cb4131cdcdf0c2c43a3c76f4 test/results/test1000-amd64-binary
|
25c32aaa0dcda0aba7f2b0c9a87a923a904161448b50ad5c8c8032fb27e29f51 test/results/test1000-amd64-binary
|
||||||
e17764ae5266384f263416333f2fb490d591ed92fa94a6e44dc22d07baaf3700 test/results/test1000-armv7l-binary
|
7676c997da4ca49b204bfb884eec89418e5bb9620c1e686e03ba5064e7406ca6 test/results/test1000-armv7l-binary
|
||||||
7916298f9d8e4e033a0be485c35d3f1194f85f0a8ce73ad3ae34296dcd69ebfa test/results/test1000-knight-posix-binary
|
f33537743e53ad62849af0675f5d3635ff0f3a1ba8169768289c125a014607c3 test/results/test1000-knight-posix-binary
|
||||||
d922ad66b74ab8a084d061d7b82877a099a808d51ccc3a9b15eddf23251ab6c1 test/results/test1000-riscv64-binary
|
120e74cb11b9df0fd0793cfae6475cfaf95f8af4242d3b4f8b33247249fff25d test/results/test1000-riscv64-binary
|
||||||
53eb324f93c79212bf9a01b2f01b033c3b1149a7ea4a2d12eb6fffe518e65a11 test/results/test1000-x86-binary
|
72ee105c0fd1356c029966a7c550c019a7ccc5763ec8c2f2e40affc345e1349b test/results/test1000-x86-binary
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* Copyright (C) 2021 Andrius Štikonas
|
||||||
|
* This file is part of M2-Planet.
|
||||||
|
*
|
||||||
|
* M2-Planet is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* M2-Planet is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with M2-Planet. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
char *d = "test\n";
|
||||||
|
if(*d != 't') {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
int i = 2;
|
||||||
|
int *j = &i;
|
||||||
|
*j = 0;
|
||||||
|
return *j;
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
#! /bin/sh
|
||||||
|
## Copyright (C) 2017 Jeremiah Orians
|
||||||
|
## Copyright (C) 2020-2021 deesix <deesix@tuta.io>
|
||||||
|
## This file is part of M2-Planet.
|
||||||
|
##
|
||||||
|
## M2-Planet is free software: you can redistribute it and/or modify
|
||||||
|
## it under the terms of the GNU General Public License as published by
|
||||||
|
## the Free Software Foundation, either version 3 of the License, or
|
||||||
|
## (at your option) any later version.
|
||||||
|
##
|
||||||
|
## M2-Planet is distributed in the hope that it will be useful,
|
||||||
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
## GNU General Public License for more details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License
|
||||||
|
## along with M2-Planet. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
ARCH="$1"
|
||||||
|
. test/env.inc.sh
|
||||||
|
TMPDIR="test/test0027/tmp-${ARCH}"
|
||||||
|
|
||||||
|
mkdir -p ${TMPDIR}
|
||||||
|
|
||||||
|
# Build the test
|
||||||
|
bin/M2-Planet \
|
||||||
|
--architecture ${ARCH} \
|
||||||
|
--debug \
|
||||||
|
-f test/test0027/dereference.c \
|
||||||
|
-o ${TMPDIR}/dereference.M1 \
|
||||||
|
|| exit 1
|
||||||
|
|
||||||
|
# Build debug footer
|
||||||
|
blood-elf \
|
||||||
|
${BLOOD_ELF_WORD_SIZE_FLAG} \
|
||||||
|
-f ${TMPDIR}/dereference.M1 \
|
||||||
|
${ENDIANNESS_FLAG} \
|
||||||
|
--entry _start \
|
||||||
|
-o ${TMPDIR}/dereference-footer.M1 \
|
||||||
|
|| exit 2
|
||||||
|
|
||||||
|
# Macro assemble with libc written in M1-Macro
|
||||||
|
M1 \
|
||||||
|
-f M2libc/${ARCH}/${ARCH}_defs.M1 \
|
||||||
|
-f M2libc/${ARCH}/libc-core.M1 \
|
||||||
|
-f ${TMPDIR}/dereference.M1 \
|
||||||
|
-f ${TMPDIR}/dereference-footer.M1 \
|
||||||
|
${ENDIANNESS_FLAG} \
|
||||||
|
--architecture ${ARCH} \
|
||||||
|
-o ${TMPDIR}/dereference.hex2 \
|
||||||
|
|| exit 2
|
||||||
|
|
||||||
|
# Resolve all linkages
|
||||||
|
hex2 \
|
||||||
|
-f M2libc/${ARCH}/ELF-${ARCH}-debug.hex2 \
|
||||||
|
-f ${TMPDIR}/dereference.hex2 \
|
||||||
|
${ENDIANNESS_FLAG} \
|
||||||
|
--architecture ${ARCH} \
|
||||||
|
--base-address ${BASE_ADDRESS} \
|
||||||
|
-o test/results/test0027-${ARCH}-binary \
|
||||||
|
|| exit 3
|
||||||
|
|
||||||
|
# Ensure binary works if host machine supports test
|
||||||
|
if [ "$(get_machine ${GET_MACHINE_FLAGS})" = "${ARCH}" ]
|
||||||
|
then
|
||||||
|
. ./sha256.sh
|
||||||
|
# Verify that the resulting file works
|
||||||
|
./test/results/test0027-${ARCH}-binary || exit 4
|
||||||
|
fi
|
||||||
|
exit 0
|
|
@ -1 +1 @@
|
||||||
0e01009082d89c270ce3adb147c2c0e248cb963724203188ebcc89ab0042355a test/test1000/proof
|
a7014fa831a6f837d25bace5fdce16ff16cb155eb6676ad1f4bdc239d4ba361d test/test1000/proof
|
||||||
|
|
Loading…
Reference in New Issue