1
0
Fork 0
Commit Graph

70 Commits

Author SHA1 Message Date
Ekaitz Zarraga 0703df1a6a Fix Extended Asm ignored constraints
This commit fixes the case where the register of for the Extended Asm
input or output is known. Before this commit, the following case:

  register long __a0 asm ("a0") = one;
  asm volatile (
       "ecall\n\t"
       : "+r" (__a0) // NOTE the +r here
  );

Didn't treat `a0` as an input+output register (+ contraint) as the code
skipped the constraint processing when the register was already chosen
(instead of allocated later).

This issue comes from f081acbfba, that was
taken as a reference in every other Extended Assembler implementation.
2024-04-16 02:47:56 +02:00
grischka 56481d554f bored...
/* Use "-g" as alias for "-g1". Use "-g0" to disable debug */

So not using -g is now the alias for -g0 ?!?

This reverts commit 8759b2581d.
This reverts commit 3ce7bc6efc.
This reverts commit 5fb582ab7f.
This reverts commit aea68dbb40.
This reverts commit fa9c31c3db.
This reverts commit b3bebdb20a.
This reverts commit ecf8e5a00e.
This reverts commit fe6b5c08dc.
This reverts commit e2e5377e7b.
This reverts commit 1cd7998905.
2022-05-09 22:19:15 +02:00
Detlef Riekenberg aea68dbb40 arm-asm, arm64-link: Silence warnings for unused functions
The code needs to be fixed: use the functions or remove them.

arm-asm.c:
asm_parse_vfp_regvar()

arm64-link:
gotplt_entry_type()
create_plt_entry()

Signed-off-by: Detlef Riekenberg <wine.dev@web.de>
2022-04-12 02:11:06 +02:00
mingodad 1645616843 Revert "Move almost all global variables to TCCState, actually all tests pass on Ubuntu 18.04 x86_64"
This reverts commit af686a796b.
2021-10-22 07:39:54 +02:00
mingodad 2ce2dbcb09 Revert "Fix some errors on arm64-asm.c, rename some variables, fix several code style declarations"
This reverts commit 61537d899a.
2021-10-22 07:39:26 +02:00
mingodad 61537d899a Fix some errors on arm64-asm.c, rename some variables, fix several code style declarations 2021-10-22 07:20:00 +02:00
mingodad af686a796b Move almost all global variables to TCCState, actually all tests pass on Ubuntu 18.04 x86_64 2021-10-21 20:09:42 +02:00
grischka 72f1dea537 tccelf: use rodata_section, use more rodata in tcc itself
libtcc.c: add -Wwrite-strings to -Wall
tccgen.c: ro float-consts, string-consts, ro arrays if base type is
tccpe.c: merge IAT with rodata
tccrun.c: mprotect rodata accordingly. free section data after copy
x86_64.c: do not use got for static data.
tcc -bench: show data.rw/ro

Probably STB_LOCAL should never get to put_got_entry(), and currently
it doesn't seem to happen (See "Hack Alarm" there)

