about summary refs log tree commit diff stats
path: root/test_apps
Commit message (Expand)AuthorAgeFilesLines
* 7109Kartik Agaram2020-10-251-2/+2
* 6618 - new docsKartik Agaram2020-07-061-13/+2
* 6612 - reorganize layersKartik Agaram2020-07-051-10/+10
* 6527 - increase stack limitsKartik Agaram2020-06-151-0/+3
* 6395Kartik Agaram2020-05-241-0/+2
* 6394 - a catastrophic bugKartik Agaram2020-05-241-0/+13
* 6393 - start running .mu apps in CIKartik Agaram2020-05-241-0/+57
* 6385Kartik Agaram2020-05-231-4/+4
* 6382 - re-enable mu.subx in CIKartik Agaram2020-05-221-4/+4
* handles don't seem to have slowed down test_appsKartik Agaram2020-05-221-4/+4
* mu.subx: start tracking remaining failing testsKartik Agaram2020-05-201-12/+12
* all syntax sugar now workingKartik Agaram2020-05-181-60/+60
* core translator phases now emit identical binariesKartik Agaram2020-05-181-2/+2
* Rebuild phases of self-hosted SubX translatorKartik Agaram2020-05-181-23/+23
* assort.subx now workingKartik Agaram2020-05-181-1/+1
* dquotes.subx now workingKartik Agaram2020-05-181-1/+1
* tests.subx now workingKartik Agaram2020-05-181-34/+34
* apps that currently workKartik Agaram2020-05-181-68/+68
* table primitives workingKartik Agaram2020-05-181-15/+1
* 6213Kartik Agaram2020-04-261-0/+2
* 6183Kartik Agaram2020-04-031-1/+1
* 6088 - start using setCC instructionsKartik Agaram2020-03-061-0/+12
* 5890Kartik Agaram2020-01-141-2/+2
* 5887 - reorganize libraryKartik Agaram2020-01-141-7/+14
* 5865Kartik Agaram2020-01-021-44/+44
* 5856Kartik Agaram2020-01-011-52/+52
* 5851Kartik Agaram2020-01-011-4/+4
* 5829Kartik Agaram2019-12-261-5/+15
* 5761Kartik Agaram2019-11-261-1/+1
* 5739Kartik Agaram2019-11-101-0/+8
* 5677Kartik Agaram2019-09-191-6/+12
* 5675 - move helpers from subx-common into layersKartik Agaram2019-09-191-85/+23
* 5672 - move hex out of appsKartik Agaram2019-09-191-2/+6
* 5666 - start of sugar for structured control flowKartik Agaram2019-09-191-8/+19
* 5665Kartik Agaram2019-09-191-1/+2
* 5650 - support a second OS: sosoKartik Agaram2019-09-141-27/+29
* 5647 - experimental support for swapping OSKartik Agaram2019-09-111-27/+27
* 5631 - syntax for calls starting to work!Kartik Agaram2019-09-061-1/+12
* 5594 - rename 'desugar' to 'sigils'Kartik Agaram2019-08-311-6/+6
* 5585Kartik Agaram2019-08-251-113/+21
* Merge branch 'master' into desugarKartik Agaram2019-08-251-117/+191
|\
| * 5515Kartik Agaram2019-08-141-22/+22
| * 5514 - disable emulated runs on LinuxKartik Agaram2019-08-141-60/+133
| * 5513Kartik Agaram2019-08-141-22/+22
| * 5511Kartik Agaram2019-08-141-34/+35
| * 5510Kartik Agaram2019-08-141-1/+1
* | fix a missing test of desugar in CIKartik Agaram2019-08-161-0/+20
* | add desugar to CIKartik Agaram2019-08-131-0/+5
|/
* 5485 - promote SubX to top-levelKartik Agaram2019-07-271-0/+336
"run: pushing value 0x00000003\n" "run: jumping to 0x000000a0\n" ); } :(before "End Op ff Subops") case 2: { // call function pointer at r/m32 trace(Callstack_depth+1, "run") << "call to r/m32" << end(); const int32_t* offset = effective_address(modrm); push(EIP); EIP = *offset; trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end(); ++Callstack_depth; break; } :(code) void test_call_mem_at_rm32() { Mem.push_back(vma(0xbd000000)); // manually allocate memory Reg[ESP].u = 0xbd000064; Reg[EBX].u = 0x2000; run( "== code 0x1\n" // op ModR/M SIB displacement immediate " ff 13 \n" // call function offset at *EBX // next EIP is 3 "== data 0x2000\n" "a0 00 00 00\n" // 0xa0 ); CHECK_TRACE_CONTENTS( "run: call to r/m32\n" "run: effective address is 0x00002000 (EBX)\n" "run: decrementing ESP to 0xbd000060\n" "run: pushing value 0x00000003\n" "run: jumping to 0x000000a0\n" ); } //:: ret :(before "End Initialize Op Names") put_new(Name, "c3", "return from most recent unfinished call (ret)"); :(code) void test_ret() { Mem.push_back(vma(0xbd000000)); // manually allocate memory Reg[ESP].u = 0xbd000064; write_mem_u32(Reg[ESP].u, 0x10); run( "== code 0x1\n" // op ModR/M SIB displacement immediate " c3 \n" // return "== data 0x2000\n" "10 00 00 00\n" // 0x10 ); CHECK_TRACE_CONTENTS( "run: return\n" "run: popping value 0x00000010\n" "run: jumping to 0x00000010\n" ); } :(before "End Single-Byte Opcodes") case 0xc3: { // return from a call trace(Callstack_depth+1, "run") << "return" << end(); --Callstack_depth; EIP = pop(); trace(Callstack_depth+1, "run") << "jumping to 0x" << HEXWORD << EIP << end(); break; }