Changeset cd02108
- Timestamp:
- Aug 12, 2020, 1:39:41 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 419c434
- Parents:
- 5bcdc8c (diff), dab09ad (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified benchmark/io/http/options.cfa ¶
r5bcdc8c rcd02108 10 10 11 11 #include <kernel.hfa> 12 13 #include "parseargs.hfa" 14 12 #include <parseargs.hfa> 15 13 16 14 Options options @= { -
TabularUnified libcfa/prelude/bootloader.cf ¶
r5bcdc8c rcd02108 1 1 extern "C" { static inline int invoke_main(int argc, char* argv[], char* envp[]); } 2 int cfa_args_argc; 3 char ** cfa_args_argv; 4 char ** cfa_args_envp; 2 5 3 6 int main(int argc, char* argv[], char* envp[]) { 7 cfa_args_argc = argc; 8 cfa_args_argv = argv; 9 cfa_args_envp = envp; 4 10 return invoke_main(argc, argv, envp); 5 11 } -
TabularUnified libcfa/src/concurrency/invoke.c ¶
r5bcdc8c rcd02108 146 146 147 147 #elif defined( __ARM_ARCH ) 148 #error ARM needs to be upgrade to use to parameters like X86/X64 (A.K.A. : I broke this and do not know how to fix it) 148 #error ARM needs to be upgrade to use two parameters like X86/X64 (A.K.A. : I broke this and do not know how to fix it) 149 // More details about the error: 150 // To avoid the thunk problem, I changed the invoke routine to pass the main explicitly 151 // instead of relying on an assertion. This effectively hoists any required thunk one level 152 // which was enough to get to global scope in most cases. 153 // This means that __cfactx_invoke_... now takes two parameters and the FakeStack needs 154 // to be adjusted as a consequence of that. 155 // I don't know how to do that for ARM, hence the #error 156 149 157 struct FakeStack { 150 158 float fpRegs[16]; // floating point registers -
TabularUnified libcfa/src/concurrency/kernel.cfa ¶
r5bcdc8c rcd02108 532 532 unsigned total = this.total; 533 533 processor * proc = &this.list`first; 534 // Thread fence is unnecessary, but gcc-8 and older incorrectly reorder code without it 535 __atomic_thread_fence(__ATOMIC_SEQ_CST); 534 536 if(l != __atomic_load_n(&this.lock, __ATOMIC_SEQ_CST)) { Pause(); continue; } 535 537 return [idle, total, proc]; -
TabularUnified libcfa/src/parseargs.cfa ¶
r5bcdc8c rcd02108 25 25 #include "limits.hfa" 26 26 27 extern int cfa_args_argc; 28 extern char ** cfa_args_argv; 29 extern char ** cfa_args_envp; 30 27 31 void printopt(FILE * out, int width, int max, char sn, const char * ln, const char * help) { 28 32 int hwidth = max - (11 + width); … … 35 39 fprintf(out, "%*s%.*s\n", width + 11, "", hwidth, help); 36 40 } 41 } 42 43 void parse_args( cfa_option options[], size_t opt_count, const char * usage, char ** & left ) { 44 parse_args(cfa_args_argc, cfa_args_argv, options, opt_count, usage, left ); 37 45 } 38 46 … … 182 190 } 183 191 184 bool parse(const char * arg, size_t& value) {192 bool parse(const char * arg, unsigned long & value) { 185 193 char * end; 186 194 unsigned long long int r = strtoull(arg, &end, 10); 187 195 if(*end != '\0') return false; 188 if(r > (size_t)MAX) return false; 189 190 value = r; 191 return true; 196 if(r > (unsigned long)MAX) return false; 197 198 value = r; 199 return true; 200 } 201 202 bool parse(const char * arg, unsigned long long & value) { 203 char * end; 204 unsigned long long int r = strtoull(arg, &end, 10); 205 if(*end != '\0') return false; 206 if(r > (unsigned long long)MAX) return false; 207 208 value = r; 209 return true; 192 210 } 193 211 -
TabularUnified libcfa/src/parseargs.hfa ¶
r5bcdc8c rcd02108 31 31 } 32 32 33 void parse_args( cfa_option options[], size_t opt_count, const char * usage, char ** & left ); 33 34 void parse_args( int argc, char * argv[], cfa_option options[], size_t opt_count, const char * usage, char ** & left ); 34 35 … … 40 41 bool parse(const char *, int & ); 41 42 bool parse(const char *, unsigned & ); 42 bool parse(const char *, size_t & ); 43 bool parse(const char *, unsigned long & ); 44 bool parse(const char *, unsigned long long & ); 43 45 bool parse(const char *, double & ); -
TabularUnified tests/.expect/declarationSpecifier.x64.txt ¶
r5bcdc8c rcd02108 1129 1129 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); } 1130 1130 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 1131 signed int _X13cfa_args_argci_1; 1132 char **_X13cfa_args_argvPPc_1; 1133 char **_X13cfa_args_envpPPc_1; 1131 1134 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){ 1132 1135 __attribute__ ((unused)) signed int _X12_retval_maini_1; 1133 1136 { 1137 ((void)(_X13cfa_args_argci_1=_X4argci_1)); 1138 } 1139 1140 { 1141 ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1)); 1142 } 1143 1144 { 1145 ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1)); 1146 } 1147 1148 { 1134 1149 signed int _tmp_cp_ret4; 1135 1150 ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */); -
TabularUnified tests/.expect/declarationSpecifier.x86.txt ¶
r5bcdc8c rcd02108 1129 1129 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); } 1130 1130 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 1131 signed int _X13cfa_args_argci_1; 1132 char **_X13cfa_args_argvPPc_1; 1133 char **_X13cfa_args_envpPPc_1; 1131 1134 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){ 1132 1135 __attribute__ ((unused)) signed int _X12_retval_maini_1; 1133 1136 { 1137 ((void)(_X13cfa_args_argci_1=_X4argci_1)); 1138 } 1139 1140 { 1141 ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1)); 1142 } 1143 1144 { 1145 ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1)); 1146 } 1147 1148 { 1134 1149 signed int _tmp_cp_ret4; 1135 1150 ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */); -
TabularUnified tests/.expect/gccExtensions.x64.txt ¶
r5bcdc8c rcd02108 321 321 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); } 322 322 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 323 signed int _X13cfa_args_argci_1; 324 char **_X13cfa_args_argvPPc_1; 325 char **_X13cfa_args_envpPPc_1; 323 326 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){ 324 327 __attribute__ ((unused)) signed int _X12_retval_maini_1; 325 328 { 329 ((void)(_X13cfa_args_argci_1=_X4argci_1)); 330 } 331 332 { 333 ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1)); 334 } 335 336 { 337 ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1)); 338 } 339 340 { 326 341 signed int _tmp_cp_ret4; 327 342 ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */); -
TabularUnified tests/.expect/gccExtensions.x86.txt ¶
r5bcdc8c rcd02108 299 299 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return _X4mainFi_iPPKc__1((signed int )argc, (const char **)argv); } 300 300 static inline signed int invoke_main(signed int argc, char **argv, char **envp); 301 signed int _X13cfa_args_argci_1; 302 char **_X13cfa_args_argvPPc_1; 303 char **_X13cfa_args_envpPPc_1; 301 304 signed int main(signed int _X4argci_1, char **_X4argvPPc_1, char **_X4envpPPc_1){ 302 305 __attribute__ ((unused)) signed int _X12_retval_maini_1; 303 306 { 307 ((void)(_X13cfa_args_argci_1=_X4argci_1)); 308 } 309 310 { 311 ((void)(_X13cfa_args_argvPPc_1=_X4argvPPc_1)); 312 } 313 314 { 315 ((void)(_X13cfa_args_envpPPc_1=_X4envpPPc_1)); 316 } 317 318 { 304 319 signed int _tmp_cp_ret4; 305 320 ((void)(_X12_retval_maini_1=(((void)(_tmp_cp_ret4=invoke_main(_X4argci_1, _X4argvPPc_1, _X4envpPPc_1))) , _tmp_cp_ret4)) /* ?{} */); -
TabularUnified tests/pybin/tools.py ¶
r5bcdc8c rcd02108 246 246 # transform path to canonical form 247 247 def canonical_path(path): 248 abspath = os.path.abspath( __main__.__file__)248 abspath = os.path.abspath(os.path.realpath(__main__.__file__)) 249 249 dname = os.path.dirname(abspath) 250 250 return os.path.join(dname, os.path.normpath(path) )
Note: See TracChangeset
for help on using the changeset viewer.