Other files: use more ro-data in tinycc
2021-02-18 14:43:34 +01:00
Danny Milosavljevic 24c94fff09
arm-asm: Add vcvt 2021-02-13 01:03:41 +01:00
Danny Milosavljevic f1fb23a661
arm-asm: Update comment 2021-02-13 01:03:39 +01:00
Danny Milosavljevic 2ac8568503
arm-asm: Support immediate values without "#" (Unified Assembly Language) 2021-01-28 16:32:31 +01:00
Danny Milosavljevic 25628cffe5
arm-asm: Add vmsr, vmrs 2021-01-26 14:25:39 +01:00
Danny Milosavljevic 1c9d999114 arm-asm: Implement "vmov.f32 Sn, Rd", "vmov.f32 Rd, Sn", "vmov.f64 Dm, Rd, Rn", "vmov.f64 Rd, Rn, Dm" 2021-01-26 03:31:33 +01:00
Danny Milosavljevic 90343eba3a arm-asm: Mostly factor out VFP register reference parsing to parse_operand 2021-01-26 03:24:09 +01:00
Danny Milosavljevic 0416594071 arm-asm: Add vmov 2021-01-25 21:56:52 +01:00
Danny Milosavljevic b82e52a497 arm-asm: Add vmla, vmls, vnmls, vnmla, vmul, vnmul, vadd, vsub, vdiv, vneg, vabs, vsqrt, vcmp, vcmpe 2021-01-25 21:56:52 +01:00
Danny Milosavljevic 104037a4c5
arm-asm: Raise error if user tries to use a shift instruction with an immediate source operand 2021-01-25 00:54:01 +01:00
Danny Milosavljevic 66de1550ab
arm-asm: Add vpush, vpop, vldm, vldmia, vldmdb, vstm, vstmia, vstmdb 2021-01-23 14:57:33 +01:00
Danny Milosavljevic e350058532
arm-asm: Add svc 2021-01-23 14:20:06 +01:00
Danny Milosavljevic 2e87eb18ab
arm-asm: Improve build with MSVC 2021-01-21 21:56:10 +01:00
Danny Milosavljevic cdbb55396c
arm-asm: Add vldr, vstr
Also add s0...s31, d0...d15
2021-01-21 18:15:19 +01:00
Danny Milosavljevic 31dde11ad5
arm-asm: Add ldc2, ldc2l, stc2, stc2l 2021-01-21 16:42:31 +01:00
Danny Milosavljevic 7900a6bb61
arm-asm: Add ldc, ldcl, stc, stcl 2021-01-21 16:42:28 +01:00
Danny Milosavljevic d1a6c4aefa
arm-asm: Add mcr, mrc 2021-01-21 16:42:23 +01:00
Danny Milosavljevic a1dad7a9f7
arm-asm: Add cdp2
Also allow instructions without condition code in the first place
2021-01-21 16:42:20 +01:00
Danny Milosavljevic 036a7fe7d4
arm-asm: Add cdp
Also add p0...p15 (coprocessors), c0...c15 (coprocessor register aliases)
2021-01-21 16:42:16 +01:00
Danny Milosavljevic d60d2bb60e
arm-asm: Make "!" optional in asm_block_data_transfer_opcode 2021-01-18 18:58:08 +01:00
Danny Milosavljevic 757eccd1d2
arm-asm: Raise error if user tries to use PC for offset register of single data transfer 2021-01-14 23:16:38 +01:00
Danny Milosavljevic 007839597f
arm-asm: Implement ldr and str with shifted register offset
Factor out asm_parse_optional_shift
2021-01-14 23:16:31 +01:00
Danny Milosavljevic aed4941e6b
arm-asm: Add ldrh, ldrsh, ldrsb, strh 2021-01-08 13:52:25 +01:00
Danny Milosavljevic 29f36a8953 arm-asm: Allow implicit offset 0 in input of asm_single_data_transfer_opcode 2021-01-05 17:46:08 +00:00
Danny Milosavljevic 483625065f arm-asm: Add ldrex, ldrexb, strex, strexb 2021-01-05 17:46:08 +00:00
Danny Milosavljevic 54ef167111 arm-asm: Implement branch to label 2021-01-05 17:46:08 +00:00
Danny Milosavljevic 78d0f07e32
arm-asm: Improve immediate error message in asm_data_processing_opcode. 2021-01-03 15:54:19 +01:00
Danny Milosavljevic a7205f738b
arm-asm: Support shift of 0 in asm_shift_opcode 2021-01-03 15:54:19 +01:00
Danny Milosavljevic 7f98aefddf
arm-asm: Implement subst_asm_operand 2021-01-03 02:34:12 +01:00
Danny Milosavljevic 9a460d3234
arm-asm: Implement asm_compute_constraints 2021-01-03 02:34:12 +01:00
Danny Milosavljevic 795d7d5ce6
arm-asm: Implement asm_gen_code 2021-01-03 02:34:12 +01:00
Danny Milosavljevic d66c155239
arm-asm: Support bigger immediates for data processing instructions 2021-01-03 02:34:12 +01:00
Danny Milosavljevic 14b7973ab5
arm-asm: Add movw 2021-01-03 02:34:11 +01:00
Danny Milosavljevic c882d03673
arm-asm: Add movt 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 86cc9c587b
arm-asm: Raise error if asm_data_processing_opcode and asm_shift_opcode try to use PC for register-controlled shifts 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 79567004b4
arm-asm: Raise error if more than two operands are specified on mov, mvn, cmp, cmn, tst, teq 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 612d9d7ae6
arm-asm: Print a warning if asm_binary_opcode is used with SP as operand 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 67b402fda4
arm-asm: Raise an error if asm_binary_opcode is used with PC as operand 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 3a6f3e5f30
arm-asm: Add error case in asm_multiplication_opcode 2021-01-03 02:34:11 +01:00
Danny Milosavljevic e0cb5184f5
arm-asm: Warn if regset registers are not specified in ascending order 2021-01-03 02:34:11 +01:00
Danny Milosavljevic 49365d563e
arm-asm: Support rotation for sxtb, sxth, uxtb, uxth 2021-01-03 02:34:11 +01:00
Danny Milosavljevic daaa88ce68
arm-asm: For data processing instructions, support shifts and rotations. 2021-01-03 02:34:11 +01:00
Danny Milosavljevic abef8f6ca7
arm-asm: Add lsl, lsr, asr, ror, rrx 2021-01-03 02:34:11 +01:00