summaryrefslogtreecommitdiffstats
path: root/src/code-generation.c
Commit message (Collapse)AuthorAgeFilesLines
* Complete global array referencekugwa2016-01-181-2/+52
|
* Change mul 4 to lsl 2kugwa2016-01-181-11/+4
|
* Fix calc_array_offset()kugwa2016-01-181-14/+18
| | | | Don't use type->array_size[0]
* Callers have to pass extend_name[]HW5kugwa2016-01-031-4/+6
|
* sxt -> sxtwkugwa2016-01-031-17/+23
|
* Add a function to get the name of 64 bit registerskugwa2016-01-031-2/+14
|
* Add missing ccmmc_register_lock() in store_variable()kugwa2016-01-031-0/+2
|
* Complete array reference for storing local variableskugwa2016-01-031-18/+41
|
* Complete array reference for loading local variableskugwa2016-01-031-21/+110
|
* Use adrp and add to address global variablesTing-Wei Lan2016-01-031-4/+6
| | | | This allows using large global arrays.
* Fix linking error caused by missing .align directiveTing-Wei Lan2016-01-031-0/+1
| | | | relocation truncated to fit: R_AARCH64_LD_PREL_LO19 against `.rodata'
* Add missing colons after label namesTing-Wei Lan2016-01-031-5/+5
|
* Don't add a newline when writing a stringTing-Wei Lan2016-01-031-1/+1
|
* fmov -> mov, fmov cannot be used to move integer registersTing-Wei Lan2016-01-031-1/+1
|
* Fix syntax error when accessing global variablesTing-Wei Lan2016-01-031-2/+4
|
* Drop trailing whitespacesTing-Wei Lan2016-01-031-2/+2
|
* Apply register managementkugwa2016-01-031-127/+184
|
* Rewrite names for read, fread, and the overloaded write functionTing-Wei Lan2016-01-031-1/+34
|
* Temporarily workaround the wrong return labelTing-Wei Lan2016-01-031-0/+10
|
* Rewrite the name of main function to work with TA's broken toolchainTing-Wei Lan2016-01-031-6/+12
|
* Add a function to handle function calls to reduce duplicate codeTing-Wei Lan2016-01-031-6/+9
|
* Complete code-gen of if-else statementkugwa2016-01-031-3/+56
|
* Workaround large immediate by loading constant offsets from memoryTing-Wei Lan2016-01-021-4/+12
|
* Free registers after generating condition code in while statementkugwa2016-01-021-0/+6
|
* Generate code for return statementsTing-Wei Lan2016-01-021-16/+38
|
* Floating-point return value is in s0Ting-Wei Lan2016-01-021-2/+9
|
* Complete code-gen of while statementkugwa2016-01-021-2/+34
|
* Remove the assert() in the function call case of generating exprkugwa2016-01-021-1/+1
|
* Handle function calls in exprkugwa2016-01-021-1/+4
|
* Generate code for function callskugwa2016-01-021-0/+3
|
* fneg instruction should use floating-point registersTing-Wei Lan2016-01-021-1/+1
|
* div -> sdiv, there is no instruction called divTing-Wei Lan2016-01-021-1/+1
|
* Generate code to initialize variables with constantsTing-Wei Lan2016-01-021-35/+44
| | | | | This implementation only works with single constant. Using expressions as initializers can corrupt values stored on the stack.
* No code has to be generated for typedefTing-Wei Lan2016-01-021-1/+2
|
* Generate code for expressions and assignmentsTing-Wei Lan2016-01-021-2/+385
|
* Add function prologue and epilogueTing-Wei Lan2016-01-021-2/+8
|
* Use x30 as the frame pointerTing-Wei Lan2016-01-021-0/+1
|
* Add a simple function to check whether an immediate is too largeTing-Wei Lan2016-01-021-8/+12
|
* Add .size and .type to all global symbols except for uninitialized variablesTing-Wei Lan2016-01-021-6/+20
|
* Can allocate many tmpskugwa2016-01-021-5/+5
|
* Immediate is only safe to when the number is <= 4096Ting-Wei Lan2015-12-311-2/+2
|
* Process local variables declared in else blocksTing-Wei Lan2015-12-311-0/+4
|
* Properly deallocate the register poolTing-Wei Lan2015-12-311-0/+2
|
* Export functions and global variables as global symbolsTing-Wei Lan2015-12-311-4/+9
|
* Use ldr to prevent immediate from becoming too largeTing-Wei Lan2015-12-311-3/+28
|
* Initialize the register poolkugwa2015-12-311-0/+1
| | | | | additional changes: TODO: ccmmc_register_fini()
* Add code for register managementkugwa2015-12-311-0/+1
|
* Statements should not change the fp offsetTing-Wei Lan2015-12-311-13/+11
|
* Generate fp offsets for local variablesTing-Wei Lan2015-12-311-1/+99
|
* Generate code for global variable declarationsTing-Wei Lan2015-12-311-6/+45
|
* Reset the state of the symbol table before generating codeTing-Wei Lan2015-12-311-0/+2
|
* Add the missing vim modeline in code-generation.cTing-Wei Lan2015-12-311-0/+2
|
* Complete the NORMAL_ID case in generate_global_variable()kugwa2015-12-301-1/+19
|
* Add 3 static code-generation functionskugwa2015-12-301-0/+28
|
* Drop any_error from state and add asm_output to stateTing-Wei Lan2015-12-301-1/+1
|
* Add the code-generation phasekugwa2015-12-301-0/+13